[PATCH] D96282: [CMake][AIX] Adjust plugin library externsion used on AIX

Xiangling Liao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 8 10:25:58 PST 2021


Xiangling_L created this revision.
Xiangling_L added reviewers: daltenty, hubert.reinterpretcast, stevewan, jasonliu.
Herald added a subscriber: mgorny.
Xiangling_L requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

As stated in CMake manual[https://cmake.org/cmake/help/v3.16/command/add_library.html], 
we are supposed to use `MODULE` rule to generate plugin libraries:

  MODULE libraries are plugins that are not linked into other targets but may be loaded dynamically at runtime using dlopen-like functionality

Besides, the extension of plugins on AIX should have `.so` as file extension.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D96282

Files:
  llvm/cmake/modules/HandleLLVMOptions.cmake
  llvm/include/llvm/Config/config.h.cmake
  llvm/unittests/Support/DynamicLibrary/CMakeLists.txt
  llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp


Index: llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
===================================================================
--- llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
+++ llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
@@ -26,7 +26,7 @@
   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 + LTDL_SHLIB_EXT).c_str());
+  path::append(Buf, (Name + LLVM_PLUGIN_EXT).c_str());
   return std::string(Buf.str());
 }
 
Index: llvm/unittests/Support/DynamicLibrary/CMakeLists.txt
===================================================================
--- llvm/unittests/Support/DynamicLibrary/CMakeLists.txt
+++ llvm/unittests/Support/DynamicLibrary/CMakeLists.txt
@@ -22,7 +22,7 @@
 export_executable_symbols(DynamicLibraryTests)
 
 function(dynlib_add_module NAME)
-  add_library(${NAME} SHARED
+  add_library(${NAME} MODULE
     PipSqueak.cpp
     )
   set_target_properties(${NAME} PROPERTIES FOLDER "Tests")
@@ -34,7 +34,7 @@
 
   set_target_properties(${NAME}
     PROPERTIES PREFIX ""
-    SUFFIX ${LTDL_SHLIB_EXT}
+    SUFFIX ${LLVM_PLUGIN_EXT}
     )
 
   add_dependencies(DynamicLibraryTests ${NAME})
Index: llvm/include/llvm/Config/config.h.cmake
===================================================================
--- llvm/include/llvm/Config/config.h.cmake
+++ llvm/include/llvm/Config/config.h.cmake
@@ -314,6 +314,9 @@
 /* Define to the extension used for shared libraries, say, ".so". */
 #cmakedefine LTDL_SHLIB_EXT "${LTDL_SHLIB_EXT}"
 
+/* Define to the extension used for plugin libraries, say, ".so". */
+#cmakedefine LLVM_PLUGIN_EXT "${LLVM_PLUGIN_EXT}"
+
 /* Define to the address where bug reports for this package should be sent. */
 #cmakedefine PACKAGE_BUGREPORT "${PACKAGE_BUGREPORT}"
 
Index: llvm/cmake/modules/HandleLLVMOptions.cmake
===================================================================
--- llvm/cmake/modules/HandleLLVMOptions.cmake
+++ llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -153,7 +153,11 @@
 set(LTDL_SHLIB_EXT ${CMAKE_SHARED_LIBRARY_SUFFIX})
 
 # We use *.dylib rather than *.so on darwin.
-set(LLVM_PLUGIN_EXT ${CMAKE_SHARED_LIBRARY_SUFFIX})
+if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
+  set(LLVM_PLUGIN_EXT ".so")
+else()
+  set(LLVM_PLUGIN_EXT ${CMAKE_SHARED_LIBRARY_SUFFIX})
+endif()
 
 if(APPLE)
   if(LLVM_ENABLE_LLD AND LLVM_ENABLE_LTO)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D96282.322157.patch
Type: text/x-patch
Size: 2462 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210208/15a82051/attachment.bin>


More information about the llvm-commits mailing list