forked from OSchip/llvm-project
[CMake] Link to compiler-rt if LIBUNWIND_USE_COMPILER_RT is ON.
Summary: If `-nodefaultlibs` is given, we weren't actually linking to it. This was true irrespective of passing `-rtlib=compiler-rt` (see previous patch). Now we explicitly link it to handle that case. I wonder if we should be linking these libraries only if we're using `-nodefaultlibs`... Reviewers: beanz Subscribers: dberris, mgorny, christof, chrib, cfe-commits Differential Revision: https://reviews.llvm.org/D51657 llvm-svn: 343990
This commit is contained in:
parent
43bf9917cc
commit
869e5d1fca
|
@ -7,6 +7,7 @@ check_library_exists(c fopen "" LIBUNWIND_HAS_C_LIB)
|
|||
|
||||
if (NOT LIBUNWIND_USE_COMPILER_RT)
|
||||
check_library_exists(gcc_s __gcc_personality_v0 "" LIBUNWIND_HAS_GCC_S_LIB)
|
||||
check_library_exists(gcc __absvdi2 "" LIBUNWIND_HAS_GCC_LIB)
|
||||
endif()
|
||||
|
||||
# libunwind is built with -nodefaultlibs, so we want all our checks to also
|
||||
|
@ -25,8 +26,13 @@ if (LIBUNWIND_HAS_NODEFAULTLIBS_FLAG)
|
|||
if (LIBUNWIND_USE_COMPILER_RT)
|
||||
find_compiler_rt_library(builtins LIBUNWIND_BUILTINS_LIBRARY)
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "${LIBUNWIND_BUILTINS_LIBRARY}")
|
||||
elseif (LIBUNWIND_HAS_GCC_S_LIB)
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES gcc_s)
|
||||
else ()
|
||||
if (LIBUNWIND_HAS_GCC_S_LIB)
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES gcc_s)
|
||||
endif ()
|
||||
if (LIBUNWIND_HAS_GCC_LIB)
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES gcc)
|
||||
endif ()
|
||||
endif ()
|
||||
if (MINGW)
|
||||
# Mingw64 requires quite a few "C" runtime libraries in order for basic
|
||||
|
|
|
@ -53,7 +53,12 @@ set(LIBUNWIND_SOURCES
|
|||
# Generate library list.
|
||||
set(libraries)
|
||||
append_if(libraries LIBUNWIND_HAS_C_LIB c)
|
||||
append_if(libraries LIBUNWIND_HAS_GCC_S_LIB gcc_s)
|
||||
if (LIBUNWIND_USE_COMPILER_RT)
|
||||
list(APPEND libraries "${LIBUNWIND_BUILTINS_LIBRARY}")
|
||||
else()
|
||||
append_if(libraries LIBUNWIND_HAS_GCC_S_LIB gcc_s)
|
||||
append_if(libraries LIBUNWIND_HAS_GCC_LIB gcc)
|
||||
endif()
|
||||
append_if(libraries LIBUNWIND_HAS_DL_LIB dl)
|
||||
if (LIBUNWIND_ENABLE_THREADS)
|
||||
append_if(libraries LIBUNWIND_HAS_PTHREAD_LIB pthread)
|
||||
|
|
Loading…
Reference in New Issue