| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- From 04fb28b5673d29a8c38519845c87f4c00c76e9cf Mon Sep 17 00:00:00 2001
- From: Chandler Carruth <chandlerc@gmail.com>
- Date: Sat, 13 Jan 2024 02:15:19 -0800
- Subject: [PATCH] Introduce a simple native Bazel build.
- ---
- BUILD.bazel | 84 +++++++++++++++++++++++++++++++++++++++++++++++++
- MODULE.bazel | 10 ++++++
- WORKSPACE.bazel | 5 +++
- 3 files changed, 99 insertions(+)
- create mode 100644 BUILD.bazel
- create mode 100644 MODULE.bazel
- create mode 100644 WORKSPACE.bazel
- diff --git a/BUILD.bazel b/BUILD.bazel
- new file mode 100644
- index 0000000..427c854
- --- /dev/null
- +++ b/BUILD.bazel
- @@ -0,0 +1,84 @@
- +# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- +# Exceptions. See /LICENSE for license information.
- +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- +
- +load("@rules_cc//cc:defs.bzl", "cc_library")
- +
- +package(default_visibility = ["//visibility:public"])
- +
- +aarch64_srcs = [
- + "lib/pfmlib_arm_perf_event.c",
- + "lib/pfmlib_arm.c",
- + "lib/pfmlib_arm_armv8.c",
- + "lib/pfmlib_arm_armv9.c",
- + "lib/pfmlib_tx2_unc_perf_event.c",
- + "lib/pfmlib_kunpeng_unc_perf_event.c",
- + "lib/pfmlib_arm_priv.h",
- + "lib/events/arm_cortex_a57_events.h",
- + "lib/events/arm_cortex_a53_events.h",
- + "lib/events/arm_xgene_events.h",
- + "lib/events/arm_cavium_tx2_events.h",
- + "lib/events/arm_marvell_tx2_unc_events.h",
- + "lib/events/arm_fujitsu_a64fx_events.h",
- + "lib/events/arm_neoverse_n1_events.h",
- + "lib/events/arm_neoverse_n2_events.h",
- + "lib/events/arm_neoverse_v1_events.h",
- + "lib/events/arm_neoverse_v2_events.h",
- + "lib/events/arm_hisilicon_kunpeng_events.h",
- + "lib/events/arm_hisilicon_kunpeng_unc_events.h",
- +]
- +
- +x86_64_srcs = [
- + "lib/pfmlib_amd64_priv.h",
- +] + glob(
- + [
- + "lib/pfmlib_amd64*.c",
- + "lib/pfmlib_intel*.c",
- + "lib/pfmlib_intel*_priv.h",
- + "lib/events/amd64_events_*.h",
- + "lib/events/intel_*_events.h",
- + ],
- + exclude = [
- + # 32-bit CPUs
- + "lib/pfmlib_intel_coreduo.c",
- + "lib/pfmlib_intel_p6.c",
- + ],
- +)
- +
- +cc_library(
- + name = "libpfm",
- + srcs = [
- + "lib/events/perf_events.h",
- + "lib/pfmlib_common.c",
- + "lib/pfmlib_perf_event.c",
- + "lib/pfmlib_perf_event_pmu.c",
- + "lib/pfmlib_perf_event_priv.h",
- + "lib/pfmlib_perf_event_raw.c",
- + "lib/pfmlib_priv.h",
- + ] + select({
- + "@platforms//cpu:aarch64": aarch64_srcs,
- + "@platforms//cpu:x86_64": x86_64_srcs,
- + }),
- + hdrs = glob(["include/perfmon/*.h"]),
- + copts = [
- + "-DHAS_OPENAT",
- + "-D_REENTRANT",
- + "-I.",
- + "-fvisibility=hidden",
- + ] + select({
- + "@platforms//cpu:x86_64": [
- + "-DCONFIG_PFMLIB_ARCH_X86",
- + "-DCONFIG_PFMLIB_ARCH_X86_64",
- + ],
- + "//conditions:default": [],
- + }),
- + strip_include_prefix = "include",
- + target_compatible_with = select({
- + # This library only makes sense on Linux, and we only include support
- + # for building on AArch64 and x86-64. Other CPUs can be added to this
- + # list if build support is added for them.
- + "@platforms//cpu:aarch64": ["@platforms//os:linux"],
- + "@platforms//cpu:x86_64": ["@platforms//os:linux"],
- + "//conditions:default": ["@platforms//:incompatible"],
- + }),
- +)
- diff --git a/MODULE.bazel b/MODULE.bazel
- new file mode 100644
- index 0000000..c901cbe
- --- /dev/null
- +++ b/MODULE.bazel
- @@ -0,0 +1,10 @@
- +# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- +# Exceptions. See /LICENSE for license information.
- +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- +
- +"""Bazel modules."""
- +
- +module(name = "libpfm")
- +
- +bazel_dep(name = "rules_cc", version = "0.0.9")
- +bazel_dep(name = "platforms", version = "0.0.8")
- diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel
- new file mode 100644
- index 0000000..9aad57c
- --- /dev/null
- +++ b/WORKSPACE.bazel
- @@ -0,0 +1,5 @@
- +# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- +# Exceptions. See /LICENSE for license information.
- +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- +
- +# See `MODULE.bazel` for details.
- --
- 2.43.0
|