Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 356366 Details for
Bug 479832
dev-python/pypy-2.2.1: bump
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
re-based patch 2.1-distutils-fix_handling_of_executables_and_flags.patch
2.1-distutils-fix_handling_of_executables_and_flags.patch (text/plain), 14.69 KB, created by
Ian Delaney (RETIRED)
on 2013-08-18 13:25:16 UTC
(
hide
)
Description:
re-based patch 2.1-distutils-fix_handling_of_executables_and_flags.patch
Filename:
MIME Type:
Creator:
Ian Delaney (RETIRED)
Created:
2013-08-18 13:25:16 UTC
Size:
14.69 KB
patch
obsolete
>http://bugs.python.org/issue1222585 > >--- lib-python/2.7/distutils/cygwinccompiler.py >+++ lib-python/2.7/distutils/cygwinccompiler.py >@@ -135,9 +135,13 @@ > self.set_executables(compiler='gcc -mcygwin -O -Wall', > compiler_so='gcc -mcygwin -mdll -O -Wall', > compiler_cxx='g++ -mcygwin -O -Wall', >+ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall', > linker_exe='gcc -mcygwin', > linker_so=('%s -mcygwin %s' % >- (self.linker_dll, shared_option))) >+ (self.linker_dll, shared_option)), >+ linker_exe_cxx='g++ -mcygwin', >+ linker_so_cxx=('%s -mcygwin %s' % >+ (self.linker_dll, shared_option))) > > # cygwin and mingw32 need different sets of libraries > if self.gcc_version == "2.91.57": >@@ -163,8 +167,12 @@ > raise CompileError, msg > else: # for other files use the C-compiler > try: >- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + >- extra_postargs) >+ if self.detect_language(src) == 'c++': >+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + >+ extra_postargs) >+ else: >+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + >+ extra_postargs) > except DistutilsExecError, msg: > raise CompileError, msg > >@@ -325,10 +338,15 @@ > self.set_executables(compiler='gcc -mno-cygwin -O -Wall', > compiler_so='gcc -mno-cygwin -mdll -O -Wall', > compiler_cxx='g++ -mno-cygwin -O -Wall', >+ compiler_so_cxx='g++ -mno-cygwin -mdll -O -Wall', > linker_exe='gcc -mno-cygwin', > linker_so='%s -mno-cygwin %s %s' > % (self.linker_dll, shared_option, >- entry_point)) >+ entry_point), >+ linker_exe_cxx='g++ -mno-cygwin', >+ linker_so_cxx='%s -mno-cygwin %s %s' >+ % (self.linker_dll, shared_option, >+ entry_point)) > # Maybe we should also append -mthreads, but then the finished > # dlls need another dll (mingwm10.dll see Mingw32 docs) > # (-mthreads: Support thread-safe exception handling on `Mingw32') >--- lib-python/2.7/distutils/emxccompiler.py >+++ lib-python/2.7/distutils/emxccompiler.py >@@ -65,8 +65,12 @@ > # XXX optimization, warnings etc. should be customizable. > self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', > compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', >+ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', >+ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', > linker_exe='gcc -Zomf -Zmt -Zcrtdll', >- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll') >+ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll', >+ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll', >+ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll') > > # want the gcc library statically linked (so that we don't have > # to distribute a version dependent on the compiler we have) >@@ -83,8 +87,12 @@ > raise CompileError, msg > else: # for other files use the C-compiler > try: >- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + >- extra_postargs) >+ if self.detect_language(src) == 'c++': >+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + >+ extra_postargs) >+ else: >+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + >+ extra_postargs) > except DistutilsExecError, msg: > raise CompileError, msg > >--- lib-python/2.7/distutils/sysconfig_cpython.py >+++ lib-python/2.7/distutils/sysconfig_cpython.py >@@ -149,10 +149,12 @@ > varies across Unices and is stored in Python's Makefile. > """ > if compiler.compiler_type == "unix": >- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \ >- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS', >- 'CCSHARED', 'LDSHARED', 'SO', 'AR', >- 'ARFLAGS') >+ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \ >+ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED', >+ 'SO', 'AR', 'ARFLAGS') >+ >+ cflags = '' >+ cxxflags = '' > > newcc = None > if 'CC' in os.environ: >@@ -190,19 +192,27 @@ > cxx = os.environ['CXX'] > if 'LDSHARED' in os.environ: > ldshared = os.environ['LDSHARED'] >+ if 'LDCXXSHARED' in os.environ: >+ ldcxxshared = os.environ['LDCXXSHARED'] > if 'CPP' in os.environ: > cpp = os.environ['CPP'] > else: > cpp = cc + " -E" # not always > if 'LDFLAGS' in os.environ: > ldshared = ldshared + ' ' + os.environ['LDFLAGS'] >+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] > if 'CFLAGS' in os.environ: >- cflags = opt + ' ' + os.environ['CFLAGS'] >+ cflags = os.environ['CFLAGS'] > ldshared = ldshared + ' ' + os.environ['CFLAGS'] >+ if 'CXXFLAGS' in os.environ: >+ cxxflags = os.environ['CXXFLAGS'] >+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] > if 'CPPFLAGS' in os.environ: > cpp = cpp + ' ' + os.environ['CPPFLAGS'] > cflags = cflags + ' ' + os.environ['CPPFLAGS'] >+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] > ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] >+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] > if 'AR' in os.environ: > ar = os.environ['AR'] > if 'ARFLAGS' in os.environ: >@@ -211,13 +221,17 @@ > archiver = ar + ' ' + ar_flags > > cc_cmd = cc + ' ' + cflags >+ cxx_cmd = cxx + ' ' + cxxflags > compiler.set_executables( > preprocessor=cpp, > compiler=cc_cmd, > compiler_so=cc_cmd + ' ' + ccshared, >- compiler_cxx=cxx, >+ compiler_cxx=cxx_cmd, >+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, > linker_so=ldshared, > linker_exe=cc, >+ linker_so_cxx=ldcxxshared, >+ linker_exe_cxx=cxx, > archiver=archiver) > > compiler.shared_lib_extension = so_ext >@@ -529,7 +543,7 @@ > for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED', > # a number of derived variables. These need to be > # patched up as well. >- 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): >+ 'CFLAGS', 'CXXFLAGS', 'PY_CFLAGS', 'BLDSHARED'): > flags = _config_vars[key] > flags = re.sub('-arch\s+\w+\s', ' ', flags) > flags = re.sub('-isysroot [^ \t]*', ' ', flags) >@@ -548,7 +562,7 @@ > for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED', > # a number of derived variables. These need to be > # patched up as well. >- 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): >+ 'CFLAGS', 'CXXFLAGS', 'PY_CFLAGS', 'BLDSHARED'): > > flags = _config_vars[key] > flags = re.sub('-arch\s+\w+\s', ' ', flags) >@@ -572,7 +586,7 @@ > for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED', > # a number of derived variables. These need to be > # patched up as well. >- 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): >+ 'CFLAGS', 'CXXFLAGS', 'PY_CFLAGS', 'BLDSHARED'): > > flags = _config_vars[key] > flags = re.sub('-isysroot\s+\S+(\s|$)', ' ', flags) >--- lib-python/2.7/distutils/sysconfig_pypy.py >+++ lib-python/2.7/distutils/sysconfig_pypy.py >@@ -123,7 +123,55 @@ > optional C speedup components. > """ > if compiler.compiler_type == "unix": >- compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit']) >+ cc = ' '.join(compiler.compiler) >+ cxx = ' '.join(compiler.compiler_cxx) >+ ldshared = ' '.join(compiler.linker_so) >+ ldcxxshared = ' '.join(compiler.linker_so_cxx) >+ >+ cflags = '' >+ cxxflags = '' >+ ccshared = '-fPIC' >+ >+ if 'CC' in os.environ: >+ cc = os.environ['CC'] >+ if 'CXX' in os.environ: >+ cxx = os.environ['CXX'] >+ if 'LDSHARED' in os.environ: >+ ldshared = os.environ['LDSHARED'] >+ if 'LDCXXSHARED' in os.environ: >+ ldcxxshared = os.environ['LDCXXSHARED'] >+ if 'CPP' in os.environ: >+ cpp = os.environ['CPP'] >+ else: >+ cpp = cc + " -E" # not always >+ if 'LDFLAGS' in os.environ: >+ ldshared = ldshared + ' ' + os.environ['LDFLAGS'] >+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] >+ if 'CFLAGS' in os.environ: >+ cflags = os.environ['CFLAGS'] >+ ldshared = ldshared + ' ' + os.environ['CFLAGS'] >+ if 'CXXFLAGS' in os.environ: >+ cxxflags = os.environ['CXXFLAGS'] >+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] >+ if 'CPPFLAGS' in os.environ: >+ cpp = cpp + ' ' + os.environ['CPPFLAGS'] >+ cflags = cflags + ' ' + os.environ['CPPFLAGS'] >+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] >+ ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] >+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] >+ >+ cc_cmd = cc + ' ' + cflags >+ cxx_cmd = cxx + ' ' + cxxflags >+ compiler.set_executables( >+ preprocessor=cpp, >+ compiler=cc_cmd, >+ compiler_so=cc_cmd + ' ' + ccshared, >+ compiler_cxx=cxx_cmd, >+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, >+ linker_so=ldshared, >+ linker_exe=cc, >+ linker_so_cxx=ldcxxshared, >+ linker_exe_cxx=cxx) > compiler.shared_lib_extension = get_config_var('SO') > if "CPPFLAGS" in os.environ: > cppflags = shlex.split(os.environ["CPPFLAGS"]) >--- lib-python/2.7/distutils/unixccompiler.py >+++ lib-python/2.7/distutils/unixccompiler.py >@@ -114,14 +114,17 @@ > # are pretty generic; they will probably have to be set by an outsider > # (eg. using information discovered by the sysconfig about building > # Python extensions). >- executables = {'preprocessor' : None, >- 'compiler' : ["cc"], >- 'compiler_so' : ["cc"], >- 'compiler_cxx' : ["cc"], >- 'linker_so' : ["cc", "-shared"], >- 'linker_exe' : ["cc"], >- 'archiver' : ["ar", "-cr"], >- 'ranlib' : None, >+ executables = {'preprocessor' : None, >+ 'compiler' : ["cc"], >+ 'compiler_so' : ["cc"], >+ 'compiler_cxx' : ["c++"], >+ 'compiler_so_cxx' : ["c++"], >+ 'linker_so' : ["cc", "-shared"], >+ 'linker_exe' : ["cc"], >+ 'linker_so_cxx' : ["c++", "-shared"], >+ 'linker_exe_cxx' : ["c++"], >+ 'archiver' : ["ar", "-cr"], >+ 'ranlib' : None, > } > > if sys.platform[:6] == "darwin": >@@ -171,11 +174,18 @@ > > def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): > compiler_so = self.compiler_so >+ compiler_so_cxx = self.compiler_so_cxx > if sys.platform == 'darwin': > compiler_so = _darwin_compiler_fixup(compiler_so, cc_args + extra_postargs) >+ compiler_so_cxx = _darwin_compiler_fixup(compiler_so_cxx, cc_args + >+ extra_postargs) > try: >- self.spawn(compiler_so + cc_args + [src, '-o', obj] + >- extra_postargs) >+ if self.detect_language(src) == 'c++': >+ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] + >+ extra_postargs) >+ else: >+ self.spawn(compiler_so + cc_args + [src, '-o', obj] + >+ extra_postargs) > except DistutilsExecError, msg: > raise CompileError, msg > >@@ -232,23 +242,16 @@ > ld_args.extend(extra_postargs) > self.mkpath(os.path.dirname(output_filename)) > try: >- if target_desc == CCompiler.EXECUTABLE: >- linker = self.linker_exe[:] >+ if target_lang == "c++": >+ if target_desc == CCompiler.EXECUTABLE: >+ linker = self.linker_exe_cxx[:] >+ else: >+ linker = self.linker_so_cxx[:] > else: >- linker = self.linker_so[:] >- if target_lang == "c++" and self.compiler_cxx: >- # skip over environment variable settings if /usr/bin/env >- # is used to set up the linker's environment. >- # This is needed on OSX. Note: this assumes that the >- # normal and C++ compiler have the same environment >- # settings. >- i = 0 >- if os.path.basename(linker[0]) == "env": >- i = 1 >- while '=' in linker[i]: >- i = i + 1 >- >- linker[i] = self.compiler_cxx[i] >+ if target_desc == CCompiler.EXECUTABLE: >+ linker = self.linker_exe[:] >+ else: >+ linker = self.linker_so[:] > > if sys.platform == 'darwin': > linker = _darwin_compiler_fixup(linker, ld_args)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 479832
: 356366