[PATCH] D70868: [libunwind] Emit dependent libraries only when detected by CMake
This revision was automatically updated to reflect the committed changes. Closed by commit rG35bc5276ca31: [libunwind] Emit dependent libraries only when detected by CMake (authored by mgorny). Herald added a project: libc++. Herald added a subscriber: libcxx-commits. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70868/new/ https://reviews.llvm.org/D70868 Files: libunwind/CMakeLists.txt libunwind/src/AddressSpace.hpp libunwind/src/RWMutex.hpp Index: libunwind/src/RWMutex.hpp === --- libunwind/src/RWMutex.hpp +++ libunwind/src/RWMutex.hpp @@ -17,7 +17,7 @@ #include #elif !defined(_LIBUNWIND_HAS_NO_THREADS) #include -#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 Index: libunwind/src/AddressSpace.hpp === --- libunwind/src/AddressSpace.hpp +++ libunwind/src/AddressSpace.hpp @@ -27,7 +27,7 @@ #if _LIBUNWIND_USE_DLADDR #include -#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 Index: libunwind/CMakeLists.txt === --- libunwind/CMakeLists.txt +++ libunwind/CMakeLists.txt @@ -352,7 +352,12 @@ 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() #=== Index: libunwind/src/RWMutex.hpp === --- libunwind/src/RWMutex.hpp +++ libunwind/src/RWMutex.hpp @@ -17,7 +17,7 @@ #include #elif !defined(_LIBUNWIND_HAS_NO_THREADS) #include -#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 Index: libunwind/src/AddressSpace.hpp === --- libunwind/src/AddressSpace.hpp +++ libunwind/src/AddressSpace.hpp @@ -27,7 +27,7 @@ #if _LIBUNWIND_USE_DLADDR #include -#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 Index: libunwind/CMakeLists.txt === --- libunwind/CMakeLists.txt +++ libunwind/CMakeLists.txt @@ -352,7 +352,12 @@ 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() #=== ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D70868: [libunwind] Emit dependent libraries only when detected by CMake
mgorny added a comment. I'll look into it a bit later. I've focused on libunwind since it's breaking NetBSD buildbot. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70868/new/ https://reviews.llvm.org/D70868 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D70868: [libunwind] Emit dependent libraries only when detected by CMake
phosek accepted this revision. phosek added a comment. This revision is now accepted and ready to land. LGTM, thanks! Would it be possible to make the same change to libc++abi and libc++ as well (since they also use dependent library feature)? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70868/new/ https://reviews.llvm.org/D70868 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D70868: [libunwind] Emit dependent libraries only when detected by CMake
mgorny created this revision. mgorny added reviewers: phosek, ldionne. Herald added subscribers: jfb, dexonsmith, christof, krytarowski, srhines. 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. https://reviews.llvm.org/D70868 Files: libunwind/CMakeLists.txt libunwind/src/AddressSpace.hpp libunwind/src/RWMutex.hpp Index: libunwind/src/RWMutex.hpp === --- libunwind/src/RWMutex.hpp +++ libunwind/src/RWMutex.hpp @@ -17,7 +17,7 @@ #include #elif !defined(_LIBUNWIND_HAS_NO_THREADS) #include -#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 Index: libunwind/src/AddressSpace.hpp === --- libunwind/src/AddressSpace.hpp +++ libunwind/src/AddressSpace.hpp @@ -27,7 +27,7 @@ #if _LIBUNWIND_USE_DLADDR #include -#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 Index: libunwind/CMakeLists.txt === --- libunwind/CMakeLists.txt +++ libunwind/CMakeLists.txt @@ -352,7 +352,12 @@ 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() #=== Index: libunwind/src/RWMutex.hpp === --- libunwind/src/RWMutex.hpp +++ libunwind/src/RWMutex.hpp @@ -17,7 +17,7 @@ #include #elif !defined(_LIBUNWIND_HAS_NO_THREADS) #include -#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 Index: libunwind/src/AddressSpace.hpp === --- libunwind/src/AddressSpace.hpp +++ libunwind/src/AddressSpace.hpp @@ -27,7 +27,7 @@ #if _LIBUNWIND_USE_DLADDR #include -#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 Index: libunwind/CMakeLists.txt === --- libunwind/CMakeLists.txt +++ libunwind/CMakeLists.txt @@ -352,7 +352,12 @@ 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() #=== ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits