summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-06-28 21:30:52 +0000
committerTarek Ziadé <ziade.tarek@gmail.com>2009-06-28 21:30:52 +0000
commit8f480e54016cee1ad30dec42eb1d768523266271 (patch)
tree047ee02298769b3965ab24506465971f5d186375
parentcc9144a9165a84a7f4d3e122096b7763a35b5efa (diff)
downloadcpython-git-8f480e54016cee1ad30dec42eb1d768523266271.tar.gz
Merged revisions 73490 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r73490 | tarek.ziade | 2009-06-20 15:57:20 +0200 (Sat, 20 Jun 2009) | 1 line Fixed #6164 AIX specific linker argument in Distutils unixcompiler ........
-rw-r--r--Lib/distutils/tests/test_unixccompiler.py8
-rw-r--r--Lib/distutils/unixccompiler.py33
-rw-r--r--Misc/NEWS3
3 files changed, 28 insertions, 16 deletions
diff --git a/Lib/distutils/tests/test_unixccompiler.py b/Lib/distutils/tests/test_unixccompiler.py
index 94e9edfc09..96f5454e3e 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 c11544d828..26d2856ad4 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -286,23 +286,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
diff --git a/Misc/NEWS b/Misc/NEWS
index 2ba1036fca..91a47dac16 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -839,6 +839,9 @@ Core and Builtins
Library
-------
+- Issue #6164: Added an AIX specific linker argument in Distutils
+ unixcompiler. Original patch by Sridhar Ratnakumar.
+
- Issue #6286: Now Distutils upload command is based on urllib2 instead of
httplib, allowing the usage of http_proxy.