mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-17 21:32:00 +01:00
build: enable libc++ hardening
When `ENABLE_HARDENING` is `ON` (which is the default) and compiling with libc++ in debug mode, then enable full libc++ hardening. Inspired by https://github.com/bitcoin/bitcoin/issues/31272#issuecomment-2518700939
This commit is contained in:
parent
698f86964c
commit
a3a799c77c
@ -537,6 +537,12 @@ if(ENABLE_HARDENING)
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
try_append_linker_flag("-Wl,-fixup_chains" TARGET hardening_interface)
|
||||
endif()
|
||||
|
||||
if(HAVE_LIBCPP)
|
||||
# https://libcxx.llvm.org/Hardening.html
|
||||
target_compile_definitions(hardening_interface INTERFACE
|
||||
$<IF:$<CONFIG:Debug>,_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG,>)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -12,6 +12,8 @@ check_include_file_cxx(sys/resources.h HAVE_SYS_RESOURCES_H)
|
||||
check_include_file_cxx(sys/vmmeter.h HAVE_SYS_VMMETER_H)
|
||||
check_include_file_cxx(vm/vm_param.h HAVE_VM_VM_PARAM_H)
|
||||
|
||||
check_cxx_symbol_exists(_LIBCPP_VERSION "version" HAVE_LIBCPP)
|
||||
|
||||
check_cxx_symbol_exists(O_CLOEXEC "fcntl.h" HAVE_O_CLOEXEC)
|
||||
check_cxx_symbol_exists(fdatasync "unistd.h" HAVE_FDATASYNC)
|
||||
check_cxx_symbol_exists(fork "unistd.h" HAVE_DECL_FORK)
|
||||
|
Loading…
x
Reference in New Issue
Block a user