[Lldb-commits] [lldb] 5f4c850 - [lldb/test] Do a better job at setting (DY)LD_LIBRARY_PATH
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Wed Jul 22 02:37:11 PDT 2020
Author: Pavel Labath
Date: 2020-07-22T11:37:02+02:00
New Revision: 5f4c850e7b4f100a8c779ea52b492c87af076136
URL: https://github.com/llvm/llvm-project/commit/5f4c850e7b4f100a8c779ea52b492c87af076136
DIFF: https://github.com/llvm/llvm-project/commit/5f4c850e7b4f100a8c779ea52b492c87af076136.diff
LOG: [lldb/test] Do a better job at setting (DY)LD_LIBRARY_PATH
Summary:
registerSharedLibrariesWithTarget was setting the library path
environment variable to the process build directory, but the function is
also accepting libraries in other directories (in which case they won't
be found automatically).
This patch makes the function set the path variable correctly for these
libraries too. This enables us to remove the code for setting the path
variable in TestWeakSymbols.py, which was working only accidentally --
it was relying on the fact that
launch_info.SetEnvironmentEntries(..., append=True)
would not overwrite the path variable it has set, but that is going to
change with D83306.
Reviewers: davide, jingham
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D83552
Added:
Modified:
lldb/packages/Python/lldbsuite/test/lldbtest.py
lldb/test/API/commands/expression/weak_symbols/TestWeakSymbols.py
Removed:
################################################################################
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index 25805726f9b3..d73d5344d6c1 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -1881,8 +1881,7 @@ def registerSharedLibrariesWithTarget(self, target, shlibs):
shlib_prefix = self.platformContext.shlib_prefix
shlib_extension = '.' + self.platformContext.shlib_extension
- working_dir = self.get_process_working_directory()
- environment = ['%s=%s' % (shlib_environment_var, working_dir)]
+ dirs = []
# Add any shared libraries to our target if remote so they get
# uploaded into the working directory on the remote side
for name in shlibs:
@@ -1905,6 +1904,7 @@ def registerSharedLibrariesWithTarget(self, target, shlibs):
# Make sure we found the local shared library in the above code
self.assertTrue(os.path.exists(local_shlib_path))
+
# Add the shared library to our target
shlib_module = target.AddModule(local_shlib_path, None, None, None)
if lldb.remote_platform:
@@ -1914,8 +1914,15 @@ def registerSharedLibrariesWithTarget(self, target, shlibs):
os.path.basename(local_shlib_path))
shlib_module.SetRemoteInstallFileSpec(
lldb.SBFileSpec(remote_shlib_path, False))
+ dir_to_add = self.get_process_working_directory()
+ else:
+ dir_to_add = os.path.dirname(local_shlib_path)
+
+ if dir_to_add not in dirs:
+ dirs.append(dir_to_add)
- return environment
+ env_value = self.platformContext.shlib_path_separator.join(dirs)
+ return ['%s=%s' % (shlib_environment_var, env_value)]
def registerSanitizerLibrariesWithTarget(self, target):
runtimes = []
diff --git a/lldb/test/API/commands/expression/weak_symbols/TestWeakSymbols.py b/lldb/test/API/commands/expression/weak_symbols/TestWeakSymbols.py
index b67b5b4efe0b..2b63fba00e65 100644
--- a/lldb/test/API/commands/expression/weak_symbols/TestWeakSymbols.py
+++ b/lldb/test/API/commands/expression/weak_symbols/TestWeakSymbols.py
@@ -48,10 +48,6 @@ def do_test(self):
launch_info = lldb.SBLaunchInfo(None)
launch_info.SetWorkingDirectory(self.getBuildDir())
- # We have to point to the hidden directory to pick up the
- # version of the dylib without the weak symbols:
- env_expr = self.platformContext.shlib_environment_var + "=" + hidden_dir
- launch_info.SetEnvironmentEntries([env_expr], True)
(self.target, _, thread, _) = lldbutil.run_to_source_breakpoint(
self, "Set a breakpoint here",
More information about the lldb-commits
mailing list