diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -152,8 +152,12 @@ set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX}) set(LTDL_SHLIB_EXT ${CMAKE_SHARED_LIBRARY_SUFFIX}) -# We use *.dylib rather than *.so on darwin. -set(LLVM_PLUGIN_EXT ${CMAKE_SHARED_LIBRARY_SUFFIX}) +# We use *.dylib rather than *.so on darwin, but we stick with *.so on AIX. +if(${CMAKE_SYSTEM_NAME} MATCHES "AIX") + set(LLVM_PLUGIN_EXT ${CMAKE_SHARED_MODULE_SUFFIX}) +else() + set(LLVM_PLUGIN_EXT ${CMAKE_SHARED_LIBRARY_SUFFIX}) +endif() if(APPLE) if(LLVM_ENABLE_LLD AND LLVM_ENABLE_LTO) diff --git a/llvm/include/llvm/Config/config.h.cmake b/llvm/include/llvm/Config/config.h.cmake --- a/llvm/include/llvm/Config/config.h.cmake +++ b/llvm/include/llvm/Config/config.h.cmake @@ -317,6 +317,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}" diff --git a/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt b/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt --- a/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt +++ b/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}) @@ -54,8 +54,8 @@ # 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}) + string(REPLACE "-Wl,-z,nodelete" "" CMAKE_MODULE_LINKER_FLAGS + ${CMAKE_MODULE_LINKER_FLAGS}) endif() dynlib_add_module(PipSqueak) diff --git a/llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp b/llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp --- a/llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp +++ b/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()); }