aboutsummaryrefslogtreecommitdiff
path: root/libcxxabi
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2015-01-27 20:40:22 +0000
committerHans Wennborg <hans@hanshq.net>2015-01-27 20:40:22 +0000
commitebb6f3ae494030246d009634aaee309a79b0b05e (patch)
tree4e39eb57c1ab5b7d5ab26eb13afcd1d6d7a4ef67 /libcxxabi
parent469df786598f1d8ba2d8021b1afe8a0c1a102424 (diff)
downloadllvm-ebb6f3ae494030246d009634aaee309a79b0b05e.zip
llvm-ebb6f3ae494030246d009634aaee309a79b0b05e.tar.gz
llvm-ebb6f3ae494030246d009634aaee309a79b0b05e.tar.bz2
Merging r226823:
------------------------------------------------------------------------ r226823 | logan | 2015-01-22 05:39:08 -0800 (Thu, 22 Jan 2015) | 6 lines Add -funwind-tables to CMAKE_C_FLAGS. Without -funwind-tables, the compiler won't generate the unwinding table for these C functions. However, the functions in libunwind, such as `_Unwind_Backtrace()`, WILL unwind stack to get the backtrace. ------------------------------------------------------------------------ llvm-svn: 227238
Diffstat (limited to 'libcxxabi')
-rw-r--r--libcxxabi/CMakeLists.txt4
-rw-r--r--libcxxabi/cmake/config-ix.cmake2
2 files changed, 6 insertions, 0 deletions
diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt
index 9468dd3..2ecb7e9 100644
--- a/libcxxabi/CMakeLists.txt
+++ b/libcxxabi/CMakeLists.txt
@@ -162,6 +162,7 @@ macro(append_if list condition var)
endif()
endmacro()
+set(LIBCXXABI_C_FLAGS "")
set(LIBCXXABI_CXX_FLAGS "")
set(LIBCXXABI_COMPILE_FLAGS "")
set(LIBCXXABI_LINK_FLAGS "")
@@ -214,6 +215,8 @@ endif()
append_if(LIBCXXABI_CXX_FLAGS LIBCXXABI_HAS_FSTRICT_ALIASING_FLAG -fstrict-aliasing)
append_if(LIBCXXABI_CXX_FLAGS LIBCXXABI_HAS_EHSC_FLAG -EHsc)
+append_if(LIBCXXABI_C_FLAGS LIBCXXABI_HAS_FUNWIND_TABLES -funwind-tables)
+
# Assert
string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
if (LIBCXXABI_ENABLE_ASSERTIONS)
@@ -252,6 +255,7 @@ endif()
string(REPLACE ";" " " LIBCXXABI_CXX_FLAGS "${LIBCXXABI_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBCXXABI_CXX_FLAGS}")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBCXXABI_C_FLAGS}")
#===============================================================================
# Setup Source Code
diff --git a/libcxxabi/cmake/config-ix.cmake b/libcxxabi/cmake/config-ix.cmake
index ac31eed..b6ee40f 100644
--- a/libcxxabi/cmake/config-ix.cmake
+++ b/libcxxabi/cmake/config-ix.cmake
@@ -1,7 +1,9 @@
include(CheckLibraryExists)
+include(CheckCCompilerFlag)
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(-fstrict-aliasing LIBCXXABI_HAS_FSTRICT_ALIASING_FLAG)
check_cxx_compiler_flag(-nodefaultlibs LIBCXXABI_HAS_NODEFAULTLIBS_FLAG)