Index: include/llvm/Demangle/Compiler.h =================================================================== --- include/llvm/Demangle/Compiler.h +++ include/llvm/Demangle/Compiler.h @@ -503,22 +503,4 @@ #define LLVM_ENABLE_EXCEPTIONS 1 #endif -/// \macro LLVM_PLUGIN_IMPORT -/// Used to import the well-known entry point for registering loaded pass -/// plugins -#ifdef WIN32 -#define LLVM_PLUGIN_IMPORT __declspec(dllimport) -#else -#define LLVM_PLUGIN_IMPORT #endif - -/// \macro LLVM_PLUGIN_EXPORT -/// Used to export the well-known entry point for registering loaded pass -/// plugins -#ifdef WIN32 -#define LLVM_PLUGIN_EXPORT __declspec(dllexport) -#else -#define LLVM_PLUGIN_EXPORT -#endif - -#endif Index: include/llvm/Passes/PassPlugin.h =================================================================== --- include/llvm/Passes/PassPlugin.h +++ include/llvm/Passes/PassPlugin.h @@ -102,13 +102,13 @@ /// /// ``` /// extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK -/// LLVM_PLUGIN_EXPORT llvmGetPassPluginInfo() { +/// llvmGetPassPluginInfo() { /// return { /// LLVM_PLUGIN_API_VERSION, "MyPlugin", "v0.1", [](PassBuilder &PB) { ... } /// }; /// } /// ``` -extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK LLVM_PLUGIN_IMPORT +extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo(); #endif /* LLVM_PASSES_PASSPLUGIN_H */ Index: unittests/Passes/CMakeLists.txt =================================================================== --- unittests/Passes/CMakeLists.txt +++ unittests/Passes/CMakeLists.txt @@ -1,8 +1,6 @@ # Needed by LLVM's CMake checks because this file defines multiple targets. -set(LLVM_OPTIONAL_SOURCES TestPlugin.cpp) +set(LLVM_OPTIONAL_SOURCES PluginsTest.cpp TestPlugin.cpp) -set(LLVM_LINK_COMPONENTS Support Passes Core) - # If plugins are disabled, this test will disable itself at runtime. Otherwise, # reconfiguring with plugins disabled will leave behind a stale executable. if (LLVM_ENABLE_PLUGINS) @@ -9,30 +7,23 @@ add_definitions(-DLLVM_ENABLE_PLUGINS) endif() +set(LLVM_LINK_COMPONENTS Support Passes Core) add_llvm_unittest(PluginsTests PluginsTest.cpp ) export_executable_symbols(PluginsTests) -add_library(TestPlugin MODULE +set(LLVM_LINK_COMPONENTS) +add_llvm_loadable_module(TestPlugin TestPlugin.cpp ) +# Put plugin next to the unit test executable. set_output_directory(TestPlugin BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} ) - -set_target_properties(TestPlugin - PROPERTIES PREFIX "" - SUFFIX ${LTDL_SHLIB_EXT} - ) set_target_properties(TestPlugin PROPERTIES FOLDER "Tests") -if (WIN32 OR CYGWIN OR LLVM_EXPORT_SYMBOLS_FOR_PLUGINS) - llvm_map_components_to_libnames(LLVM_DEPS ${LLVM_LINK_COMPONENTS}) - target_link_libraries(TestPlugin ${LLVM_DEPS}) -endif() - add_dependencies(TestPlugin intrinsics_gen) add_dependencies(PluginsTests TestPlugin) Index: unittests/Passes/TestPlugin.cpp =================================================================== --- unittests/Passes/TestPlugin.cpp +++ unittests/Passes/TestPlugin.cpp @@ -32,7 +32,7 @@ }); } -extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK LLVM_PLUGIN_EXPORT +extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo() { return {LLVM_PLUGIN_API_VERSION, TEST_PLUGIN_NAME, TEST_PLUGIN_VERSION, registerCallbacks};