[llvm] 4e1c996 - [llvm][test][CGPluginTest] Keep plugin in shared library directory
via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 19 04:04:36 PDT 2025
Author: Raul Tambre
Date: 2025-09-19T14:04:32+03:00
New Revision: 4e1c996674cc340f290b0a528e2038e76494d8d4
URL: https://github.com/llvm/llvm-project/commit/4e1c996674cc340f290b0a528e2038e76494d8d4
DIFF: https://github.com/llvm/llvm-project/commit/4e1c996674cc340f290b0a528e2038e76494d8d4.diff
LOG: [llvm][test][CGPluginTest] Keep plugin in shared library directory
Scoping to the root build directory instead of using the path directly is awkward and the only such
occurrence in the test suite. It's also prone to breakage for downstreams that change the library
path.
But it's not even necessary: during build we have the appropriate RPATHs set so we can just depend
on the dynamic loader to find it. This extra logic is probably just copy-paste from PluginsTest.cpp.
Additionally:
* Removed TargetParser as a dependency because it doesn't seem to actually be used.
* Moved `add_dependencies()` to `DEPENDS` to better match the rest of LLVM.
Added:
Modified:
llvm/test/Other/codegen-plugin-loading.ll
llvm/unittests/CodeGen/CGPluginTest/CMakeLists.txt
llvm/unittests/CodeGen/CGPluginTest/Plugin/CMakeLists.txt
llvm/unittests/CodeGen/CGPluginTest/PluginTest.cpp
Removed:
################################################################################
diff --git a/llvm/test/Other/codegen-plugin-loading.ll b/llvm/test/Other/codegen-plugin-loading.ll
index 652bbcdef36c3..a2a0814718e22 100644
--- a/llvm/test/Other/codegen-plugin-loading.ll
+++ b/llvm/test/Other/codegen-plugin-loading.ll
@@ -1,4 +1,4 @@
-; RUN: llc -load %llvmshlibdir/../unittests/CodeGen/CGPluginTest/CGTestPlugin%pluginext %s -o - | FileCheck %s
+; RUN: llc -load %llvm_obj_root/unittests/CodeGen/CGPluginTest/CGTestPlugin%pluginext %s -o - | FileCheck %s
; REQUIRES: native, system-linux, llvm-dylib
; CHECK: CodeGen Test Pass running on main
diff --git a/llvm/unittests/CodeGen/CGPluginTest/CMakeLists.txt b/llvm/unittests/CodeGen/CGPluginTest/CMakeLists.txt
index ca4f4851c8dc4..b78f36e3fc48f 100644
--- a/llvm/unittests/CodeGen/CGPluginTest/CMakeLists.txt
+++ b/llvm/unittests/CodeGen/CGPluginTest/CMakeLists.txt
@@ -4,7 +4,6 @@ set(LLVM_LINK_COMPONENTS
Core
MC
Target
- TargetParser
CodeGen
)
diff --git a/llvm/unittests/CodeGen/CGPluginTest/Plugin/CMakeLists.txt b/llvm/unittests/CodeGen/CGPluginTest/Plugin/CMakeLists.txt
index 04f7738507b0d..6cd2e15d2968c 100644
--- a/llvm/unittests/CodeGen/CGPluginTest/Plugin/CMakeLists.txt
+++ b/llvm/unittests/CodeGen/CGPluginTest/Plugin/CMakeLists.txt
@@ -3,15 +3,12 @@ if (NOT WIN32 AND NOT CYGWIN)
add_llvm_library(CGTestPlugin MODULE BUILDTREE_ONLY
CodeGenTestPass.cpp
Plugin.cpp
- )
- # Put PLUGIN next to the unit test executable.
- set_output_directory(CGTestPlugin
- BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../
- LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../
+ DEPENDS
+ intrinsics_gen
+ vt_gen
)
- set_target_properties(CGTestPlugin PROPERTIES FOLDER "Tests")
- add_dependencies(CGTestPlugin intrinsics_gen vt_gen)
+ set_target_properties(CGTestPlugin PROPERTIES FOLDER "Tests")
add_dependencies(CGPluginTest CGTestPlugin)
endif ()
diff --git a/llvm/unittests/CodeGen/CGPluginTest/PluginTest.cpp b/llvm/unittests/CodeGen/CGPluginTest/PluginTest.cpp
index bb8bea6d2e084..3e8be11c3433f 100644
--- a/llvm/unittests/CodeGen/CGPluginTest/PluginTest.cpp
+++ b/llvm/unittests/CodeGen/CGPluginTest/PluginTest.cpp
@@ -25,20 +25,6 @@
using namespace llvm;
-namespace {
-void anchor() {}
-
-std::string libPath(const std::string &Name) {
- const auto &Argvs = testing::internal::GetArgvs();
- const char *Argv0 = Argvs.size() > 0 ? Argvs[0].c_str() : "CGPluginTest";
- void *Ptr = (void *)(intptr_t)anchor;
- std::string Path = sys::fs::getMainExecutable(Argv0, Ptr);
- SmallString<256> Buf{sys::path::parent_path(Path)};
- sys::path::append(Buf, (Name + LLVM_PLUGIN_EXT).c_str());
- return std::string(Buf.str());
-}
-} // namespace
-
namespace llvm {
class CGPluginTests : public testing::Test {
protected:
@@ -56,8 +42,7 @@ TEST_F(CGPluginTests, LoadPlugin) {
GTEST_SKIP();
#endif
- auto PluginPath = libPath("CGTestPlugin");
- ASSERT_NE("", PluginPath);
+ auto PluginPath{std::string{"CGTestPlugin"} + LLVM_PLUGIN_EXT};
std::string Error;
auto Library = sys::DynamicLibrary::getLibrary(PluginPath.c_str(), &Error);
More information about the llvm-commits
mailing list