[libcxx-commits] [PATCH] D90021: [libcxx] [libcxxabi] Set flags for visibility when statically linking libcxxabi into libcxx for windows
Martin Storsjö via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Nov 3 07:14:11 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG8a73aa8c4c3e: [libcxx] [libcxxabi] Set flags for visibility when statically linking libcxxabi… (authored by mstorsjo).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D90021/new/
https://reviews.llvm.org/D90021
Files:
libcxx/CMakeLists.txt
libcxxabi/CMakeLists.txt
Index: libcxxabi/CMakeLists.txt
===================================================================
--- libcxxabi/CMakeLists.txt
+++ libcxxabi/CMakeLists.txt
@@ -288,7 +288,14 @@
# Disable DLL annotations on Windows for static builds.
if (WIN32 AND LIBCXXABI_ENABLE_STATIC AND NOT LIBCXXABI_ENABLE_SHARED)
- add_definitions(-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
+ if (LIBCXX_ENABLE_SHARED AND LIBCXX_ENABLE_STATIC_ABI_LIBRARY)
+ # Building libcxxabi statically, but intending for it to be statically
+ # linked into a shared libcxx; keep dllexport enabled within libcxxabi,
+ # as the symbols will need to be exported from libcxx.
+ else()
+ # Regular static build; disable dllexports.
+ add_definitions(-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
+ endif()
endif()
add_compile_flags_if_supported(-Werror=return-type)
Index: libcxx/CMakeLists.txt
===================================================================
--- libcxx/CMakeLists.txt
+++ libcxx/CMakeLists.txt
@@ -871,6 +871,12 @@
config_define(ON _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)
endif()
+if (WIN32 AND LIBCXX_ENABLE_STATIC_ABI_LIBRARY)
+ # If linking libcxxabi statically into libcxx, skip the dllimport attributes
+ # on symbols we refer to from libcxxabi.
+ add_definitions(-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
+endif()
+
# Setup all common build flags =================================================
function(cxx_add_common_build_flags target)
cxx_add_basic_build_flags(${target})
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90021.302577.patch
Type: text/x-patch
Size: 1509 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20201103/c471455a/attachment.bin>
More information about the libcxx-commits
mailing list