diff options
author | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-06-20 13:57:20 (GMT) |
---|---|---|
committer | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-06-20 13:57:20 (GMT) |
commit | 439bf93f8cf8c3c24fc8d5d2f6438ca7adb72d0d (patch) | |
tree | 59e71042150e6c114c406f9c1e0fdd8a521a4bbe /Lib/distutils | |
parent | dae5db2805ee2bed27cab737f11e73c1a6566726 (diff) | |
download | cpython-439bf93f8cf8c3c24fc8d5d2f6438ca7adb72d0d.zip cpython-439bf93f8cf8c3c24fc8d5d2f6438ca7adb72d0d.tar.gz cpython-439bf93f8cf8c3c24fc8d5d2f6438ca7adb72d0d.tar.bz2 |
Fixed #6164 AIX specific linker argument in Distutils unixcompiler
Diffstat (limited to 'Lib/distutils')
-rw-r--r-- | Lib/distutils/tests/test_unixccompiler.py | 8 | ||||
-rw-r--r-- | Lib/distutils/unixccompiler.py | 33 |
2 files changed, 25 insertions, 16 deletions
diff --git a/Lib/distutils/tests/test_unixccompiler.py b/Lib/distutils/tests/test_unixccompiler.py index 94e9edf..96f5454 100644 --- a/Lib/distutils/tests/test_unixccompiler.py +++ b/Lib/distutils/tests/test_unixccompiler.py @@ -86,6 +86,14 @@ class UnixCCompilerTestCase(unittest.TestCase): sysconfig.get_config_var = gcv self.assertEqual(self.cc.rpath_foo(), '-R/foo') + # AIX C/C++ linker + sys.platform = 'aix' + def gcv(v): + return 'xxx' + sysconfig.get_config_var = gcv + self.assertEqual(self.cc.rpath_foo(), '-blibpath:/foo') + + def test_suite(): return unittest.makeSuite(UnixCCompilerTestCase) diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py index 0b1dc4a..129ac8c 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -288,23 +288,24 @@ class UnixCCompiler(CCompiler): 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++": - # 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 - # safest to keep doing so. - if sysconfig.get_config_var("GNULD") == "yes": - # GNU ld needs an extra option to get a RUNPATH - # instead of just an RPATH. - return "-Wl,--enable-new-dtags,-R" + dir - else: - return "-Wl,-R" + dir + elif compiler[:3] == "gcc" or compiler[:3] == "g++": + # 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 + # safest to keep doing so. + if sysconfig.get_config_var("GNULD") == "yes": + # GNU ld needs an extra option to get a RUNPATH + # instead of just an RPATH. + return "-Wl,--enable-new-dtags,-R" + dir else: - # No idea how --enable-new-dtags would be passed on to - # ld if this system was using GNU ld. Don't know if a - # system like this even exists. - return "-R" + dir + return "-Wl,-R" + dir + elif sys.platform[:3] == "aix": + return "-blibpath:" + dir + else: + # No idea how --enable-new-dtags would be passed on to + # ld if this system was using GNU ld. Don't know if a + # system like this even exists. + return "-R" + dir def library_option(self, lib): return "-l" + lib |