cpython: a6a36bb6ee50 (original) (raw)
--- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -115,10 +115,13 @@ elif os.name == "posix": env = dict(os.environ) env['LC_ALL'] = 'C' env['LANG'] = 'C'
proc = subprocess.Popen(args,[](#l1.7)
stdout=subprocess.PIPE,[](#l1.8)
stderr=subprocess.STDOUT,[](#l1.9)
env=env)[](#l1.10)
try:[](#l1.11)
proc = subprocess.Popen(args,[](#l1.12)
stdout=subprocess.PIPE,[](#l1.13)
stderr=subprocess.STDOUT,[](#l1.14)
env=env)[](#l1.15)
except OSError: # E.g. bad executable[](#l1.16)
return None[](#l1.17) with proc:[](#l1.18) trace = proc.stdout.read()[](#l1.19) finally:[](#l1.20)
@@ -140,9 +143,12 @@ elif os.name == "posix": if not f: return None
proc = subprocess.Popen(("/usr/ccs/bin/dump", "-Lpv", f),[](#l1.25)
stdout=subprocess.PIPE,[](#l1.26)
stderr=subprocess.DEVNULL)[](#l1.27)
try:[](#l1.28)
proc = subprocess.Popen(("/usr/ccs/bin/dump", "-Lpv", f),[](#l1.29)
stdout=subprocess.PIPE,[](#l1.30)
stderr=subprocess.DEVNULL)[](#l1.31)
except OSError: # E.g. command not found[](#l1.32)
return None[](#l1.33) with proc:[](#l1.34) data = proc.stdout.read()[](#l1.35) res = re.search(br'\[.*\]\sSONAME\s+([^\s]+)', data)[](#l1.36)
@@ -159,9 +165,12 @@ elif os.name == "posix": # objdump is not available, give up return None
proc = subprocess.Popen((objdump, '-p', '-j', '.dynamic', f),[](#l1.41)
stdout=subprocess.PIPE,[](#l1.42)
stderr=subprocess.DEVNULL)[](#l1.43)
try:[](#l1.44)
proc = subprocess.Popen((objdump, '-p', '-j', '.dynamic', f),[](#l1.45)
stdout=subprocess.PIPE,[](#l1.46)
stderr=subprocess.DEVNULL)[](#l1.47)
except OSError: # E.g. bad executable[](#l1.48)
return None[](#l1.49) with proc:[](#l1.50) dump = proc.stdout.read()[](#l1.51) res = re.search(br'\sSONAME\s+([^\s]+)', dump)[](#l1.52)
@@ -187,11 +196,15 @@ elif os.name == "posix": expr = r':-l%s.\S+ => \S*/(lib%s.\S+)' % (ename, ename) expr = os.fsencode(expr)
proc = subprocess.Popen(('/sbin/ldconfig', '-r'),[](#l1.57)
stdout=subprocess.PIPE,[](#l1.58)
stderr=subprocess.DEVNULL)[](#l1.59)
with proc:[](#l1.60)
data = proc.stdout.read()[](#l1.61)
try:[](#l1.62)
proc = subprocess.Popen(('/sbin/ldconfig', '-r'),[](#l1.63)
stdout=subprocess.PIPE,[](#l1.64)
stderr=subprocess.DEVNULL)[](#l1.65)
except OSError: # E.g. command not found[](#l1.66)
data = b''[](#l1.67)
else:[](#l1.68)
with proc:[](#l1.69)
data = proc.stdout.read()[](#l1.70)
res = re.findall(expr, data) if not res: @@ -214,10 +227,13 @@ elif os.name == "posix": args = ('/usr/bin/crle',) paths = None
proc = subprocess.Popen(args,[](#l1.78)
stdout=subprocess.PIPE,[](#l1.79)
stderr=subprocess.DEVNULL,[](#l1.80)
env=env)[](#l1.81)
try:[](#l1.82)
proc = subprocess.Popen(args,[](#l1.83)
stdout=subprocess.PIPE,[](#l1.84)
stderr=subprocess.DEVNULL,[](#l1.85)
env=env)[](#l1.86)
except OSError: # E.g. bad executable[](#l1.87)
return None[](#l1.88) with proc:[](#l1.89) for line in proc.stdout:[](#l1.90) line = line.strip()[](#l1.91)