[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