[llvm] [bazel] Restrict libpfm to linux (PR #86565)

Keith Smiley via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 25 12:35:50 PDT 2024


https://github.com/keith created https://github.com/llvm/llvm-project/pull/86565

This target doesn't build on macOS (even with the upstream make based build system) so this encodes that in the build without requiring non-linux users to disable it manually with the starlark flag. The flag is still respected for linux users.

>From 8a9a9a972992e2d2838cf220b03bd92d3db37175 Mon Sep 17 00:00:00 2001
From: Keith Smiley <keithbsmiley at gmail.com>
Date: Mon, 25 Mar 2024 12:33:44 -0700
Subject: [PATCH] [bazel] Restrict libpfm to linux

This target doesn't build on macOS (even with the upstream make based
build system) so this encodes that in the build without requiring
non-linux users to disable it manually with the starlark flag. The flag
is still respected for linux users.
---
 utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |  6 ++++--
 utils/bazel/third_party_build/pfm.BUILD           | 12 ++++++++++--
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
index 65173f986585c4..f7d1f6aa2283f7 100644
--- a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
@@ -3153,8 +3153,10 @@ cc_library(
         ":Support",
         ":Target",
         ":config",
-        ":maybe_pfm",
-    ],
+    ] + select({
+        "@platforms//os:linux": [":maybe_pfm"],
+        "//conditions:default": [],
+    }),
 )
 
 ################################################################################
diff --git a/utils/bazel/third_party_build/pfm.BUILD b/utils/bazel/third_party_build/pfm.BUILD
index fe908d4744dae6..07a1dc48b85749 100644
--- a/utils/bazel/third_party_build/pfm.BUILD
+++ b/utils/bazel/third_party_build/pfm.BUILD
@@ -14,8 +14,12 @@ make_variant(
     copts = ["-w"],
     lib_name = "libpfm",
     lib_source = ":sources",
+    target_compatible_with = select({
+        "@platforms//os:linux": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
     toolchain = "@rules_foreign_cc//toolchains:preinstalled_autoconf_toolchain",
-    visibility = ["//visibility:public"],
+    visibility = ["//visibility:private"],
 )
 
 alias(
@@ -27,5 +31,9 @@ alias(
 cc_library(
     name = "pfm_system",
     linkopts = ["-lpfm"],
-    visibility = ["//visibility:public"],
+    target_compatible_with = select({
+        "@platforms//os:linux": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    visibility = ["//visibility:private"],
 )



More information about the llvm-commits mailing list