123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- --- Python-3.3.2.orig/setup.py 2013-05-15 18:33:00.000000000 +0200
- +++ Python-3.3.2/setup.py 2013-10-27 13:54:34.000000000 +0100
- @@ -80,7 +80,7 @@ def find_file(filename, std_dirs, paths)
- 'paths' is a list of additional locations to check; if the file is
- found in one of them, the resulting list will contain the directory.
- """
- - if host_platform == 'darwin':
- + if host_platform == 'darwin' and not cross_compiling:
- # Honor the MacOSX SDK setting when one was specified.
- # An SDK is a directory with the same structure as a real
- # system, but with only header files and libraries.
- @@ -90,7 +90,7 @@ def find_file(filename, std_dirs, paths)
- for dir in std_dirs:
- f = os.path.join(dir, filename)
-
- - if host_platform == 'darwin' and is_macosx_sdk_path(dir):
- + if host_platform == 'darwin' and is_macosx_sdk_path(dir) and not cross_compiling:
- f = os.path.join(sysroot, dir[1:], filename)
-
- if os.path.exists(f): return []
- @@ -99,7 +99,7 @@ def find_file(filename, std_dirs, paths)
- for dir in paths:
- f = os.path.join(dir, filename)
-
- - if host_platform == 'darwin' and is_macosx_sdk_path(dir):
- + if host_platform == 'darwin' and is_macosx_sdk_path(dir) and not cross_compiling:
- f = os.path.join(sysroot, dir[1:], filename)
-
- if os.path.exists(f):
- @@ -113,7 +113,7 @@ def find_library_file(compiler, libname,
- if result is None:
- return None
-
- - if host_platform == 'darwin':
- + if host_platform == 'darwin' and not cross_compiling:
- sysroot = macosx_sdk_root()
-
- # Check whether the found file is in one of the standard directories
- @@ -122,7 +122,7 @@ def find_library_file(compiler, libname,
- # Ensure path doesn't end with path separator
- p = p.rstrip(os.sep)
-
- - if host_platform == 'darwin' and is_macosx_sdk_path(p):
- + if host_platform == 'darwin' and is_macosx_sdk_path(p) and not cross_compiling:
- if os.path.join(sysroot, p[1:]) == dirname:
- return [ ]
-
- @@ -135,7 +135,7 @@ def find_library_file(compiler, libname,
- # Ensure path doesn't end with path separator
- p = p.rstrip(os.sep)
-
- - if host_platform == 'darwin' and is_macosx_sdk_path(p):
- + if host_platform == 'darwin' and is_macosx_sdk_path(p) and not cross_compiling:
- if os.path.join(sysroot, p[1:]) == dirname:
- return [ p ]
-
- @@ -168,6 +168,7 @@ class PyBuildExt(build_ext):
-
- def build_extensions(self):
-
- + self.compiler.library_dirs = []
- # Detect which modules should be compiled
- missing = self.detect_modules()
-
- @@ -444,7 +445,8 @@ class PyBuildExt(build_ext):
- # only change this for cross builds for 3.3, issues on Mageia
- if cross_compiling:
- self.add_gcc_paths()
- - self.add_multiarch_paths()
- + if not cross_compiling:
- + self.add_multiarch_paths()
-
- # Add paths specified in the environment variables LDFLAGS and
- # CPPFLAGS for header and library files.
- @@ -481,7 +483,8 @@ class PyBuildExt(build_ext):
- add_dir_to_list(dir_list, directory)
-
- if os.path.normpath(sys.base_prefix) != '/usr' \
- - and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
- + and not sysconfig.get_config_var('PYTHONFRAMEWORK') \
- + and not cross_compiling:
- # 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
- @@ -494,6 +497,9 @@ class PyBuildExt(build_ext):
- # lib_dirs and inc_dirs are used to search for files;
- # if a file is found in one of those directories, it can
- # be assumed that no additional -I,-L directives are needed.
- + if cross_compiling:
- + add_dir_to_list(self.compiler.library_dirs,
- + sysconfig.get_config_var('srcdir'))
- if not cross_compiling:
- lib_dirs = self.compiler.library_dirs + [
- '/lib64', '/usr/lib64',
- @@ -520,23 +526,26 @@ class PyBuildExt(build_ext):
- if host_platform == 'hp-ux11':
- lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32']
-
- - if host_platform == 'darwin':
- - # This should work on any unixy platform ;-)
- - # If the user has bothered specifying additional -I and -L flags
- - # in OPT and LDFLAGS we might as well use them here.
- - #
- - # NOTE: using shlex.split would technically be more correct, but
- - # also gives a bootstrap problem. Let's hope nobody uses
- - # directories with whitespace in the name to store libraries.
- - cflags, ldflags = sysconfig.get_config_vars(
- - 'CFLAGS', 'LDFLAGS')
- - for item in cflags.split():
- - if item.startswith('-I'):
- - inc_dirs.append(item[2:])
- + # This should work on any unixy platform ;-)
- + # If the user has bothered specifying additional -I and -L flags
- + # in OPT and LDFLAGS we might as well use them here.
- + #
- + # NOTE: using shlex.split would technically be more correct, but
- + # also gives a bootstrap problem. Let's hope nobody uses
- + # directories with whitespace in the name to store libraries.
- + cppflags, cflags, ldflags = sysconfig.get_config_vars(
- + 'CPPFLAGS', 'CFLAGS', 'LDFLAGS')
- + for item in cppflags.split():
- + if item.startswith('-I'):
- + inc_dirs.append(item[2:])
-
- - for item in ldflags.split():
- - if item.startswith('-L'):
- - lib_dirs.append(item[2:])
- + for item in cflags.split():
- + if item.startswith('-I'):
- + inc_dirs.append(item[2:])
- +
- + for item in ldflags.split():
- + if item.startswith('-L'):
- + lib_dirs.append(item[2:])
-
- # Check for MacOS X, which doesn't need libm.a at all
- math_libs = ['m']
- @@ -1355,7 +1364,7 @@ class PyBuildExt(build_ext):
-
- # Gustavo Niemeyer's bz2 module.
- if (self.compiler.find_library_file(lib_dirs, 'bz2')):
- - if host_platform == "darwin":
- + if host_platform == "darwin" and not cross_compiling:
- bz2_extra_link_args = ('-Wl,-search_paths_first',)
- else:
- bz2_extra_link_args = ()
|