Commit c25417f6 authored by Tarek Ziadé's avatar Tarek Ziadé

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

parent 5b77d6df
...@@ -82,6 +82,18 @@ class UnixCCompilerTestCase(unittest.TestCase): ...@@ -82,6 +82,18 @@ class UnixCCompilerTestCase(unittest.TestCase):
sysconfig.get_config_var = gcv sysconfig.get_config_var = gcv
self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo') 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 # non-GCC GNULD
sys.platform = 'bar' sys.platform = 'bar'
def gcv(v): def gcv(v):
......
...@@ -266,6 +266,9 @@ class UnixCCompiler(CCompiler): ...@@ -266,6 +266,9 @@ class UnixCCompiler(CCompiler):
def library_dir_option(self, dir): def library_dir_option(self, dir):
return "-L" + 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): def runtime_library_dir_option(self, dir):
# XXX Hackish, at the very least. See Python bug #445902: # XXX Hackish, at the very least. See Python bug #445902:
# http://sourceforge.net/tracker/index.php # http://sourceforge.net/tracker/index.php
...@@ -285,12 +288,12 @@ class UnixCCompiler(CCompiler): ...@@ -285,12 +288,12 @@ class UnixCCompiler(CCompiler):
# MacOSX's linker doesn't understand the -R flag at all # MacOSX's linker doesn't understand the -R flag at all
return "-L" + dir return "-L" + dir
elif sys.platform[:5] == "hp-ux": 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 ["-Wl,+s", "-L" + dir]
return ["+s", "-L" + dir] return ["+s", "-L" + dir]
elif sys.platform[:7] == "irix646" or sys.platform[:6] == "osf1V5": elif sys.platform[:7] == "irix646" or sys.platform[:6] == "osf1V5":
return ["-rpath", dir] return ["-rpath", dir]
elif compiler[:3] == "gcc" or compiler[:3] == "g++": elif self._is_gcc(compiler):
# gcc on non-GNU systems does not need -Wl, but can # gcc on non-GNU systems does not need -Wl, but can
# use it anyway. Since distutils has always passed in # use it anyway. Since distutils has always passed in
# -Wl whenever gcc was used in the past it is probably # -Wl whenever gcc was used in the past it is probably
......
...@@ -65,6 +65,10 @@ Core and Builtins ...@@ -65,6 +65,10 @@ Core and Builtins
Library Library
------- -------
- Issue #7617: Make sure distutils.unixccompiler.UnixCCompiler recognizes
gcc when it has a fully qualified configuration prefix. Initial patch
by Arfrever.
- Issue #7092: Remove py3k warning when importing cPickle. 2to3 handles - Issue #7092: Remove py3k warning when importing cPickle. 2to3 handles
renaming of `cPickle` to `pickle`. The warning was annoying since there's renaming of `cPickle` to `pickle`. The warning was annoying since there's
no alternative to cPickle if you care about performance. Patch by Florent no alternative to cPickle if you care about performance. Patch by Florent
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment