]> granicus.if.org Git - python/commitdiff
Fixed #6164 AIX specific linker argument in Distutils unixcompiler
authorTarek Ziadé <ziade.tarek@gmail.com>
Sat, 20 Jun 2009 13:57:20 +0000 (13:57 +0000)
committerTarek Ziadé <ziade.tarek@gmail.com>
Sat, 20 Jun 2009 13:57:20 +0000 (13:57 +0000)
Lib/distutils/tests/test_unixccompiler.py
Lib/distutils/unixccompiler.py
Misc/NEWS

index 94e9edfc094ef9998104d6f0e718a6c2923baa59..96f5454e3ec74520ad283091a965f31668a8a364 100644 (file)
@@ -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)
 
index 0b1dc4af7d33aa714f287f5336017bc4c7ae3d6d..129ac8cf11889ea2976c89c22f331d09bc4ce291 100644 (file)
@@ -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
index 4f59ba6af8ba8279fb05ad04dcbe963f195f376a..958131338e23d85df8fbb105f59a612a56a32aa2 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -327,6 +327,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #6164: Added an AIX specific linker argument in Distutils 
+  unixcompiler. Original patch by Sridhar Ratnakumar.
+
 - Issue #6274: Fixed possible file descriptors leak in subprocess.py
 
 - Issue #6189: Restored compatibility of subprocess.py with Python 2.2.