mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-12 01:12:12 +00:00
c862ae0c42
gcc with -nodefaultlibs does not add sanitizers library during linkage with -static-libasan and similar, fix this, by add them explicitly. From the gcc(1) about -nodefaultlibs: Do not use the standard system libraries when linking. Only the libraries you specify are passed to the linker, and options specifying linkage of the system libraries, such as -static-libgcc or -shared-libgcc, are ignored. The standard startup files are used normally, unless -nostartfiles is used. Plus checked it manually, w/o -nodefaultlibs everything works without this explicit linkage. After this patch UBSAN under gcc compiled successfully. v2: freebsd and darwin
37 lines
953 B
CMake
37 lines
953 B
CMake
set (DEFAULT_LIBS "-nodefaultlibs")
|
|
|
|
if (NOT COMPILER_CLANG)
|
|
message (FATAL_ERROR "Darwin build is supported only for Clang")
|
|
endif ()
|
|
|
|
set (DEFAULT_LIBS "${DEFAULT_LIBS} ${COVERAGE_OPTION} -lc -lm -lpthread -ldl")
|
|
|
|
message(STATUS "Default libraries: ${DEFAULT_LIBS}")
|
|
|
|
set(CMAKE_CXX_STANDARD_LIBRARIES ${DEFAULT_LIBS})
|
|
set(CMAKE_C_STANDARD_LIBRARIES ${DEFAULT_LIBS})
|
|
|
|
# Minimal supported SDK version
|
|
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.15)
|
|
|
|
# Unfortunately '-pthread' doesn't work with '-nodefaultlibs'.
|
|
# Just make sure we have pthreads at all.
|
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
find_package(Threads REQUIRED)
|
|
|
|
include (cmake/find/cxx.cmake)
|
|
|
|
add_library(global-group INTERFACE)
|
|
|
|
target_link_libraries(global-group INTERFACE
|
|
$<TARGET_PROPERTY:global-libs,INTERFACE_LINK_LIBRARIES>
|
|
)
|
|
|
|
link_libraries(global-group)
|
|
|
|
# FIXME: remove when all contribs will get custom cmake lists
|
|
install(
|
|
TARGETS global-group global-libs
|
|
EXPORT global
|
|
)
|