Issue #7384: On Gentoo, libreadline.so is a "fake library", so ldd fails.
In that case, do not attempt to parse stderr output.
This commit is contained in:
parent
45bf773f60
commit
f4e7a35d64
25
setup.py
25
setup.py
|
@ -534,18 +534,19 @@ class PyBuildExt(build_ext):
|
|||
tmpfile = os.path.join(self.build_temp, 'readline_termcap_lib')
|
||||
if not os.path.exists(self.build_temp):
|
||||
os.makedirs(self.build_temp)
|
||||
os.system("ldd %s > %s" % (do_readline, tmpfile))
|
||||
fp = open(tmpfile)
|
||||
for ln in fp:
|
||||
if 'curses' in ln:
|
||||
readline_termcap_library = re.sub(
|
||||
r'.*lib(n?cursesw?)\.so.*', r'\1', ln
|
||||
).rstrip()
|
||||
break
|
||||
if 'tinfo' in ln: # termcap interface split out from ncurses
|
||||
readline_termcap_library = 'tinfo'
|
||||
break
|
||||
fp.close()
|
||||
ret = os.system("ldd %s > %s" % (do_readline, tmpfile))
|
||||
if ret >> 8 == 0:
|
||||
fp = open(tmpfile)
|
||||
for ln in fp:
|
||||
if 'curses' in ln:
|
||||
readline_termcap_library = re.sub(
|
||||
r'.*lib(n?cursesw?)\.so.*', r'\1', ln
|
||||
).rstrip()
|
||||
break
|
||||
if 'tinfo' in ln: # termcap interface split out from ncurses
|
||||
readline_termcap_library = 'tinfo'
|
||||
break
|
||||
fp.close()
|
||||
os.unlink(tmpfile)
|
||||
# Issue 7384: If readline is already linked against curses,
|
||||
# use the same library for the readline and curses modules.
|
||||
|
|
Loading…
Reference in New Issue