From a7f49f733bea5ff7aa57be30559cff4b7cc77565 Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Fri, 14 Sep 2007 19:40:35 +0000 Subject: ctypes.util.find_library uses dump(1) instead of objdump(1) on Solaris. Fixes issue #1777530; will backport to release25-maint. --- Lib/ctypes/util.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py index f713353..fc17a2f 100644 --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -66,15 +66,27 @@ elif os.name == "posix": return None return res.group(0) - def _get_soname(f): - # assuming GNU binutils / ELF - if not f: - return None - cmd = "objdump -p -j .dynamic 2>/dev/null " + f - res = re.search(r'\sSONAME\s+([^\s]+)', os.popen(cmd).read()) - if not res: - return None - return res.group(1) + + if sys.platform == "sunos5": + # use /usr/ccs/bin/dump on solaris + def _get_soname(f): + if not f: + return None + cmd = "/usr/ccs/bin/dump -Lpv 2>/dev/null " + f + res = re.search(r'\[.*\]\sSONAME\s+([^\s]+)', os.popen(cmd).read()) + if not res: + return None + return res.group(1) + else: + def _get_soname(f): + # assuming GNU binutils / ELF + if not f: + return None + cmd = "objdump -p -j .dynamic 2>/dev/null " + f + res = re.search(r'\sSONAME\s+([^\s]+)', os.popen(cmd).read()) + if not res: + return None + return res.group(1) if (sys.platform.startswith("freebsd") or sys.platform.startswith("openbsd") -- cgit v0.12