--- 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):