in azure-protected-vm-secrets/DynamicSecretsProvisioningLibrary/pySecretsProvisioningLibrary.py [0:0]
def _create_ld_so_cache(self):
# Recreate search path followed by ld.so. This is going to be
# slow to build, and incorrect (ld.so uses ld.so.cache, which may
# not be up-to-date). Used only as fallback for distros without
# /sbin/ldconfig.
#
# We assume the DT_RPATH and DT_RUNPATH binary sections are omitted.
directories = self._Directories()
for name in (
"LD_LIBRARY_PATH",
"SHLIB_PATH", # HP-UX
"LIBPATH", # OS/2, AIX
"LIBRARY_PATH", # BE/OS
):
if name in os.environ:
directories.extend(os.environ[name].split(os.pathsep))
self._get_ld_so_conf_dirs("/etc/ld.so.conf", directories)
bitage = platform.architecture()[0]
unix_lib_dirs_list = []
if bitage.startswith("64"):
# prefer 64 bit if that is our arch
unix_lib_dirs_list += ["/lib64", "/usr/lib64"]
# must include standard libs, since those paths are also used by 64 bit
# installs
unix_lib_dirs_list += ["/lib", "/usr/lib"]
if sys.platform.startswith("linux"):
# Try and support multiarch work in Ubuntu
# https://wiki.ubuntu.com/MultiarchSpec
if bitage.startswith("32"):
# Assume Intel/AMD x86 compat
unix_lib_dirs_list += ["/lib/i386-linux-gnu", "/usr/lib/i386-linux-gnu"]
elif bitage.startswith("64"):
# Assume Intel/AMD x86 compatible
unix_lib_dirs_list += [
"/lib/x86_64-linux-gnu",
"/usr/lib/x86_64-linux-gnu",
]
else:
# guess...
unix_lib_dirs_list += glob.glob("/lib/*linux-gnu")
directories.extend(unix_lib_dirs_list)
cache = {}
lib_re = re.compile(r"lib(.*)\.s[ol]")
# ext_re = re.compile(r"\.s[ol]$")
for our_dir in directories.ordered():
try:
for path in glob.glob("%s/*.s[ol]*" % our_dir):
file = os.path.basename(path)
# Index by filename
cache_i = cache.setdefault(file, set())
cache_i.add(path)
# Index by library name
match = lib_re.match(file)
if match:
library = match.group(1)
cache_i = cache.setdefault(library, set())
cache_i.add(path)
except OSError:
pass
self._ld_so_cache = cache