238 lines
9.3 KiB
Diff
238 lines
9.3 KiB
Diff
|
--- Python-2.7.13/configure 2016-12-17 21:05:07.000000000 +0100
|
||
|
+++ Python-2.7.13-modified/configure 2017-08-10 12:59:24.094953614 +0100
|
||
|
@@ -14927,7 +14927,7 @@
|
||
|
$as_echo "$ac_cv_have_long_long_format" >&6; }
|
||
|
fi
|
||
|
|
||
|
-if test "$ac_cv_have_long_long_format" = yes
|
||
|
+if test "$ac_cv_have_long_long_format" != no
|
||
|
then
|
||
|
|
||
|
$as_echo "#define PY_FORMAT_LONG_LONG \"ll\"" >>confdefs.h
|
||
|
--- Python-2.7.13/Makefile.pre.in 2016-12-17 21:05:06.000000000 +0100
|
||
|
+++ Python-2.7.13-modified/Makefile.pre.in 2017-08-11 00:17:32.557907871 +0100
|
||
|
@@ -199,6 +199,7 @@
|
||
|
|
||
|
PYTHON= python$(EXE)
|
||
|
BUILDPYTHON= python$(BUILDEXE)
|
||
|
+HOSTPYTHON= ./$(BUILDPYTHON)
|
||
|
|
||
|
PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
|
||
|
_PYTHON_HOST_PLATFORM=@_PYTHON_HOST_PLATFORM@
|
||
|
@@ -246,6 +247,8 @@
|
||
|
# Parser
|
||
|
PGEN= Parser/pgen$(EXE)
|
||
|
|
||
|
+HOSTPGEN= $(PGEN)
|
||
|
+
|
||
|
PSRCS= \
|
||
|
Parser/acceler.c \
|
||
|
Parser/grammar1.c \
|
||
|
@@ -314,7 +317,7 @@
|
||
|
|
||
|
OPCODETARGETS_H= \
|
||
|
$(srcdir)/Python/opcode_targets.h
|
||
|
-
|
||
|
+
|
||
|
OPCODETARGETGEN= \
|
||
|
$(srcdir)/Python/makeopcodetargets.py
|
||
|
|
||
|
@@ -544,8 +547,8 @@
|
||
|
*) quiet="";; \
|
||
|
esac; \
|
||
|
$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
|
||
|
- _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
|
||
|
- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
|
||
|
+ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' PYTHONXCPREFIX='$(DESTDIR)$(prefix)' \
|
||
|
+ $(HOSTPYTHON) -E $(srcdir)/setup.py $$quiet build
|
||
|
|
||
|
# Build static library
|
||
|
# avoid long command lines, same as LIBRARY_OBJS
|
||
|
@@ -681,7 +684,7 @@
|
||
|
|
||
|
$(GRAMMAR_H): @GENERATED_COMMENT@ $(GRAMMAR_INPUT) $(PGEN)
|
||
|
@$(MKDIR_P) Include
|
||
|
- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
||
|
+ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
||
|
$(GRAMMAR_C): @GENERATED_COMMENT@ $(GRAMMAR_H)
|
||
|
touch $(GRAMMAR_C)
|
||
|
|
||
|
@@ -1120,28 +1123,28 @@
|
||
|
$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
|
||
|
$(DESTDIR)$(LIBDEST)/distutils/tests ; \
|
||
|
fi
|
||
|
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||
|
- $(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
|
||
|
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||
|
+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
|
||
|
-d $(LIBDEST) -f \
|
||
|
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
||
|
$(DESTDIR)$(LIBDEST)
|
||
|
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||
|
- $(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||
|
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||
|
+ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||
|
-d $(LIBDEST) -f \
|
||
|
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
||
|
$(DESTDIR)$(LIBDEST)
|
||
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||
|
- $(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
|
||
|
+ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
|
||
|
-d $(LIBDEST)/site-packages -f \
|
||
|
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
||
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||
|
- $(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||
|
+ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||
|
-d $(LIBDEST)/site-packages -f \
|
||
|
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
||
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||
|
- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
|
||
|
+ $(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
|
||
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||
|
- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
|
||
|
+ $(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
|
||
|
|
||
|
# Create the PLATDIR source directory, if one wasn't distributed..
|
||
|
$(srcdir)/Lib/$(PLATDIR):
|
||
|
@@ -1253,11 +1256,13 @@
|
||
|
# Install the dynamically loadable modules
|
||
|
# This goes into $(exec_prefix)
|
||
|
sharedinstall: sharedmods
|
||
|
- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
|
||
|
+ CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
|
||
|
+ $(RUNSHARED) $(HOSTPYTHON) $(srcdir)/setup.py install \
|
||
|
+ --skip-build \
|
||
|
--prefix=$(prefix) \
|
||
|
- --install-scripts=$(BINDIR) \
|
||
|
- --install-platlib=$(DESTSHARED) \
|
||
|
- --root=$(DESTDIR)/
|
||
|
+ --install-scripts=$(DESTDIR)$(BINDIR) \
|
||
|
+ --install-platlib=$(DESTDIR)$(DESTSHARED) \
|
||
|
+ --root=/
|
||
|
-rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata.py*
|
||
|
|
||
|
# Here are a couple of targets for MacOSX again, to install a full
|
||
|
--- Python-2.7.13/setup.py 2016-12-17 21:05:07.000000000 +0100
|
||
|
+++ Python-2.7.13-modified/setup.py 2017-08-11 00:05:55.922860254 +0100
|
||
|
@@ -17,7 +17,7 @@
|
||
|
from distutils.command.install_lib import install_lib
|
||
|
from distutils.spawn import find_executable
|
||
|
|
||
|
-cross_compiling = "_PYTHON_HOST_PLATFORM" in os.environ
|
||
|
+cross_compiling = "_PYTHON_HOST_PLATFORM" in os.environ or ('PYTHONXCPREFIX' in os.environ)
|
||
|
|
||
|
def get_platform():
|
||
|
# cross build
|
||
|
@@ -175,6 +175,7 @@
|
||
|
def __init__(self, dist):
|
||
|
build_ext.__init__(self, dist)
|
||
|
self.failed = []
|
||
|
+ self.cross_compile = os.environ.get('CROSS_COMPILE_TARGET') == 'yes'
|
||
|
|
||
|
def build_extensions(self):
|
||
|
|
||
|
@@ -310,6 +311,14 @@
|
||
|
(ext.name, sys.exc_info()[1]))
|
||
|
self.failed.append(ext.name)
|
||
|
return
|
||
|
+
|
||
|
+ # Import check will not work when cross-compiling.
|
||
|
+ if os.environ.has_key('PYTHONXCPREFIX'):
|
||
|
+ self.announce(
|
||
|
+ 'WARNING: skipping import check for cross-compiled: "%s"' %
|
||
|
+ ext.name)
|
||
|
+ return
|
||
|
+
|
||
|
# Workaround for Mac OS X: The Carbon-based modules cannot be
|
||
|
# reliably imported into a command-line Python
|
||
|
if 'Carbon' in ext.extra_link_args:
|
||
|
@@ -341,7 +350,7 @@
|
||
|
self.get_ext_filename(self.get_ext_fullname(ext.name)))
|
||
|
|
||
|
# Don't try to load extensions for cross builds
|
||
|
- if cross_compiling:
|
||
|
+ if cross_compiling or self.cross_compile:
|
||
|
return
|
||
|
|
||
|
try:
|
||
|
@@ -455,11 +464,9 @@
|
||
|
|
||
|
def detect_modules(self):
|
||
|
# Ensure that /usr/local is always used
|
||
|
- if not cross_compiling:
|
||
|
+ if not cross_compiling or not self.cross_compile:
|
||
|
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||
|
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||
|
- if cross_compiling:
|
||
|
- self.add_gcc_paths()
|
||
|
self.add_multiarch_paths()
|
||
|
|
||
|
# Add paths specified in the environment variables LDFLAGS and
|
||
|
@@ -496,16 +503,17 @@
|
||
|
for directory in reversed(options.dirs):
|
||
|
add_dir_to_list(dir_list, directory)
|
||
|
|
||
|
- if os.path.normpath(sys.prefix) != '/usr' \
|
||
|
- and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
|
||
|
+ #if os.path.normpath(sys.prefix) != '/usr' \
|
||
|
+ # and not sysconfig.get_config_var('PYTHONFRAMEWORK') \
|
||
|
+ # and not self.cross_compile:
|
||
|
# OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
|
||
|
# (PYTHONFRAMEWORK is set) to avoid # linking problems when
|
||
|
# building a framework with different architectures than
|
||
|
# the one that is currently installed (issue #7473)
|
||
|
- add_dir_to_list(self.compiler.library_dirs,
|
||
|
- sysconfig.get_config_var("LIBDIR"))
|
||
|
- add_dir_to_list(self.compiler.include_dirs,
|
||
|
- sysconfig.get_config_var("INCLUDEDIR"))
|
||
|
+ #add_dir_to_list(self.compiler.library_dirs,
|
||
|
+ # sysconfig.get_config_var("LIBDIR"))
|
||
|
+ #add_dir_to_list(self.compiler.include_dirs,
|
||
|
+ # sysconfig.get_config_var("INCLUDEDIR"))
|
||
|
|
||
|
try:
|
||
|
have_unicode = unicode
|
||
|
@@ -517,7 +525,7 @@
|
||
|
# be assumed that no additional -I,-L directives are needed.
|
||
|
inc_dirs = self.compiler.include_dirs[:]
|
||
|
lib_dirs = self.compiler.library_dirs[:]
|
||
|
- if not cross_compiling:
|
||
|
+ if not cross_compiling or not self.cross_compile:
|
||
|
for d in (
|
||
|
'/usr/include',
|
||
|
):
|
||
|
@@ -526,7 +534,14 @@
|
||
|
'/lib64', '/usr/lib64',
|
||
|
'/lib', '/usr/lib',
|
||
|
):
|
||
|
- add_dir_to_list(lib_dirs, d)
|
||
|
+ add_dir_to_list(lib_dirs, d)
|
||
|
+ else:
|
||
|
+ cflags = os.environ.get('CFLAGS')
|
||
|
+ if cflags:
|
||
|
+ inc_dirs += [x[2:] for x in cflags.split() if x.startswith('-I')]
|
||
|
+ ldflags = os.environ.get('LDFLAGS')
|
||
|
+ if ldflags:
|
||
|
+ lib_dirs += [x[2:] for x in ldflags.split() if x.startswith('-L')]
|
||
|
exts = []
|
||
|
missing = []
|
||
|
|
||
|
@@ -2048,8 +2063,15 @@
|
||
|
|
||
|
# Pass empty CFLAGS because we'll just append the resulting
|
||
|
# CFLAGS to Python's; -g or -O2 is to be avoided.
|
||
|
- cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \
|
||
|
- % (ffi_builddir, ffi_srcdir, " ".join(config_args))
|
||
|
+ if cross_compiling or self.cross_compile:
|
||
|
+ cmd = "cd %s && env CFLAGS='' %s/configure --host=%s --build=%s %s" \
|
||
|
+ % (ffi_builddir, ffi_srcdir,
|
||
|
+ os.environ.get('HOSTARCH'),
|
||
|
+ os.environ.get('BUILDARCH'),
|
||
|
+ " ".join(config_args))
|
||
|
+ else:
|
||
|
+ cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \
|
||
|
+ % (ffi_builddir, ffi_srcdir, " ".join(config_args))
|
||
|
|
||
|
res = os.system(cmd)
|
||
|
if res or not os.path.exists(ffi_configfile):
|