mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 15:41:46 +00:00
unwind: use -fno-rtti -fno-exceptions -funwind-tables
RTTI and exceptions are not needed for the unwinder, the use of C++ there is for very specific cases, and does not require dynamic_cast nor does it use exceptions. This avoids unnecessary references to type information being emitted. llvm-svn: 228408
This commit is contained in:
parent
79fdb75a34
commit
123f44a2f6
@ -5,6 +5,8 @@ include(CheckCXXCompilerFlag)
|
||||
# Check compiler flags
|
||||
check_c_compiler_flag(-funwind-tables LIBCXXABI_HAS_FUNWIND_TABLES)
|
||||
check_cxx_compiler_flag(-fPIC LIBCXXABI_HAS_FPIC_FLAG)
|
||||
check_cxx_compiler_flag(-fno-exceptions LIBCXXABI_HAS_NO_EXCEPTIONS_FLAG)
|
||||
check_cxx_compiler_flag(-fno-rtti LIBCXXABI_HAS_NO_RTTI_FLAG)
|
||||
check_cxx_compiler_flag(-fstrict-aliasing LIBCXXABI_HAS_FSTRICT_ALIASING_FLAG)
|
||||
check_cxx_compiler_flag(-nodefaultlibs LIBCXXABI_HAS_NODEFAULTLIBS_FLAG)
|
||||
check_cxx_compiler_flag(-nostdinc++ LIBCXXABI_HAS_NOSTDINCXX_FLAG)
|
||||
|
@ -68,6 +68,11 @@ target_link_libraries(unwind ${libraries})
|
||||
append_if(LIBCXXABI_COMPILE_FLAGS LIBCXXABI_HAS_FPIC_FLAG -fPIC)
|
||||
append_if(LIBCXXABI_LINK_FLAGS LIBCXXABI_HAS_NODEFAULTLIBS_FLAG -nodefaultlibs)
|
||||
|
||||
set(LIBUNWIND_COMPILE_FLAGS)
|
||||
append_if(LIBUNWIND_COMPILE_FLAGS LIBCXXABI_HAS_NO_EXCEPTIONS_FLAG -fno-exceptions)
|
||||
append_if(LIBUNWIND_COMPILE_FLAGS LIBCXXABI_HAS_NO_RTTI_FLAG -fno-rtti)
|
||||
append_if(LIBUNWIND_COMPILE_FLAGS LIBCXXABI_HAS_FUNWIND_TABLES -funwind-tables)
|
||||
|
||||
set(LIBCXXABI_UNWINDER_NAME "unwind")
|
||||
|
||||
if ( APPLE )
|
||||
@ -86,11 +91,12 @@ if ( APPLE )
|
||||
endif()
|
||||
|
||||
string(REPLACE ";" " " LIBCXXABI_COMPILE_FLAGS "${LIBCXXABI_COMPILE_FLAGS}")
|
||||
string(REPLACE ";" " " LIBUNWIND_COMPILE_FLAGS "${LIBUNWIND_COMPILE_FLAGS}")
|
||||
string(REPLACE ";" " " LIBCXXABI_LINK_FLAGS "${LIBCXXABI_LINK_FLAGS}")
|
||||
|
||||
set_target_properties(unwind
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS "${LIBCXXABI_COMPILE_FLAGS}"
|
||||
COMPILE_FLAGS "${LIBCXXABI_COMPILE_FLAGS} ${LIBUNWIND_COMPILE_FLAGS}"
|
||||
LINK_FLAGS "${LIBCXXABI_LINK_FLAGS}"
|
||||
OUTPUT_NAME "${LIBCXXABI_UNWINDER_NAME}"
|
||||
VERSION "1.0"
|
||||
|
Loading…
Reference in New Issue
Block a user