public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in dev-python/pypy/files: 2.0-distutils-fix_handling_of_executables_and_flags.patch 2.0-no-static-hack.patch
@ 2012-12-20  5:46 Mike Gilbert (floppym)
  0 siblings, 0 replies; only message in thread
From: Mike Gilbert (floppym) @ 2012-12-20  5:46 UTC (permalink / raw
  To: gentoo-commits

floppym     12/12/20 05:46:53

  Added:               
                        2.0-distutils-fix_handling_of_executables_and_flags.patch
                        2.0-no-static-hack.patch
  Log:
  Version bump for testing, bug 445450. No keywords.
  
  (Portage version: 2.2.0_alpha149/cvs/Linux x86_64, signed Manifest commit with key 0BBEEA1FEA4843A4)

Revision  Changes    Path
1.1                  dev-python/pypy/files/2.0-distutils-fix_handling_of_executables_and_flags.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/pypy/files/2.0-distutils-fix_handling_of_executables_and_flags.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/pypy/files/2.0-distutils-fix_handling_of_executables_and_flags.patch?rev=1.1&content-type=text/plain

Index: 2.0-distutils-fix_handling_of_executables_and_flags.patch
===================================================================
http://bugs.python.org/issue1222585

--- lib-python/2.7/distutils/cygwinccompiler.py
+++ lib-python/2.7/distutils/cygwinccompiler.py
@@ -132,9 +132,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":
@@ -160,8 +164,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
 
@@ -322,10 +330,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
@@ -150,10 +150,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:
@@ -191,19 +193,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:
@@ -212,13 +222,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
@@ -530,7 +544,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)
@@ -549,7 +563,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)
@@ -573,7 +587,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
@@ -114,13 +114,56 @@
     optional C speedup components.
     """
     if compiler.compiler_type == "unix":
-        compiler.compiler_so.extend(['-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 "CFLAGS" in os.environ:
-            cflags = os.environ["CFLAGS"]
-            compiler.compiler.append(cflags)
-            compiler.compiler_so.append(cflags)
-            compiler.linker_so.append(cflags)
 
 
 from sysconfig_cpython import (
--- 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)


1.1                  dev-python/pypy/files/2.0-no-static-hack.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/pypy/files/2.0-no-static-hack.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/pypy/files/2.0-no-static-hack.patch?rev=1.1&content-type=text/plain

Index: 2.0-no-static-hack.patch
===================================================================
Remove logic that links to libssl and libcrypto statically if
possible. Just always link dynamically: Gentoo is expected to have
sane dynamic libraries for us to use, and our users are not expected
to copy their pypy binary to a system with an incompatible
libssl/libcrypto and expect it to work.

Based on patch contributed by XU Benda <heroxbd@gentoo.org>.

--- pypy/rlib/ropenssl.py
+++ pypy/rlib/ropenssl.py
@@ -20,27 +20,8 @@
         # so that openssl/ssl.h can repair this nonsense.
         'wincrypt.h']
 else:
-    libraries = ['z']
+    libraries = ['z','ssl','crypto']
     includes = []
-    if (sys.platform.startswith('linux') and
-        os.path.exists('/usr/lib/libssl.a') and
-        os.path.exists('/usr/lib/libcrypto.a')):
-        # use static linking to avoid the infinite
-        # amount of troubles due to symbol versions
-        # and 0.9.8/1.0.0
-        link_files += ['/usr/lib/libssl.a', '/usr/lib/libcrypto.a']
-        testonly_libraries += ['ssl', 'crypto']
-    elif (sys.platform.startswith('linux') and
-        os.path.exists('/usr/local/ssl/lib/libssl.a') and
-        os.path.exists('/usr/local/ssl/lib/libcrypto.a')):
-        # use static linking, 2nd version
-        include_dirs += ['/usr/local/ssl/include']
-        link_files += ['/usr/local/ssl/lib/libssl.a',
-                       '/usr/local/ssl/lib/libcrypto.a',
-                       '-ldl']
-        testonly_libraries += ['ssl', 'crypto']
-    else:
-        libraries += ['ssl', 'crypto']
 
 includes += [
     'openssl/ssl.h', 





^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-12-20  5:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-20  5:46 [gentoo-commits] gentoo-x86 commit in dev-python/pypy/files: 2.0-distutils-fix_handling_of_executables_and_flags.patch 2.0-no-static-hack.patch Mike Gilbert (floppym)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox