You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
339 lines
14 KiB
339 lines
14 KiB
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index a1360a71..24d85abc 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 c12f9567..0bfec98c 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 401ddc0a..05f0f637 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,49 +138,49 @@ if(HAVE_BFD_DISASM)
|
|
if(STATIC_LINKING OR LIBBFD_STATIC)
|
|
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)
|
|
|
|
add_library(LIBZSTD STATIC IMPORTED)
|
|
if (LIBZSTD_FOUND)
|
|
set_property(TARGET LIBZSTD PROPERTY IMPORTED_LOCATION ${LIBZSTD_LIBRARIES})
|
|
- target_link_libraries(runtime LIBZSTD)
|
|
+ target_link_libraries(bpftraceruntime LIBZSTD)
|
|
endif(LIBZSTD_FOUND)
|
|
|
|
add_library(LIBSFRAME STATIC IMPORTED)
|
|
if (LIBSFRAME_FOUND)
|
|
set_property(TARGET LIBSFRAME PROPERTY IMPORTED_LOCATION ${LIBSFRAME_LIBRARIES})
|
|
- target_link_libraries(runtime LIBSFRAME)
|
|
+ target_link_libraries(bpftraceruntime LIBSFRAME)
|
|
endif()
|
|
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 OR LIBBFD_STATIC)
|
|
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)
|
|
+ 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)
|
|
@@ -207,16 +209,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()
|
|
|
|
@@ -238,16 +240,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 e6a1d0a0..c53daa19 100644
|
|
--- a/src/arch/CMakeLists.txt
|
|
+++ b/src/arch/CMakeLists.txt
|
|
@@ -1,19 +1,20 @@
|
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|aarch64)")
|
|
- 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})
|