mirror of https://github.com/python/cpython
- Issue #23968: Rename the platform directory from plat-$(MACHDEP) to
plat-$(PLATFORM_TRIPLET). Rename the config directory (LIBPL) from config-$(LDVERSION) to config-$(LDVERSION)-$(PLATFORM_TRIPLET). Install the platform specifc _sysconfigdata module into the platform directory and rename it to include the ABIFLAGS.
This commit is contained in:
parent
c09087680e
commit
5553231b91
|
@ -242,6 +242,8 @@ def get_makefile_filename():
|
|||
return os.path.join(_sys_home or project_base, "Makefile")
|
||||
lib_dir = get_python_lib(plat_specific=0, standard_lib=1)
|
||||
config_file = 'config-{}{}'.format(get_python_version(), build_flags)
|
||||
if hasattr(sys.implementation, '_multiarch'):
|
||||
config_file += '-%s' % sys.implementation._multiarch
|
||||
return os.path.join(lib_dir, config_file, 'Makefile')
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,33 @@
|
|||
#! /bin/sh
|
||||
case `uname` in
|
||||
Linux*) ;;
|
||||
Linux*|GNU*) ;;
|
||||
*) echo Probably not on a Linux system 1>&2
|
||||
exit 1;;
|
||||
esac
|
||||
set -v
|
||||
h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h
|
||||
if [ -z "$CC" ]; then
|
||||
echo >&2 "$(basename $0): CC is not set"
|
||||
exit 1
|
||||
fi
|
||||
headers="sys/types.h netinet/in.h dlfcn.h"
|
||||
incdirs="$(echo $($CC -v -E - < /dev/null 2>&1|awk '/^#include/, /^End of search/' | grep '^ '))"
|
||||
if [ -z "$incdirs" ]; then
|
||||
incdirs="/usr/include"
|
||||
fi
|
||||
for h in $headers; do
|
||||
absh=
|
||||
for d in $incdirs; do
|
||||
if [ -f "$d/$h" ]; then
|
||||
absh="$d/$h"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -n "$absh" ]; then
|
||||
absheaders="$absheaders $absh"
|
||||
else
|
||||
echo >&2 "$(basename $0): header $h not found"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
set -x
|
||||
${H2PY:-h2py} -i '(u_long)' $absheaders
|
||||
|
|
|
@ -337,6 +337,8 @@ def get_makefile_filename():
|
|||
config_dir_name = 'config-%s%s' % (_PY_VERSION_SHORT, sys.abiflags)
|
||||
else:
|
||||
config_dir_name = 'config'
|
||||
if hasattr(sys.implementation, '_multiarch'):
|
||||
config_dir_name += '-%s' % sys.implementation._multiarch
|
||||
return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile')
|
||||
|
||||
def _generate_posix_vars():
|
||||
|
@ -379,7 +381,7 @@ def _generate_posix_vars():
|
|||
# _sysconfigdata module manually and populate it with the build vars.
|
||||
# This is more than sufficient for ensuring the subsequent call to
|
||||
# get_platform() succeeds.
|
||||
name = '_sysconfigdata'
|
||||
name = '_sysconfigdata_' + sys.abiflags
|
||||
if 'darwin' in sys.platform:
|
||||
import types
|
||||
module = types.ModuleType(name)
|
||||
|
@ -405,7 +407,9 @@ def _generate_posix_vars():
|
|||
def _init_posix(vars):
|
||||
"""Initialize the module as appropriate for POSIX systems."""
|
||||
# _sysconfigdata is generated at build time, see _generate_posix_vars()
|
||||
from _sysconfigdata import build_time_vars
|
||||
name = '_sysconfigdata_' + sys.abiflags
|
||||
_temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
|
||||
build_time_vars = _temp.build_time_vars
|
||||
vars.update(build_time_vars)
|
||||
|
||||
def _init_non_posix(vars):
|
||||
|
|
|
@ -109,6 +109,7 @@ MACHDEP= @MACHDEP@
|
|||
|
||||
# Multiarch directory (may be empty)
|
||||
MULTIARCH= @MULTIARCH@
|
||||
MULTIARCH_CPPFLAGS = @MULTIARCH_CPPFLAGS@
|
||||
|
||||
# Install prefix for architecture-independent files
|
||||
prefix= @prefix@
|
||||
|
@ -784,6 +785,7 @@ Python/dynload_hpux.o: $(srcdir)/Python/dynload_hpux.c Makefile
|
|||
Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile
|
||||
$(CC) -c $(PY_CORE_CFLAGS) \
|
||||
-DABIFLAGS='"$(ABIFLAGS)"' \
|
||||
$(MULTIARCH_CPPFLAGS) \
|
||||
-o $@ $(srcdir)/Python/sysmodule.c
|
||||
|
||||
$(IO_OBJS): $(IO_H)
|
||||
|
@ -1263,7 +1265,7 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
|
|||
else true; \
|
||||
fi; \
|
||||
done
|
||||
@for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py; \
|
||||
@for i in $(srcdir)/Lib/*.py; \
|
||||
do \
|
||||
if test -x $$i; then \
|
||||
$(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
|
||||
|
@ -1298,6 +1300,10 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
|
|||
esac; \
|
||||
done; \
|
||||
done
|
||||
$(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS).py \
|
||||
$(DESTDIR)$(LIBDEST)/$(PLATDIR); \
|
||||
echo $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS).py \
|
||||
$(LIBDEST)/$(PLATDIR)
|
||||
$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
|
||||
if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
|
||||
$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
|
||||
|
@ -1336,13 +1342,19 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
|
|||
$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
|
||||
|
||||
# Create the PLATDIR source directory, if one wasn't distributed..
|
||||
# For multiarch targets, use the plat-linux/regen script.
|
||||
$(srcdir)/Lib/$(PLATDIR):
|
||||
mkdir $(srcdir)/Lib/$(PLATDIR)
|
||||
cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen
|
||||
if [ -n "$(MULTIARCH)" ]; then \
|
||||
cp $(srcdir)/Lib/plat-linux/regen $(srcdir)/Lib/$(PLATDIR)/regen; \
|
||||
else \
|
||||
cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen; \
|
||||
fi; \
|
||||
export PATH; PATH="`pwd`:$$PATH"; \
|
||||
export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \
|
||||
export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
|
||||
export EXE; EXE="$(BUILDEXE)"; \
|
||||
export CC; CC="$(CC)"; \
|
||||
if [ -n "$(MULTIARCH)" ]; then export MULTIARCH; MULTIARCH=$(MULTIARCH); fi; \
|
||||
export PYTHON_FOR_BUILD; \
|
||||
if [ "$(BUILD_GNU_TYPE)" = "$(HOST_GNU_TYPE)" ]; then \
|
||||
|
@ -1350,6 +1362,7 @@ $(srcdir)/Lib/$(PLATDIR):
|
|||
else \
|
||||
PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \
|
||||
fi; \
|
||||
export H2PY; H2PY="$$PYTHON_FOR_BUILD $(abs_srcdir)/Tools/scripts/h2py.py"; \
|
||||
cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
|
||||
|
||||
python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh
|
||||
|
@ -1448,7 +1461,7 @@ sharedinstall: sharedmods
|
|||
--install-scripts=$(BINDIR) \
|
||||
--install-platlib=$(DESTSHARED) \
|
||||
--root=$(DESTDIR)/
|
||||
-rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata.py
|
||||
-rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata_$(ABIFLAGS).py
|
||||
-rm -r $(DESTDIR)$(DESTSHARED)/__pycache__
|
||||
|
||||
# Here are a couple of targets for MacOSX again, to install a full
|
||||
|
@ -1627,6 +1640,9 @@ clobber: clean profile-removal
|
|||
-rm -rf build platform
|
||||
-rm -rf $(PYTHONFRAMEWORKDIR)
|
||||
-rm -f python-config.py python-config
|
||||
if [ -n "$(MULTIARCH)" ]; then \
|
||||
rm -rf $(srcdir)/Lib/$(PLATDIR); \
|
||||
fi
|
||||
|
||||
# Make things extra clean, before making a distribution:
|
||||
# remove all generated files, even Makefile[.pre]
|
||||
|
|
10
Misc/NEWS
10
Misc/NEWS
|
@ -25,6 +25,16 @@ IDLE
|
|||
|
||||
- Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import.
|
||||
|
||||
Build
|
||||
-----
|
||||
|
||||
- Issue #23968: Rename the platform directory from plat-$(MACHDEP) to
|
||||
plat-$(PLATFORM_TRIPLET).
|
||||
Rename the config directory (LIBPL) from config-$(LDVERSION) to
|
||||
config-$(LDVERSION)-$(PLATFORM_TRIPLET).
|
||||
Install the platform specifc _sysconfigdata module into the platform
|
||||
directory and rename it to include the ABIFLAGS.
|
||||
|
||||
|
||||
What's New in Python 3.6.0 alpha 2
|
||||
==================================
|
||||
|
|
|
@ -1693,6 +1693,16 @@ make_impl_info(PyObject *version_info)
|
|||
if (res < 0)
|
||||
goto error;
|
||||
|
||||
#ifdef MULTIARCH
|
||||
value = PyUnicode_FromString(MULTIARCH);
|
||||
if (value == NULL)
|
||||
goto error;
|
||||
res = PyDict_SetItemString(impl_info, "_multiarch", value);
|
||||
Py_DECREF(value);
|
||||
if (res < 0)
|
||||
goto error;
|
||||
#endif
|
||||
|
||||
/* dict ready */
|
||||
|
||||
ns = _PyNamespace_New(impl_info);
|
||||
|
|
|
@ -704,6 +704,7 @@ LIBRARY
|
|||
BUILDEXEEXT
|
||||
EGREP
|
||||
NO_AS_NEEDED
|
||||
MULTIARCH_CPPFLAGS
|
||||
PLATFORM_TRIPLET
|
||||
PLATDIR
|
||||
MULTIARCH
|
||||
|
@ -776,6 +777,7 @@ infodir
|
|||
docdir
|
||||
oldincludedir
|
||||
includedir
|
||||
runstatedir
|
||||
localstatedir
|
||||
sharedstatedir
|
||||
sysconfdir
|
||||
|
@ -886,6 +888,7 @@ datadir='${datarootdir}'
|
|||
sysconfdir='${prefix}/etc'
|
||||
sharedstatedir='${prefix}/com'
|
||||
localstatedir='${prefix}/var'
|
||||
runstatedir='${localstatedir}/run'
|
||||
includedir='${prefix}/include'
|
||||
oldincludedir='/usr/include'
|
||||
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
|
||||
|
@ -1138,6 +1141,15 @@ do
|
|||
| -silent | --silent | --silen | --sile | --sil)
|
||||
silent=yes ;;
|
||||
|
||||
-runstatedir | --runstatedir | --runstatedi | --runstated \
|
||||
| --runstate | --runstat | --runsta | --runst | --runs \
|
||||
| --run | --ru | --r)
|
||||
ac_prev=runstatedir ;;
|
||||
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
|
||||
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
|
||||
| --run=* | --ru=* | --r=*)
|
||||
runstatedir=$ac_optarg ;;
|
||||
|
||||
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
||||
ac_prev=sbindir ;;
|
||||
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
||||
|
@ -1275,7 +1287,7 @@ fi
|
|||
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
||||
datadir sysconfdir sharedstatedir localstatedir includedir \
|
||||
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
||||
libdir localedir mandir
|
||||
libdir localedir mandir runstatedir
|
||||
do
|
||||
eval ac_val=\$$ac_var
|
||||
# Remove trailing slashes.
|
||||
|
@ -1428,6 +1440,7 @@ Fine tuning of the installation directories:
|
|||
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
||||
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
||||
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
||||
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
|
||||
--libdir=DIR object code libraries [EPREFIX/lib]
|
||||
--includedir=DIR C header files [PREFIX/include]
|
||||
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
||||
|
@ -2877,6 +2890,7 @@ ac_config_headers="$ac_config_headers pyconfig.h"
|
|||
|
||||
|
||||
|
||||
|
||||
ac_aux_dir=
|
||||
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
|
||||
if test -f "$ac_dir/install-sh"; then
|
||||
|
@ -5332,9 +5346,16 @@ if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
|
|||
as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
PLATDIR=plat-$MACHDEP
|
||||
if test x$PLATFORM_TRIPLET = x; then
|
||||
PLATDIR=plat-$MACHDEP
|
||||
else
|
||||
PLATDIR=plat-$PLATFORM_TRIPLET
|
||||
fi
|
||||
|
||||
|
||||
if test x$MULTIARCH != x; then
|
||||
MULTIARCH_CPPFLAGS="-DMULTIARCH=\\\"$MULTIARCH\\\""
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wl,--no-as-needed" >&5
|
||||
|
@ -14768,7 +14789,11 @@ LDVERSION='$(VERSION)$(ABIFLAGS)'
|
|||
$as_echo "$LDVERSION" >&6; }
|
||||
|
||||
|
||||
LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
|
||||
if test x$PLATFORM_TRIPLET = x; then
|
||||
LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
|
||||
else
|
||||
LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
|
||||
fi
|
||||
|
||||
|
||||
# Check whether right shifting a negative integer extends the sign bit
|
||||
|
|
17
configure.ac
17
configure.ac
|
@ -872,10 +872,17 @@ if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
|
|||
AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report])
|
||||
fi
|
||||
fi
|
||||
PLATDIR=plat-$MACHDEP
|
||||
if test x$PLATFORM_TRIPLET = x; then
|
||||
PLATDIR=plat-$MACHDEP
|
||||
else
|
||||
PLATDIR=plat-$PLATFORM_TRIPLET
|
||||
fi
|
||||
AC_SUBST(PLATDIR)
|
||||
AC_SUBST(PLATFORM_TRIPLET)
|
||||
|
||||
if test x$MULTIARCH != x; then
|
||||
MULTIARCH_CPPFLAGS="-DMULTIARCH=\\\"$MULTIARCH\\\""
|
||||
fi
|
||||
AC_SUBST(MULTIARCH_CPPFLAGS)
|
||||
|
||||
AC_MSG_CHECKING([for -Wl,--no-as-needed])
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
|
@ -4462,7 +4469,11 @@ AC_MSG_RESULT($LDVERSION)
|
|||
|
||||
dnl define LIBPL after ABIFLAGS and LDVERSION is defined.
|
||||
AC_SUBST(PY_ENABLE_SHARED)
|
||||
LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
|
||||
if test x$PLATFORM_TRIPLET = x; then
|
||||
LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
|
||||
else
|
||||
LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
|
||||
fi
|
||||
AC_SUBST(LIBPL)
|
||||
|
||||
# Check whether right shifting a negative integer extends the sign bit
|
||||
|
|
Loading…
Reference in New Issue