diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2015-09-15 22:41:29 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2015-09-15 22:41:29 +0300 |
commit | 21f9b84b4b729fbd7acbd465e7a3f726e4d20f91 (patch) | |
tree | eb2d091d427ca0813b445509d59cc8e27e8ad25f /yocto-poky/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch | |
parent | 101cef31e2bf54c678501155cd2106251acbd076 (diff) | |
parent | c124f4f2e04dca16a428a76c89677328bc7bf908 (diff) | |
download | openbmc-21f9b84b4b729fbd7acbd465e7a3f726e4d20f91.tar.xz |
Merge commit 'c124f4f2e04dca16a428a76c89677328bc7bf908' as 'yocto-poky'
Diffstat (limited to 'yocto-poky/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch')
-rw-r--r-- | yocto-poky/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch b/yocto-poky/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch new file mode 100644 index 000000000..202aaf106 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch @@ -0,0 +1,86 @@ +On older versions of Python, sysconfig read the data from both the Makefile and +the Python.h file generated at build time, created dictionaries with their variables +and used those when using get_config_var(), now it uses _sysconfigdata.build_time_vars[] +which contains information from the HOST, erroneous in our case, this patch reverts this +behavior and uses Python.h and Makefile to get information. + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> + +Index: Python-2.7.9/Lib/distutils/sysconfig.py +=================================================================== +--- Python-2.7.9.orig/Lib/distutils/sysconfig.py ++++ Python-2.7.9/Lib/distutils/sysconfig.py +@@ -401,12 +401,66 @@ _config_vars = None + + def _init_posix(): + """Initialize the module as appropriate for POSIX systems.""" +- # _sysconfigdata is generated at build time, see the sysconfig module +- from _sysconfigdata import build_time_vars +- global _config_vars +- _config_vars = {} +- _config_vars.update(build_time_vars) ++ g = {} ++ # load the installed Makefile: ++ try: ++ filename = get_makefile_filename() ++ parse_makefile(filename, g) ++ except IOError, msg: ++ my_msg = "invalid Python installation: unable to open %s" % filename ++ if hasattr(msg, "strerror"): ++ my_msg = my_msg + " (%s)" % msg.strerror ++ ++ raise DistutilsPlatformError(my_msg) ++ ++ # load the installed pyconfig.h: ++ try: ++ filename = get_config_h_filename() ++ parse_config_h(file(filename), g) ++ except IOError, msg: ++ my_msg = "invalid Python installation: unable to open %s" % filename ++ if hasattr(msg, "strerror"): ++ my_msg = my_msg + " (%s)" % msg.strerror ++ ++ raise DistutilsPlatformError(my_msg) ++ ++ # On AIX, there are wrong paths to the linker scripts in the Makefile ++ # -- these paths are relative to the Python source, but when installed ++ # the scripts are in another directory. ++ if python_build: ++ g['LDSHARED'] = g['BLDSHARED'] + ++ elif get_python_version() < '2.1': ++ # The following two branches are for 1.5.2 compatibility. ++ if sys.platform == 'aix4': # what about AIX 3.x ? ++ # Linker script is in the config directory, not in Modules as the ++ # Makefile says. ++ python_lib = get_python_lib(standard_lib=1) ++ ld_so_aix = os.path.join(python_lib, 'config', 'ld_so_aix') ++ python_exp = os.path.join(python_lib, 'config', 'python.exp') ++ ++ g['LDSHARED'] = "%s %s -bI:%s" % (ld_so_aix, g['CC'], python_exp) ++ ++ elif sys.platform == 'beos': ++ # Linker script is in the config directory. In the Makefile it is ++ # relative to the srcdir, which after installation no longer makes ++ # sense. ++ python_lib = get_python_lib(standard_lib=1) ++ linkerscript_path = string.split(g['LDSHARED'])[0] ++ linkerscript_name = os.path.basename(linkerscript_path) ++ linkerscript = os.path.join(python_lib, 'config', ++ linkerscript_name) ++ ++ # XXX this isn't the right place to do this: adding the Python ++ # library to the link, if needed, should be in the "build_ext" ++ # command. (It's also needed for non-MS compilers on Windows, and ++ # it's taken care of for them by the 'build_ext.get_libraries()' ++ # method.) ++ g['LDSHARED'] = ("%s -L%s/lib -lpython%s" % ++ (linkerscript, PREFIX, get_python_version())) ++ ++ global _config_vars ++ _config_vars = g + + def _init_nt(): + """Initialize the module as appropriate for NT""" |