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
........
This commit is contained in:
Tarek Ziadé 2009-06-28 21:30:52 +00:00
parent cc9144a916
commit 8f480e5401
3 changed files with 28 additions and 16 deletions

View File

@ -86,6 +86,14 @@ class UnixCCompilerTestCase(unittest.TestCase):
sysconfig.get_config_var = gcv sysconfig.get_config_var = gcv
self.assertEqual(self.cc.rpath_foo(), '-R/foo') 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(): def test_suite():
return unittest.makeSuite(UnixCCompilerTestCase) return unittest.makeSuite(UnixCCompilerTestCase)

View File

@ -286,23 +286,24 @@ class UnixCCompiler(CCompiler):
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]
else: elif compiler[:3] == "gcc" or compiler[:3] == "g++":
if compiler[:3] == "gcc" or compiler[:3] == "g++": # 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 # safest to keep doing so.
# safest to keep doing so. if sysconfig.get_config_var("GNULD") == "yes":
if sysconfig.get_config_var("GNULD") == "yes": # GNU ld needs an extra option to get a RUNPATH
# GNU ld needs an extra option to get a RUNPATH # instead of just an RPATH.
# instead of just an RPATH. return "-Wl,--enable-new-dtags,-R" + dir
return "-Wl,--enable-new-dtags,-R" + dir
else:
return "-Wl,-R" + dir
else: else:
# No idea how --enable-new-dtags would be passed on to return "-Wl,-R" + dir
# ld if this system was using GNU ld. Don't know if a elif sys.platform[:3] == "aix":
# system like this even exists. return "-blibpath:" + dir
return "-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
def library_option(self, lib): def library_option(self, lib):
return "-l" + lib return "-l" + lib

View File

@ -839,6 +839,9 @@ Core and Builtins
Library 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 - Issue #6286: Now Distutils upload command is based on urllib2 instead of
httplib, allowing the usage of http_proxy. httplib, allowing the usage of http_proxy.