[llvm] e141a4b - [gn] port 82290a03b3cc a bit (CASPluginTest) (#228639)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 2 19:52:34 PDT 2026
Author: Nico Weber
Date: 2026-10-03T02:52:20Z
New Revision: e141a4b162e965837859040c5da6b9f724d8d382
URL: https://github.com/llvm/llvm-project/commit/e141a4b162e965837859040c5da6b9f724d8d382
DIFF: https://github.com/llvm/llvm-project/commit/e141a4b162e965837859040c5da6b9f724d8d382.diff
LOG: [gn] port 82290a03b3cc a bit (CASPluginTest) (#228639)
Also disable llvm_enable_ondisk_cas for a bit until I can figure out how
to fix
dlopen(..../out/gn/lib/CASPluginTest.dylib, 0x0009):
symbol not found in flat namespace '__ZN4llvm4SHA15finalEv'
when running llvm/test/tools/llvm-cas lit tests. (The unit test passes.)
Added:
llvm/utils/gn/secondary/llvm/unittests/CAS/CASPluginTest/BUILD.gn
Modified:
llvm/utils/gn/secondary/llvm/include/llvm/Config/config.gni
llvm/utils/gn/secondary/llvm/test/BUILD.gn
llvm/utils/gn/secondary/llvm/tools/llvm-cas/BUILD.gn
llvm/utils/gn/secondary/llvm/unittests/CAS/BUILD.gn
Removed:
llvm/utils/gn/secondary/llvm/tools/libCASPluginTest/BUILD.gn
################################################################################
diff --git a/llvm/utils/gn/secondary/llvm/include/llvm/Config/config.gni b/llvm/utils/gn/secondary/llvm/include/llvm/Config/config.gni
index ac2bfaa5e9827c..70e68f2d44f090 100644
--- a/llvm/utils/gn/secondary/llvm/include/llvm/Config/config.gni
+++ b/llvm/utils/gn/secondary/llvm/include/llvm/Config/config.gni
@@ -3,5 +3,5 @@ declare_args() {
llvm_enable_reverse_iteration = false
# Enable OnDiskCAS.
- llvm_enable_ondisk_cas = current_cpu == "x64" || current_cpu == "arm64"
+ llvm_enable_ondisk_cas = false
}
diff --git a/llvm/utils/gn/secondary/llvm/test/BUILD.gn b/llvm/utils/gn/secondary/llvm/test/BUILD.gn
index 2c3b8eb27c1fc6..414ce1264cf326 100644
--- a/llvm/utils/gn/secondary/llvm/test/BUILD.gn
+++ b/llvm/utils/gn/secondary/llvm/test/BUILD.gn
@@ -204,26 +204,9 @@ write_lit_config("lit_site_cfg") {
}
if (llvm_enable_ondisk_cas) {
- # libCASPluginTest is placed next to the CASTests executable, see
- # //llvm/tools/libCASPluginTest/BUILD.gn.
- cas_plugin_dir = get_label_info("//llvm/unittests/CAS", "target_out_dir")
- if (host_os == "win") {
- cas_plugin_name = "CASPluginTest.dll"
- } else if (host_os == "mac") {
- cas_plugin_name = "libCASPluginTest.dylib"
- } else {
- cas_plugin_name = "libCASPluginTest.so"
- }
- extra_values += [
- "LLVM_ENABLE_ONDISK_CAS=1",
- "LLVM_CAS_PLUGIN_TEST_PATH=" +
- rebase_path("$cas_plugin_dir/$cas_plugin_name"),
- ]
+ extra_values += [ "LLVM_ENABLE_ONDISK_CAS=1" ]
} else {
- extra_values += [
- "LLVM_ENABLE_ONDISK_CAS=0", # Must be 0.
- "LLVM_CAS_PLUGIN_TEST_PATH=",
- ]
+ extra_values += [ "LLVM_ENABLE_ONDISK_CAS=0" ] # Must be 0.
}
if (llvm_enable_expensive_checks) {
@@ -382,10 +365,6 @@ group("test") {
deps += [ "//llvm/tools/llvm-calc-occupancy" ]
}
- if (llvm_enable_ondisk_cas) {
- deps += [ "//llvm/tools/libCASPluginTest:CASPluginTest" ]
- }
-
# FIXME: llvm_build_examples
testonly = true
}
diff --git a/llvm/utils/gn/secondary/llvm/tools/libCASPluginTest/BUILD.gn b/llvm/utils/gn/secondary/llvm/tools/libCASPluginTest/BUILD.gn
deleted file mode 100644
index 6ea1776419743c..00000000000000
--- a/llvm/utils/gn/secondary/llvm/tools/libCASPluginTest/BUILD.gn
+++ /dev/null
@@ -1,21 +0,0 @@
-import("//llvm/utils/gn/build/symbol_exports.gni")
-
-symbol_exports("exports") {
- exports_file = "libCASPluginTest.exports"
-}
-
-shared_library("CASPluginTest") {
- # Put plugin next to the unit test executable.
- output_dir = get_label_info("//llvm/unittests/CAS", "target_out_dir")
- output_name = "CASPluginTest"
- deps = [
- ":exports",
- "//llvm/lib/CAS",
- "//llvm/lib/Support",
- ]
- sources = [ "libCASPluginTest.cpp" ]
-
- if (current_os != "mac" && current_os != "win") {
- cflags = [ "-fPIC" ]
- }
-}
diff --git a/llvm/utils/gn/secondary/llvm/tools/llvm-cas/BUILD.gn b/llvm/utils/gn/secondary/llvm/tools/llvm-cas/BUILD.gn
index d4cd26a79c3b3c..83266531f56751 100644
--- a/llvm/utils/gn/secondary/llvm/tools/llvm-cas/BUILD.gn
+++ b/llvm/utils/gn/secondary/llvm/tools/llvm-cas/BUILD.gn
@@ -13,4 +13,12 @@ executable("llvm-cas") {
"//llvm/lib/Support",
]
sources = [ "llvm-cas.cpp" ]
+
+ # Support plugins.
+ # FIXME: Disable dead stripping once other binaries are dead-stripped.
+ if (host_os != "mac" && host_os != "win") {
+ # Corresponds to export_executable_symbols() in cmake.
+ ldflags = [ "-rdynamic" ]
+ }
+ configs -= [ "//llvm/utils/gn/build:no_exported_symbols" ]
}
diff --git a/llvm/utils/gn/secondary/llvm/unittests/CAS/BUILD.gn b/llvm/utils/gn/secondary/llvm/unittests/CAS/BUILD.gn
index c4389aa98e3b72..156f1250d621d6 100644
--- a/llvm/utils/gn/secondary/llvm/unittests/CAS/BUILD.gn
+++ b/llvm/utils/gn/secondary/llvm/unittests/CAS/BUILD.gn
@@ -28,6 +28,25 @@ unittest("CASTests") {
"ProgramTest.cpp",
"UnifiedOnDiskCacheTest.cpp",
]
- data_deps = [ "//llvm/tools/libCASPluginTest:CASPluginTest" ]
+ data_deps = [ "CASPluginTest" ]
+
+ if (current_os == "mac") {
+ shlib_ext = ".dylib"
+ } else if (current_os == "win") {
+ shlib_ext = ".dll"
+ } else {
+ shlib_ext = ".so"
+ }
+ # FIXME: Make this not an absolute path.
+ plugin_path = rebase_path("$root_build_dir/lib") + "/CASPluginTest"
+ defines = [ "CAS_PLUGIN_PATH=\"$plugin_path$shlib_ext\"" ]
+
+ # Support plugins.
+ # FIXME: Disable dead stripping once other binaries are dead-stripped.
+ if (host_os != "mac" && host_os != "win") {
+ # Corresponds to export_executable_symbols() in cmake.
+ ldflags = [ "-rdynamic" ]
+ }
+ configs -= [ "//llvm/utils/gn/build:no_exported_symbols" ]
}
}
diff --git a/llvm/utils/gn/secondary/llvm/unittests/CAS/CASPluginTest/BUILD.gn b/llvm/utils/gn/secondary/llvm/unittests/CAS/CASPluginTest/BUILD.gn
new file mode 100644
index 00000000000000..5e513b28e38bdf
--- /dev/null
+++ b/llvm/utils/gn/secondary/llvm/unittests/CAS/CASPluginTest/BUILD.gn
@@ -0,0 +1,22 @@
+import("//llvm/utils/gn/build/symbol_exports.gni")
+
+symbol_exports("exports") {
+ exports_file = "CASPluginTest.exports"
+}
+
+loadable_module("CASPluginTest") {
+ sources = [ "CASPluginTest.cpp" ]
+
+ deps = [
+ ":exports",
+ "//llvm/lib/CAS",
+ "//llvm/lib/Support",
+ ]
+
+ if (host_os != "mac" && host_os != "win") {
+ # The GN build currently doesn't globally pass -fPIC, but that's
+ # needed for building .so files on ELF. Just pass it manually
+ # for loadable_modules for now.
+ cflags = [ "-fPIC" ]
+ }
+}
More information about the llvm-commits
mailing list