forked from iovisor/bcc
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
src/cc: cmake file cleanup and split usdt into subdir
Move two usdt related files to a new subdirectory and link them into the final product. Introduce a cmake option to disable that feature (turning it off currently fails to compile). Move some of the cmake flag computation into a helper cmake file and include that rather than inlining it. Signed-off-by: Brenden Blanco <[email protected]>
- Loading branch information
Showing
6 changed files
with
74 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
set(llvm_raw_libs bitwriter bpfcodegen irreader linker | ||
mcjit objcarcopts option passes nativecodegen lto) | ||
list(FIND LLVM_AVAILABLE_LIBS "LLVMCoverage" _llvm_coverage) | ||
if (${_llvm_coverage} GREATER -1) | ||
list(APPEND llvm_raw_libs coverage) | ||
endif() | ||
list(FIND LLVM_AVAILABLE_LIBS "LLVMCoroutines" _llvm_coroutines) | ||
if (${_llvm_coroutines} GREATER -1) | ||
list(APPEND llvm_raw_libs coroutines) | ||
endif() | ||
llvm_map_components_to_libnames(_llvm_libs ${llvm_raw_libs}) | ||
llvm_expand_dependencies(llvm_libs ${_llvm_libs}) | ||
|
||
# order is important | ||
set(clang_libs | ||
${libclangFrontend} | ||
${libclangSerialization} | ||
${libclangDriver} | ||
${libclangParse} | ||
${libclangSema} | ||
${libclangCodeGen} | ||
${libclangAnalysis} | ||
${libclangRewrite} | ||
${libclangEdit} | ||
${libclangAST} | ||
${libclangLex} | ||
${libclangBasic}) | ||
|
||
# prune unused llvm static library stuff when linking into the new .so | ||
set(_exclude_flags) | ||
foreach(_lib ${clang_libs}) | ||
get_filename_component(_lib ${_lib} NAME) | ||
set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=${_lib}") | ||
endforeach(_lib) | ||
set(clang_lib_exclude_flags "${_exclude_flags}") | ||
|
||
set(_exclude_flags) | ||
foreach(_lib ${llvm_libs}) | ||
get_filename_component(_lib ${_lib} NAME) | ||
set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=lib${_lib}.a") | ||
endforeach(_lib) | ||
set(llvm_lib_exclude_flags "${_exclude_flags}") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# only turn on static-libstdc++ if also linking statically against clang | ||
string(REGEX MATCH ".*[.]a$" LIBCLANG_ISSTATIC "${libclangBasic}") | ||
# if gcc 4.9 or higher is used, static libstdc++ is a good option | ||
if (CMAKE_COMPILER_IS_GNUCC AND LIBCLANG_ISSTATIC) | ||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) | ||
if (GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9) | ||
execute_process(COMMAND ${CMAKE_C_COMPILER} -print-libgcc-file-name OUTPUT_VARIABLE GCC_LIB) | ||
get_filename_component(GCC_DIR "${GCC_LIB}" DIRECTORY) | ||
find_library(GCC_LIBSTDCPP libstdc++.a PATHS "${GCC_DIR}" NO_DEFAULT_PATH) | ||
if (GCC_LIBSTDCPP) | ||
message(STATUS "Using static-libstdc++") | ||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libstdc++") | ||
endif() | ||
endif() | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
add_library(usdt-static STATIC usdt_args.cc usdt.cc) |
File renamed without changes.
File renamed without changes.