summaryrefslogtreecommitdiff
path: root/dev-util/bpftrace
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-08-31 22:12:06 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-08-31 22:12:06 +0100
commit4019251b91707412704a1c46582e25904f8dce54 (patch)
tree19bd46360357ea2d3cb93fb9eb735a4522e8f4e9 /dev-util/bpftrace
parent260722f712fe06c113e7b13ad2e924ed14aaf0c4 (diff)
gentoo auto-resync : 31:08:2023 - 22:12:06
Diffstat (limited to 'dev-util/bpftrace')
-rw-r--r--dev-util/bpftrace/Manifest3
-rw-r--r--dev-util/bpftrace/bpftrace-0.18.1.ebuild95
-rw-r--r--dev-util/bpftrace/files/bpftrace-0.18.1-install-libs.patch329
3 files changed, 427 insertions, 0 deletions
diff --git a/dev-util/bpftrace/Manifest b/dev-util/bpftrace/Manifest
index ef04aa4538fb..4f52720d3579 100644
--- a/dev-util/bpftrace/Manifest
+++ b/dev-util/bpftrace/Manifest
@@ -4,8 +4,11 @@ AUX bpftrace-0.17.0-install-libs.patch 13720 BLAKE2B dd9e6c2fbd7e9b9d968d392d058
AUX bpftrace-0.17.0-llvm-16.patch 852 BLAKE2B f429d6b0f80e96ed51813ac257fe6b3b7154c6a81d3480905593f4e8726e4f48cbb366500038119208eb6dee8dbd8a255ee67690be02e67db55a662fcb2732b1 SHA512 64ab918984b8451c01806f4cb9e076a9c5cbcaf8209c8547f94c590fa37f843a6aab52344a782ed083ff5ddeb08eb2650039643db515fbf5c0ee433096d97ed3
AUX bpftrace-0.17.0-use-std-optional.patch 1832 BLAKE2B fbe955e32135192b9e058f5b6fbea1b43608ac4eb7f8e30d157e8679350040b3919ac96a5d74b86ffddb5ce2e39d52bc1feece2a77b101b4b8eef6093e85ea49 SHA512 0325101a220996090e60b1681f97ac6587babf559b6cd814c8ebbcfe144ed9af9f9e3eace179e0a3f399e862392c8bbf6a344fa80006137717a8bdc0d3a2dfa5
AUX bpftrace-0.18.0-install-libs.patch 13680 BLAKE2B e86511999075c124647424f1589485e4efed63ffda30dc42a94cdd613ab408add4c08955127c2226d6128ab6885fa9f7af544e2dba897eaee611aa2f83ff282f SHA512 073a6bee013572aafd4d4ec0f45a5a8717dd9dbe5c1202884a9443d96104dcc013a3704a00b5c791643cf27a9812a57c1205bf8f96e2ec3140d9e53ac4dc0188
+AUX bpftrace-0.18.1-install-libs.patch 13716 BLAKE2B fd6081956b59f11ab2c0103ce67813b28478e54ab4c9d64f222709b2dcaa648872936cdf7980a45132fe0be605043e0e46475e3e1f2134823643f4ce9c52a020 SHA512 d69a0ddb4c3322e0350f5718bc3383a78b47424324dc70039548add5ce42170ca1c936cce272352415c76b343ff39d2b85592c0a5f6425ad369b53e0ec75886c
DIST bpftrace-0.17.1.gh.tar.gz 1035345 BLAKE2B 5dca6f3fc49458b4b2ed3068e3f99f1156067c430af36b53949e469a870101d2da6aba6c4d18bfaf173cc45eab18e3c316966a5e222a4b4cea98363a9afd90ce SHA512 57f00a0b209d745efe5ce39d0e8efb90a21b5c499b41385814378d828ef507dc2c6d9497f9d23dbb610fcff21f077cba9f7481e7a6a6465825065743289ef4ad
DIST bpftrace-0.18.0.gh.tar.gz 1046210 BLAKE2B 921fdd56cff48e7b8fc2b8164839393f2759218accaa58412fdf80b2df4474067c3c660da09e3ee808d258c1f19b0534fa81462cbea5ce3e814bdbeaa7dce5aa SHA512 b7da273d251f03a81b3a7097407352e7ad1d023972852bdb883176e97bab7046f9f327bd03bca51fe853ecaab5f60adc6994e75cb450a033a5b91118f719c36d
+DIST bpftrace-0.18.1.gh.tar.gz 1046307 BLAKE2B 67c5d586e803c16ae0338563953e86cb3fbf318410f5757824a56fdf049b4b4fe5cc2d2b7e0435c625728b0b25123bcc8d64eaa923c14334d9ec23075c8deeec SHA512 eb81554f4707f8c919930932ff6ec7602578c317c058238a16fe38d6db055da0d7b355733821203281767419aa8e1b2256bb7a921f50c987c85395ecfbda966a
EBUILD bpftrace-0.17.1.ebuild 1934 BLAKE2B 97786852a27191f1d21618033a15c0a0da7a043cb6abc71f15240f7de4720a77139f4ace5d5f049f987ba60b7fb59eb8719b2b837b7d1cce7e98c72793f8eda0 SHA512 89e195cd57c499738f5e27137f3f0c640c1230a739fe6d4ccd264587eecd4a9ef3ba88aab67644c30cfe3e3456ea8114d8fa1eae9628fe8498bd51c8c3516fa5
EBUILD bpftrace-0.18.0.ebuild 1835 BLAKE2B edcacb13d714cb04c2e749bbf3cbdd49f790a41f50a10aa4b12efd30875bbaacdc6b7f4a29aff8d9e9df482e6aae376abce85a6d651b4bbdb72004cd6f78e4f1 SHA512 dcf7c7a09aad14258d9868d221a5750309edebbb74c820631feb79bf8ab8cb2f0184010d8993675b0482cedf47fb08ed2fdcfb1613616ab74d38ab033b3d589e
+EBUILD bpftrace-0.18.1.ebuild 1835 BLAKE2B dbf82862ccc7a5a1add146ff76206ea83ee1c13da6642c3c25ccdee18509450764587dd4321833d0d906ce712de4ef1b8e7c20b9960af55628140ff6f5baa71f SHA512 067364451649bcc0175f552ab93f9df10a24fed403f317aeeb18b12b42f73f9fe0dc6f15a2f1fb14e8e2c30929637b6540a1c7b9b271e915f97ae72640e26de0
MISC metadata.xml 499 BLAKE2B ce7c46f4c5e49f2f779ff6584053f7fc78dffaeee432ac46a8881b3d49dc569e309af95aaf9d6e77a36ebc87be0cd2f86a5db7b733463e4252d3a242d914f293 SHA512 dfb827afd47feb8204ef40c940ebcc7d1b3217cdf0f24425e4ab32195309d727225e942d777871565e47a2c02244d053f46ed25165e9728c94e0683ff61bf4ce
diff --git a/dev-util/bpftrace/bpftrace-0.18.1.ebuild b/dev-util/bpftrace/bpftrace-0.18.1.ebuild
new file mode 100644
index 000000000000..46d001890f50
--- /dev/null
+++ b/dev-util/bpftrace/bpftrace-0.18.1.ebuild
@@ -0,0 +1,95 @@
+# Copyright 2019-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_MAX_SLOT=16
+
+inherit llvm linux-info cmake
+
+DESCRIPTION="High-level tracing language for eBPF"
+HOMEPAGE="https://github.com/iovisor/bpftrace"
+MY_PV="${PV//_/}"
+SRC_URI="https://github.com/iovisor/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${PN}-${MY_PV:-${PV}}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+# remove keywords until build works:
+# https://github.com/iovisor/bpftrace/issues/2349
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="fuzzing test"
+
+# lots of fixing needed
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-libs/libbpf-1.1:=
+ >=dev-util/bcc-0.25.0:=
+ >=sys-devel/llvm-10[llvm_targets_BPF(+)]
+ >=sys-devel/clang-10
+ <sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)):=
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=[llvm_targets_BPF(+)]
+ sys-libs/binutils-libs:=
+ virtual/libelf:=
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ dev-libs/cereal:=
+ test? ( dev-cpp/gtest )
+"
+BDEPEND="
+ app-arch/xz-utils
+ sys-devel/flex
+ sys-devel/bison
+ virtual/pkgconfig
+"
+
+QA_DT_NEEDED="
+ /usr/lib.*/libbpftraceresources.so
+ /usr/lib.*/libcxxdemangler_llvm.so
+"
+
+PATCHES=(
+ "${FILESDIR}/bpftrace-0.18.1-install-libs.patch"
+ "${FILESDIR}/bpftrace-0.15.0-dont-compress-man.patch"
+ "${FILESDIR}/bpftrace-0.11.4-old-kernels.patch"
+)
+
+pkg_pretend() {
+ local CONFIG_CHECK="
+ ~BPF
+ ~BPF_EVENTS
+ ~BPF_JIT
+ ~BPF_SYSCALL
+ ~FTRACE_SYSCALLS
+ ~HAVE_EBPF_JIT
+ "
+
+ check_extra_config
+}
+
+pkg_setup() {
+ llvm_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DSTATIC_LINKING:BOOL=OFF
+ # bug 809362, 754648
+ -DBUILD_TESTING:BOOL=$(usex test)
+ -DBUILD_FUZZ:BOOL=$(usex fuzzing)
+ -DENABLE_MAN:BOOL=OFF
+ -DUSE_SYSTEM_BPF_BCC:BOOL=ON
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ # bug 809362
+ dostrip -x /usr/bin/bpftrace
+ doman man/man8/*.?
+}
diff --git a/dev-util/bpftrace/files/bpftrace-0.18.1-install-libs.patch b/dev-util/bpftrace/files/bpftrace-0.18.1-install-libs.patch
new file mode 100644
index 000000000000..1a7cfe609ba1
--- /dev/null
+++ b/dev-util/bpftrace/files/bpftrace-0.18.1-install-libs.patch
@@ -0,0 +1,329 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4f026f04..235e60a4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -138,9 +138,10 @@ endif()
+ bison_target(bison_parser src/parser.yy ${CMAKE_BINARY_DIR}/parser.tab.cc COMPILE_FLAGS ${BISON_FLAGS} VERBOSE)
+ flex_target(flex_lexer src/lexer.l ${CMAKE_BINARY_DIR}/lex.yy.cc)
+ add_flex_bison_dependency(flex_lexer bison_parser)
+-add_library(parser ${BISON_bison_parser_OUTPUTS} ${FLEX_flex_lexer_OUTPUTS})
+-target_compile_options(parser PRIVATE "-w")
+-target_include_directories(parser PUBLIC src src/ast ${CMAKE_BINARY_DIR})
++add_library(bpftraceparser ${BISON_bison_parser_OUTPUTS} ${FLEX_flex_lexer_OUTPUTS})
++target_compile_options(bpftraceparser PRIVATE "-w")
++target_include_directories(bpftraceparser PUBLIC src src/ast ${CMAKE_BINARY_DIR})
++install(TARGETS bpftraceparser LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+ include(CheckSymbolExists)
+ set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
+diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt
+index a95c60a1..f5c4d676 100644
+--- a/resources/CMakeLists.txt
++++ b/resources/CMakeLists.txt
+@@ -1,6 +1,7 @@
+-add_library(resources headers.cpp)
++add_library(bpftraceresources headers.cpp)
+
+-target_include_directories(resources PUBLIC ../src)
++target_include_directories(bpftraceresources PUBLIC ../src)
++install(TARGETS bpftraceresources LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+ function(embed_headers output)
+ file(WRITE ${output} "#include \"headers.h\"\n\nnamespace bpftrace {\n")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 0a7a6a09..00020fc9 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -13,7 +13,7 @@ else()
+ endif ()
+ endif()
+
+-add_library(runtime
++add_library(bpftraceruntime
+ attached_probe.cpp
+ bpffeature.cpp
+ bpftrace.cpp
+@@ -44,7 +44,7 @@ add_library(runtime
+ ${BFD_DISASM_SRC}
+ )
+ # Ensure flex+bison outputs are built first
+-add_dependencies(runtime parser)
++add_dependencies(bpftraceruntime bpftraceparser)
+
+ add_library(libbpftrace
+ build_info.cpp
+@@ -61,6 +61,7 @@ add_executable(${BPFTRACE}
+ )
+
+ install(TARGETS ${BPFTRACE} DESTINATION ${CMAKE_INSTALL_BINDIR})
++install(TARGETS libbpftrace LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ target_link_libraries(${BPFTRACE} libbpftrace)
+
+ if (BUILD_FUZZ)
+@@ -89,7 +90,7 @@ endif()
+ set(KERNEL_HEADERS_DIR "" CACHE PATH "Hard-code kernel headers directory")
+ if (KERNEL_HEADERS_DIR)
+ MESSAGE(STATUS "Using KERNEL_HEADERS_DIR=${KERNEL_HEADERS_DIR}")
+- target_compile_definitions(runtime PUBLIC KERNEL_HEADERS_DIR="${KERNEL_HEADERS_DIR}")
++ target_compile_definitions(bpftraceruntime PUBLIC KERNEL_HEADERS_DIR="${KERNEL_HEADERS_DIR}")
+ endif()
+
+ execute_process(
+@@ -109,10 +110,11 @@ endif()
+
+ add_definitions("-DBPFTRACE_VERSION=\"${BPFTRACE_VERSION}\"")
+
+-target_include_directories(runtime PRIVATE ${CMAKE_BINARY_DIR})
+-target_include_directories(runtime PRIVATE ${CMAKE_SOURCE_DIR}/src)
+-target_include_directories(runtime PRIVATE ${CMAKE_SOURCE_DIR}/src/ast)
+-target_compile_definitions(runtime PRIVATE ${BPFTRACE_FLAGS})
++target_include_directories(bpftraceruntime PRIVATE ${CMAKE_BINARY_DIR})
++target_include_directories(bpftraceruntime PRIVATE ${CMAKE_SOURCE_DIR}/src)
++target_include_directories(bpftraceruntime PRIVATE ${CMAKE_SOURCE_DIR}/src/ast)
++target_compile_definitions(bpftraceruntime PRIVATE ${BPFTRACE_FLAGS})
++install(TARGETS bpftraceruntime LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ target_compile_definitions(libbpftrace PRIVATE ${BPFTRACE_FLAGS})
+
+ # Linking
+@@ -125,8 +127,8 @@ if(STATIC_LINKING)
+ endif(STATIC_LINKING)
+
+
+-target_link_libraries(runtime ${LIBBPF_LIBRARIES} ${ZLIB_LIBRARIES})
+-target_link_libraries(libbpftrace parser resources runtime aot ast arch cxxdemangler_llvm)
++target_link_libraries(bpftraceruntime ${LIBBPF_LIBRARIES} ${ZLIB_LIBRARIES})
++target_link_libraries(libbpftrace bpftraceparser bpftraceresources bpftraceruntime aot bpftraceast bpftracearch cxxdemangler_llvm)
+
+ if(LIBPCAP_FOUND)
+ target_link_libraries(libbpftrace ${LIBPCAP_LIBRARIES})
+@@ -136,37 +138,38 @@ if(HAVE_BFD_DISASM)
+ if(STATIC_LINKING)
+ add_library(LIBBFD STATIC IMPORTED)
+ set_property(TARGET LIBBFD PROPERTY IMPORTED_LOCATION ${LIBBFD_LIBRARIES})
+- target_link_libraries(runtime LIBBFD)
++ target_link_libraries(bpftraceruntime LIBBFD)
+ add_library(LIBOPCODES STATIC IMPORTED)
+ set_property(TARGET LIBOPCODES PROPERTY IMPORTED_LOCATION ${LIBOPCODES_LIBRARIES})
+- target_link_libraries(runtime LIBOPCODES)
++ target_link_libraries(bpftraceruntime LIBOPCODES)
+ add_library(LIBIBERTY STATIC IMPORTED)
+ set_property(TARGET LIBIBERTY PROPERTY IMPORTED_LOCATION ${LIBIBERTY_LIBRARIES})
+- target_link_libraries(runtime LIBIBERTY)
++ target_link_libraries(bpftraceruntime LIBIBERTY)
+ else()
+- target_link_libraries(runtime ${LIBBFD_LIBRARIES})
+- target_link_libraries(runtime ${LIBOPCODES_LIBRARIES})
++ target_link_libraries(bpftraceruntime ${LIBBFD_LIBRARIES})
++ target_link_libraries(bpftraceruntime ${LIBOPCODES_LIBRARIES})
+ endif(STATIC_LINKING)
+ endif(HAVE_BFD_DISASM)
+
+ # Link to bcc libraries (without LLVM) if possible
+ if(LIBBCC_BPF_CONTAINS_RUNTIME)
+- target_link_libraries(runtime ${LIBBCC_BPF_LIBRARIES})
++ target_link_libraries(bpftraceruntime ${LIBBCC_BPF_LIBRARIES})
+ else()
+- target_link_libraries(runtime ${LIBBCC_LIBRARIES})
++ target_link_libraries(bpftraceruntime ${LIBBCC_LIBRARIES})
+ endif()
+
+ if(STATIC_BPF_BCC)
+ # These are not part of the static libbcc so have to be added separate
+- target_link_libraries(runtime ${LIBBCC_BPF_LIBRARIES})
+- target_link_libraries(runtime ${LIBBPF_LIBRARIES})
+- target_link_libraries(runtime ${LIBBCC_LOADER_LIBRARY_STATIC})
++ target_link_libraries(bpftraceruntime ${LIBBCC_BPF_LIBRARIES})
++ target_link_libraries(bpftraceruntime ${LIBBPF_LIBRARIES})
++ target_link_libraries(bpftraceruntime ${LIBBCC_LOADER_LIBRARY_STATIC})
+
+ add_library(LIBELF STATIC IMPORTED)
+ set_property(TARGET LIBELF PROPERTY IMPORTED_LOCATION ${LIBELF_LIBRARIES})
+- target_link_libraries(runtime LIBELF)
++ set_property(TARGET LIBELF PROPERTY IMPORTED_LOCATION ${LIBBPF_LIBRARIES})
++ target_link_libraries(bpftraceruntime LIBELF)
+ else()
+- target_link_libraries(runtime ${LIBELF_LIBRARIES})
++ target_link_libraries(bpftraceruntime ${LIBELF_LIBRARIES})
+ endif(STATIC_BPF_BCC)
+
+ if (LIBDW_FOUND)
+@@ -195,16 +198,16 @@ if (LIBDW_FOUND)
+
+ target_link_libraries(LIBDW INTERFACE ${LIBDW_LIBS})
+
+- target_link_libraries(runtime LIBDW)
++ target_link_libraries(bpftraceruntime LIBDW)
+ else()
+- target_link_libraries(runtime ${LIBDW_LIBRARIES})
++ target_link_libraries(bpftraceruntime ${LIBDW_LIBRARIES})
+ endif()
+ endif()
+
+ # Support for std::filesystem
+ # GCC version <9 and Clang (all versions) require -lstdc++fs
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "9")
+- target_link_libraries(runtime "stdc++fs")
++ target_link_libraries(bpftraceruntime "stdc++fs")
+ target_link_libraries(libbpftrace "stdc++fs")
+ endif()
+
+@@ -226,16 +229,16 @@ endif()
+ if (STATIC_LINKING)
+ if(ANDROID)
+ target_link_libraries(libbpftrace "-Wl,-Bdynamic" "-ldl" "-lm" "-lz")
+- target_link_libraries(runtime "-Wl,-Bdynamic" "-ldl" "-lm" "-lz")
++ target_link_libraries(bpftraceruntime "-Wl,-Bdynamic" "-ldl" "-lm" "-lz")
+ else()
+ target_link_libraries(libbpftrace "-Wl,-Bdynamic" "-lrt" "-lpthread" "-ldl" "-lm")
+ target_link_libraries(libbpftrace "-Wl,-Bstatic" "-lz")
+- target_link_libraries(runtime "-Wl,-Bdynamic" "-lrt" "-lpthread" "-ldl" "-lm")
+- target_link_libraries(runtime "-Wl,-Bstatic" "-lz")
++ target_link_libraries(bpftraceruntime "-Wl,-Bdynamic" "-lrt" "-lpthread" "-ldl" "-lm")
++ target_link_libraries(bpftraceruntime "-Wl,-Bstatic" "-lz")
+ endif()
+ elseif(STATIC_BPF_BCC)
+ # partial static build, libbpf needs zlib, bcc needs liblzma
+- target_link_libraries(runtime "-lz" "-llzma")
++ target_link_libraries(bpftraceruntime "-lz" "-llzma")
+ endif()
+
+ unset(MAIN_SRC)
+diff --git a/src/aot/CMakeLists.txt b/src/aot/CMakeLists.txt
+index c776d204..41e84317 100644
+--- a/src/aot/CMakeLists.txt
++++ b/src/aot/CMakeLists.txt
+@@ -1,8 +1,9 @@
+ add_library(aot aot.cpp)
+-add_dependencies(aot parser)
++add_dependencies(aot bpftraceparser)
+ target_include_directories(aot PUBLIC ${CMAKE_SOURCE_DIR}/src)
+ target_include_directories(aot PUBLIC ${CMAKE_BINARY_DIR})
+ target_compile_definitions(aot PRIVATE ${BPFTRACE_FLAGS})
++install(TARGETS aot LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+ # Only build aotrt if supported bcc is used
+ # (https://github.com/iovisor/bcc/commit/719191867a25ce07dc96f7faf9b8ccedadc7ec44)
+@@ -11,7 +12,7 @@ if(NOT LIBBCC_BPF_CONTAINS_RUNTIME)
+ endif()
+
+ add_executable(bpftrace-aotrt aot_main.cpp)
+-target_link_libraries(bpftrace-aotrt aot runtime arch ast_defs cxxdemangler_stdlib)
++target_link_libraries(bpftrace-aotrt aot bpftraceruntime bpftracearch ast_defs cxxdemangler_stdlib)
+ install(TARGETS bpftrace-aotrt DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ if(LIBPCAP_FOUND)
+diff --git a/src/arch/CMakeLists.txt b/src/arch/CMakeLists.txt
+index d01d1ea3..82bfeccc 100644
+--- a/src/arch/CMakeLists.txt
++++ b/src/arch/CMakeLists.txt
+@@ -1,21 +1,23 @@
+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
+- add_library(arch aarch64.cpp)
++ add_library(bpftracearch aarch64.cpp)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
+- add_library(arch arm.cpp)
++ add_library(bpftracearch arm.cpp)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64" OR
+ CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le")
+- add_library(arch ppc64.cpp)
++ add_library(bpftracearch ppc64.cpp)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "s390" OR
+ CMAKE_SYSTEM_PROCESSOR STREQUAL "s390x")
+- add_library(arch s390.cpp)
++ add_library(bpftracearch s390.cpp)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+- add_library(arch x86_64.cpp)
++ add_library(bpftracearch x86_64.cpp)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "mips64")
+- add_library(arch mips64.cpp)
++ add_library(bpftracearch mips64.cpp)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv64")
+- add_library(arch riscv64.cpp)
++ add_library(bpftracearch riscv64.cpp)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "loongarch64")
+- add_library(arch loongarch64.cpp)
++ add_library(bpftracearch loongarch64.cpp)
+ else()
+ message(FATAL_ERROR "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}")
+ endif()
++
++install(TARGETS bpftracearch LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+diff --git a/src/ast/CMakeLists.txt b/src/ast/CMakeLists.txt
+index c390ea6a..37019bd9 100644
+--- a/src/ast/CMakeLists.txt
++++ b/src/ast/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ add_library(ast_defs ast.cpp)
+
+-add_library(ast
++add_library(bpftraceast
+ async_event_types.cpp
+ attachpoint_parser.cpp
+ elf_parser.cpp
+@@ -21,11 +21,13 @@ add_library(ast
+ target_include_directories(ast_defs PUBLIC ${CMAKE_SOURCE_DIR}/src)
+ target_include_directories(ast_defs PUBLIC ${CMAKE_SOURCE_DIR}/src/ast)
+ target_include_directories(ast_defs PUBLIC ${CMAKE_BINARY_DIR})
+-target_link_libraries(ast ast_defs arch parser)
++target_link_libraries(bpftraceast ast_defs bpftracearch bpftraceparser)
++install(TARGETS ast_defs LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(TARGETS bpftraceast LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+-add_dependencies(ast_defs parser)
++add_dependencies(ast_defs bpftraceparser)
+
+-target_compile_definitions(ast PRIVATE ${BPFTRACE_FLAGS})
++target_compile_definitions(bpftraceast PRIVATE ${BPFTRACE_FLAGS})
+
+ if (STATIC_LINKING)
+ set(clang_libs
+@@ -58,20 +60,20 @@ if (STATIC_LINKING)
+
+
+ if(EMBED_USE_LLVM)
+- target_link_libraries(ast "-Wl,--start-group" ${CLANG_EMBEDDED_CMAKE_TARGETS} ${LLVM_EMBEDDED_CMAKE_TARGETS} "-Wl,--end-group")
++ target_link_libraries(bpftraceast "-Wl,--start-group" ${CLANG_EMBEDDED_CMAKE_TARGETS} ${LLVM_EMBEDDED_CMAKE_TARGETS} "-Wl,--end-group")
+ else()
+ llvm_map_components_to_libnames(llvm_libs ${llvm_lib_names})
+
+ if(TARGET libclang_static)
+- target_link_libraries(ast libclang_static)
++ target_link_libraries(bpftraceast libclang_static)
+ else()
+ # old LLVM versions don't export libclang_static in ClangTargets.cmake; fall back to
+ # libclang.a in that case
+- target_link_libraries(ast libclang.a)
++ target_link_libraries(abpftracest libclang.a)
+ endif()
+
+- target_link_libraries(ast ${clang_libs})
+- target_link_libraries(ast ${llvm_libs})
++ target_link_libraries(abpftracest ${clang_libs})
++ target_link_libraries(abpftracest ${llvm_libs})
+ endif()
+
+ if(STATIC_LIBC)
+@@ -81,11 +83,11 @@ if (STATIC_LINKING)
+ else()
+ find_library(found_LLVM LLVM HINTS ${LLVM_LIBRARY_DIRS})
+ if(found_LLVM)
+- target_link_libraries(ast LLVM)
++ target_link_libraries(bpftraceast LLVM)
+ else()
+ llvm_map_components_to_libnames(_llvm_libs bpfcodegen ipo irreader mcjit orcjit ${LLVM_TARGETS_TO_BUILD})
+ llvm_expand_dependencies(llvm_libs ${_llvm_libs})
+- target_link_libraries(ast ${llvm_libs})
++ target_link_libraries(bpftraceast ${llvm_libs})
+ endif()
+- target_link_libraries(ast libclang)
++ target_link_libraries(bpftraceast libclang)
+ endif()
+diff --git a/src/cxxdemangler/CMakeLists.txt b/src/cxxdemangler/CMakeLists.txt
+index 04cfcdd9..5677aa4b 100644
+--- a/src/cxxdemangler/CMakeLists.txt
++++ b/src/cxxdemangler/CMakeLists.txt
+@@ -1,2 +1,4 @@
+ add_library(cxxdemangler_stdlib cxxdemangler_stdlib.cpp)
+ add_library(cxxdemangler_llvm cxxdemangler_llvm.cpp)
++install(TARGETS cxxdemangler_stdlib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(TARGETS cxxdemangler_llvm LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})