mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-17 08:21:13 +00:00
[libunwind] Emit dependent libraries only when detected by CMake
996e62eef75 added Linux-specific dependent libraries to libunwind sources. As a result, building libunwind with modern LLD on *BSD started failing due to trying to link libdl. Instead, add those libraries only if they were detected by CMake. While technically we could create a long list of systems that need -ldl and -lpthread, maintaining a duplicate list makes little sense when CMake needs to detect it for non-LLD systems anyway. Remove existing system exceptions since they should be covered by the CMake check anyway. Remove -D_LIBUNWIND_HAS_COMMENT_LIB_PRAGMA since it is no longer explicitly needed, if we make the library-specific defines dependent on presence of this pragma support. Differential Revision: https://reviews.llvm.org/D70868
This commit is contained in:
parent
89c47313c9
commit
35bc5276ca
@ -352,7 +352,12 @@ if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT LIBUNWIND_ENABLE_SHARED)
|
||||
endif()
|
||||
|
||||
if (LIBUNWIND_HAS_COMMENT_LIB_PRAGMA)
|
||||
add_definitions(-D_LIBUNWIND_HAS_COMMENT_LIB_PRAGMA)
|
||||
if (LIBUNWIND_HAS_DL_LIB)
|
||||
add_definitions(-D_LIBUNWIND_LINK_DL_LIB)
|
||||
endif()
|
||||
if (LIBUNWIND_HAS_PTHREAD_LIB)
|
||||
add_definitions(-D_LIBUNWIND_LINK_PTHREAD_LIB)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#===============================================================================
|
||||
|
@ -27,7 +27,7 @@
|
||||
|
||||
#if _LIBUNWIND_USE_DLADDR
|
||||
#include <dlfcn.h>
|
||||
#if defined(__unix__) && defined(__ELF__) && defined(_LIBUNWIND_HAS_COMMENT_LIB_PRAGMA)
|
||||
#if defined(__ELF__) && defined(_LIBUNWIND_LINK_DL_LIB)
|
||||
#pragma comment(lib, "dl")
|
||||
#endif
|
||||
#endif
|
||||
|
@ -17,7 +17,7 @@
|
||||
#include <windows.h>
|
||||
#elif !defined(_LIBUNWIND_HAS_NO_THREADS)
|
||||
#include <pthread.h>
|
||||
#if defined(__unix__) && !defined(__ANDROID__) && defined(__ELF__) && defined(_LIBUNWIND_HAS_COMMENT_LIB_PRAGMA)
|
||||
#if defined(__ELF__) && defined(_LIBUNWIND_LINK_PTHREAD_LIB)
|
||||
#pragma comment(lib, "pthread")
|
||||
#endif
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user