fix find_library on Solaris (closes #5289)

This commit is contained in:
Benjamin Peterson 2013-02-03 19:25:11 -05:00
parent 7a34f02f9e
commit cfe34744e3
3 changed files with 32 additions and 0 deletions

View File

@ -166,6 +166,35 @@ elif os.name == "posix":
res.sort(key=_num_version) res.sort(key=_num_version)
return res[-1] return res[-1]
elif sys.platform == "sunos5":
def _findLib_crle(name, is64):
if not os.path.exists('/usr/bin/crle'):
return None
if is64:
cmd = 'env LC_ALL=C /usr/bin/crle -64 2>/dev/null'
else:
cmd = 'env LC_ALL=C /usr/bin/crle 2>/dev/null'
for line in os.popen(cmd).readlines():
line = line.strip()
if line.startswith('Default Library Path (ELF):'):
paths = line.split()[4]
if not paths:
return None
for dir in paths.split(":"):
libfile = os.path.join(dir, "lib%s.so" % name)
if os.path.exists(libfile):
return libfile
return None
def find_library(name, is64 = False):
return _get_soname(_findLib_crle(name, is64) or _findLib_gcc(name))
else: else:
def _findSoname_ldconfig(name): def _findSoname_ldconfig(name):

View File

@ -1250,6 +1250,7 @@ Richard Walker
Larry Wall Larry Wall
Kevin Walzer Kevin Walzer
Rodrigo Steinmuller Wanderley Rodrigo Steinmuller Wanderley
Ke Wang
Greg Ward Greg Ward
Zachary Ware Zachary Ware
Barry Warsaw Barry Warsaw

View File

@ -163,6 +163,8 @@ Core and Builtins
Library Library
------- -------
- Issue #5289: Fix ctypes.util.find_library on Solaris.
- Issue #17106: Fix a segmentation fault in io.TextIOWrapper when an underlying - Issue #17106: Fix a segmentation fault in io.TextIOWrapper when an underlying
stream or a decoder produces data of an unexpected type (i.e. when stream or a decoder produces data of an unexpected type (i.e. when
io.TextIOWrapper initialized with text stream or use bytes-to-bytes codec). io.TextIOWrapper initialized with text stream or use bytes-to-bytes codec).