summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-09-09 08:14:20 (GMT)
committerTarek Ziadé <ziade.tarek@gmail.com>2009-09-09 08:14:20 (GMT)
commitbed26a3ce371d5244898e1d160a3ca566aec4486 (patch)
treeead8771e511d3cc67813dd06fa8d1dc7e9a9e1bf /Lib
parent7f6d0834f987f1f1599347131de4f5e9e8cb4864 (diff)
downloadcpython-bed26a3ce371d5244898e1d160a3ca566aec4486.zip
cpython-bed26a3ce371d5244898e1d160a3ca566aec4486.tar.gz
cpython-bed26a3ce371d5244898e1d160a3ca566aec4486.tar.bz2
Issue #6163: Fixed HP-UX runtime library dir options in distutils.unixcompiler
Diffstat (limited to 'Lib')
-rw-r--r--Lib/distutils/tests/test_unixccompiler.py18
-rw-r--r--Lib/distutils/unixccompiler.py4
2 files changed, 20 insertions, 2 deletions
diff --git a/Lib/distutils/tests/test_unixccompiler.py b/Lib/distutils/tests/test_unixccompiler.py
index 96f5454..1b7dd4c 100644
--- a/Lib/distutils/tests/test_unixccompiler.py
+++ b/Lib/distutils/tests/test_unixccompiler.py
@@ -36,7 +36,23 @@ class UnixCCompilerTestCase(unittest.TestCase):
# hp-ux
sys.platform = 'hp-ux'
- self.assertEqual(self.cc.rpath_foo(), '+s -L/foo')
+ old_gcv = sysconfig.get_config_var
+ def gcv(v):
+ return 'xxx'
+ sysconfig.get_config_var = gcv
+ self.assertEqual(self.cc.rpath_foo(), ['+s', '-L/foo'])
+
+ def gcv(v):
+ return 'gcc'
+ sysconfig.get_config_var = gcv
+ self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])
+
+ def gcv(v):
+ return 'g++'
+ sysconfig.get_config_var = gcv
+ self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])
+
+ sysconfig.get_config_var = old_gcv
# irix646
sys.platform = 'irix646'
diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
index 129ac8c..2083f82 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -285,7 +285,9 @@ class UnixCCompiler(CCompiler):
# MacOSX's linker doesn't understand the -R flag at all
return "-L" + dir
elif sys.platform[:5] == "hp-ux":
- return "+s -L" + dir
+ if "gcc" in compiler or "g++" in compiler:
+ return ["-Wl,+s", "-L" + dir]
+ return ["+s", "-L" + dir]
elif sys.platform[:7] == "irix646" or sys.platform[:6] == "osf1V5":
return ["-rpath", dir]
elif compiler[:3] == "gcc" or compiler[:3] == "g++":