]> granicus.if.org Git - python/commitdiff
Merged revisions 77380 via svnmerge from
authorTarek Ziadé <ziade.tarek@gmail.com>
Sat, 9 Jan 2010 00:03:39 +0000 (00:03 +0000)
committerTarek Ziadé <ziade.tarek@gmail.com>
Sat, 9 Jan 2010 00:03:39 +0000 (00:03 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r77380 | tarek.ziade | 2010-01-09 00:57:53 +0100 (Sat, 09 Jan 2010) | 9 lines

  Merged revisions 77377 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r77377 | tarek.ziade | 2010-01-09 00:42:23 +0100 (Sat, 09 Jan 2010) | 1 line

    Fixed #7617: all flavors of gcc should be recognized now
  ........
................

Lib/distutils/tests/test_unixccompiler.py
Lib/distutils/unixccompiler.py
Misc/NEWS

index be2df5c6e3c137bc368f7df7aafe5c93d4213a39..3a41e6fcaaf0563bad1187cc61229f2d6b9d055d 100644 (file)
@@ -82,6 +82,18 @@ class UnixCCompilerTestCase(unittest.TestCase):
         sysconfig.get_config_var = gcv
         self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
 
+        # GCC GNULD with fully qualified configuration prefix
+        # see #7617
+        sys.platform = 'bar'
+        def gcv(v):
+            if v == 'CC':
+                return 'x86_64-pc-linux-gnu-gcc-4.4.2'
+            elif v == 'GNULD':
+                return 'yes'
+        sysconfig.get_config_var = gcv
+        self.assertEqual(self.cc.rpath_foo(), '-Wl,--enable-new-dtags,-R/foo')
+
+
         # non-GCC GNULD
         sys.platform = 'bar'
         def gcv(v):
index 8bbdb4b32908ae15fb55a888354c7ada4759ba83..a33fdf0f7cd1a34014affce2fbbbbed6eeac4f0f 100644 (file)
@@ -264,6 +264,9 @@ class UnixCCompiler(CCompiler):
     def library_dir_option(self, dir):
         return "-L" + dir
 
+    def _is_gcc(self, compiler_name):
+        return "gcc" in compiler_name or "g++" in compiler_name
+
     def runtime_library_dir_option(self, dir):
         # XXX Hackish, at the very least.  See Python bug #445902:
         # http://sourceforge.net/tracker/index.php
@@ -283,13 +286,13 @@ class UnixCCompiler(CCompiler):
             # MacOSX's linker doesn't understand the -R flag at all
             return "-L" + dir
         elif sys.platform[:5] == "hp-ux":
-            if "gcc" in compiler or "g++" in compiler:
+            if self._is_gcc(compiler):
                 return ["-Wl,+s", "-L" + dir]
             return ["+s", "-L" + dir]
         elif sys.platform[:7] == "irix646" or sys.platform[:6] == "osf1V5":
             return ["-rpath", dir]
         else:
-            if compiler[:3] == "gcc" or compiler[:3] == "g++":
+            if self._is_gcc(compiler):
                 # gcc on non-GNU systems does not need -Wl, but can
                 # use it anyway.  Since distutils has always passed in
                 # -Wl whenever gcc was used in the past it is probably
index fda335f42fd022ec79fae85e35e72728f0f94df2..f4583df9ab0ff7b8ddd8712b67fc8d2fc944f394 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -61,6 +61,10 @@ Core and Builtins
 Library
 -------
 
+- Issue #7617: Make sure distutils.unixccompiler.UnixCCompiler recognizes
+  gcc when it has a fully qualified configuration prefix. Initial patch
+  by Arfrever.
+
 - Issue #7105: Make WeakKeyDictionary and WeakValueDictionary robust against
   the destruction of weakref'ed objects while iterating.