diff options
author | Tarek Ziadé <ziade.tarek@gmail.com> | 2010-01-09 00:03:39 (GMT) |
---|---|---|
committer | Tarek Ziadé <ziade.tarek@gmail.com> | 2010-01-09 00:03:39 (GMT) |
commit | 5e9615fa60762b24c32501b462195a6be41136a5 (patch) | |
tree | 5c4bc154229a8c4644433df3754bf6bed4999e3d /Lib/distutils | |
parent | 1a2d3563f960bc284daf146a1b6944cb16167666 (diff) | |
download | cpython-5e9615fa60762b24c32501b462195a6be41136a5.zip cpython-5e9615fa60762b24c32501b462195a6be41136a5.tar.gz cpython-5e9615fa60762b24c32501b462195a6be41136a5.tar.bz2 |
Merged revisions 77380 via svnmerge from
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
........
................
Diffstat (limited to 'Lib/distutils')
-rw-r--r-- | Lib/distutils/tests/test_unixccompiler.py | 12 | ||||
-rw-r--r-- | Lib/distutils/unixccompiler.py | 7 |
2 files changed, 17 insertions, 2 deletions
diff --git a/Lib/distutils/tests/test_unixccompiler.py b/Lib/distutils/tests/test_unixccompiler.py index be2df5c..3a41e6f 100644 --- a/Lib/distutils/tests/test_unixccompiler.py +++ b/Lib/distutils/tests/test_unixccompiler.py @@ -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): diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py index 8bbdb4b..a33fdf0 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -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 |