[lit] Only set DYLD_LIBRARY_PATH for shared builds
authorJonas Devlieghere <jonas@devlieghere.com>
Fri, 30 Aug 2019 23:16:02 +0000 (23:16 +0000)
committerJonas Devlieghere <jonas@devlieghere.com>
Fri, 30 Aug 2019 23:16:02 +0000 (23:16 +0000)
In r370135 I committed a temporary workaround for the sanitized bot to
not set (DY)LD_LIBRARY_PATH when (DY)LD_INSERT_LIBRARIES was set.
Setting (DY)LD_LIBRARY_PATH is only necessary for (standalone)
shared-library builds, so a better solution is to only set the
environment variable when necessary.

Differential revision: https://reviews.llvm.org/D67012

llvm-svn: 370549

lldb/lit/CMakeLists.txt
lldb/lit/Suite/lit.cfg
lldb/lit/Suite/lit.site.cfg.in
llvm/cmake/modules/LLVMConfig.cmake.in

index 608b211bc0c57477b41fbd43e90a7accb783f8e0..bb4314427e83638fe38a06bcb587a4d173010610 100644 (file)
@@ -69,6 +69,7 @@ endif()
 llvm_canonicalize_cmake_booleans(
   LLDB_DISABLE_PYTHON
   LLVM_ENABLE_ZLIB
+  LLVM_ENABLE_SHARED_LIBS
   LLDB_IS_64_BITS)
 
 configure_lit_site_cfg(
index aec9690662f82e59a3bb0a0ab1ade643870d5d1e..9504f4ca1d845aba4c69d9b762c8beaf8fd0cea7 100644 (file)
@@ -39,21 +39,18 @@ def find_shlibpath_var():
   elif platform.system() == 'Windows':
     yield 'PATH'
 
-if not 'DYLD_INSERT_LIBRARIES' in config.environment:
-  # Shared library build of LLVM may require LD_LIBRARY_PATH or equivalent.
-  # This clashes with DYLD_INSERT_LIBRARIES which is needed on Darwin.
+# Shared library build of LLVM may require LD_LIBRARY_PATH or equivalent.
+if config.shared_libs:
   for shlibpath_var in find_shlibpath_var():
     # In stand-alone build llvm_shlib_dir specifies LLDB's lib directory while
     # llvm_libs_dir specifies LLVM's lib directory.
     shlibpath = os.path.pathsep.join(
-      (config.llvm_shlib_dir,
-      config.llvm_libs_dir,
-      config.environment.get(shlibpath_var, '')))
+        (config.llvm_shlib_dir, config.llvm_libs_dir,
+         config.environment.get(shlibpath_var, '')))
     config.environment[shlibpath_var] = shlibpath
-    break
   else:
-    lit_config.warning("unable to inject shared library path on '{}'"
-                      .format(platform.system()))
+    lit_config.warning("unable to inject shared library path on '{}'".format(
+        platform.system()))
 
 # Build dotest command.
 dotest_cmd = [config.dotest_path]
index 9b950cf32a016f4a58cf5ca7e4e7edff34918fcc..306967d61fd009db1b1cefc4afd0b69995e8ff0d 100644 (file)
@@ -13,6 +13,7 @@ config.lldb_src_root = "@LLDB_SOURCE_DIR@"
 config.cmake_cxx_compiler = "@CMAKE_CXX_COMPILER@"
 config.host_os = "@HOST_OS@"
 config.host_triple = "@LLVM_HOST_TRIPLE@"
+config.shared_libs = @LLVM_ENABLE_SHARED_LIBS@
 config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
 config.target_triple = "@TARGET_TRIPLE@"
 config.lldb_build_directory = "@LLDB_TEST_BUILD_DIRECTORY@"
index 536031f790d3b664a0fcc62ffbd5edc313f3b72a..6dcbaac446987d1848d6bf6bfcbdd943254a49d2 100644 (file)
@@ -84,6 +84,7 @@ set(LLVM_TOOLS_BINARY_DIR "@LLVM_CONFIG_TOOLS_BINARY_DIR@")
 set(LLVM_TOOLS_INSTALL_DIR "@LLVM_TOOLS_INSTALL_DIR@")
 set(LLVM_HAVE_OPT_VIEWER_MODULES @LLVM_HAVE_OPT_VIEWER_MODULES@)
 set(LLVM_CONFIGURATION_TYPES @CMAKE_CONFIGURATION_TYPES@)
+set(LLVM_ENABLE_SHARED_LIBS @BUILD_SHARED_LIBS@)
 
 if(NOT TARGET LLVMSupport)
   set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@")