[PATCH] D46898: Give shared modules in unittests the platform-native extension, make PipSqueak a MODULE

Nico Weber via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 15 10:59:56 PDT 2018


thakis created this revision.
thakis added a reviewer: philip.pfaffe.
Herald added a subscriber: mgorny.

As far as I can tell from revision history, there's no good reason to call these files .so instead of .dll in Windows, so use the normal extension.

Also change PipSquak from SHARED to MODULE -- it's never passed to target_link_libraries() and only loaded via dlopen(), so MODULE is more appropriate. This makes it possible to delete a workaround for SHARED ldflags being not quite right as well.

No intended behavior change.


https://reviews.llvm.org/D46898

Files:
  unittests/Passes/CMakeLists.txt
  unittests/Passes/PluginsTest.cpp
  unittests/Support/DynamicLibrary/CMakeLists.txt
  unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp


Index: unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
===================================================================
--- unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
+++ unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
@@ -20,12 +20,14 @@
 using namespace llvm::sys;
 
 std::string LibPath(const std::string Name = "PipSqueak") {
-  const std::vector<testing::internal::string>& Argvs = testing::internal::GetArgvs();
-  const char *Argv0 = Argvs.size() > 0 ? Argvs[0].c_str() : "DynamicLibraryTests";
+  const std::vector<testing::internal::string> &Argvs =
+      testing::internal::GetArgvs();
+  const char *Argv0 =
+      Argvs.size() > 0 ? Argvs[0].c_str() : "DynamicLibraryTests";
   void *Ptr = (void*)(intptr_t)TestA;
   std::string Path = fs::getMainExecutable(Argv0, Ptr);
   llvm::SmallString<256> Buf(path::parent_path(Path));
-  path::append(Buf, (Name+".so").c_str());
+  path::append(Buf, (Name + LTDL_SHLIB_EXT).c_str());
   return Buf.str();
 }
 
Index: unittests/Support/DynamicLibrary/CMakeLists.txt
===================================================================
--- unittests/Support/DynamicLibrary/CMakeLists.txt
+++ unittests/Support/DynamicLibrary/CMakeLists.txt
@@ -11,7 +11,7 @@
 export_executable_symbols(DynamicLibraryTests)
 
 function(dynlib_add_module NAME)
-  add_library(${NAME} SHARED PipSqueak.cpp)
+  add_library(${NAME} MODULE PipSqueak.cpp)
   set_target_properties(${NAME} PROPERTIES FOLDER "Tests")
 
   set_output_directory(${NAME}
@@ -21,18 +21,11 @@
 
   set_target_properties(${NAME}
     PROPERTIES PREFIX ""
-    SUFFIX ".so"
+    SUFFIX ${LLVM_PLUGIN_EXT}
     )
 
   add_dependencies(DynamicLibraryTests ${NAME})
 endfunction(dynlib_add_module)
 
-# Revert -Wl,-z,nodelete on this test since it relies on the file
-# being unloaded.
-if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  string(REPLACE "-Wl,-z,nodelete" "" CMAKE_SHARED_LINKER_FLAGS
-    ${CMAKE_SHARED_LINKER_FLAGS})
-endif()
-
 dynlib_add_module(PipSqueak)
 dynlib_add_module(SecondLib)
Index: unittests/Passes/PluginsTest.cpp
===================================================================
--- unittests/Passes/PluginsTest.cpp
+++ unittests/Passes/PluginsTest.cpp
@@ -8,6 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Analysis/CGSCCPassManager.h"
+#include "llvm/Config/config.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Passes/PassBuilder.h"
 #include "llvm/Passes/PassPlugin.h"
@@ -32,7 +33,7 @@
   void *Ptr = (void *)(intptr_t)anchor;
   std::string Path = sys::fs::getMainExecutable(Argv0, Ptr);
   llvm::SmallString<256> Buf{sys::path::parent_path(Path)};
-  sys::path::append(Buf, (Name + ".so").c_str());
+  sys::path::append(Buf, (Name + LTDL_SHLIB_EXT).c_str());
   return Buf.str();
 }
 
Index: unittests/Passes/CMakeLists.txt
===================================================================
--- unittests/Passes/CMakeLists.txt
+++ unittests/Passes/CMakeLists.txt
@@ -21,7 +21,7 @@
 
 set_target_properties(TestPlugin
   PROPERTIES PREFIX ""
-  SUFFIX ".so"
+  SUFFIX ${LLVM_PLUGIN_EXT}
   )
 set_target_properties(TestPlugin PROPERTIES FOLDER "Tests")
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46898.146883.patch
Type: text/x-patch
Size: 3189 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180515/94666ef3/attachment.bin>


More information about the llvm-commits mailing list