[PATCH] D40483: [libunwind] Support building libunwind as a DLL
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 27 03:50:32 PST 2017
mstorsjo created this revision.
Herald added a subscriber: mgorny.
https://reviews.llvm.org/D40483
Files:
CMakeLists.txt
src/config.h
Index: src/config.h
===================================================================
--- src/config.h
+++ src/config.h
@@ -50,9 +50,13 @@
#define _LIBUNWIND_EXPORT
#define _LIBUNWIND_HIDDEN
#else
- // FIXME: these macros are not correct for COFF targets
- #define _LIBUNWIND_EXPORT __attribute__((visibility("default")))
- #define _LIBUNWIND_HIDDEN __attribute__((visibility("hidden")))
+ #if defined(_WIN32)
+ #define _LIBUNWIND_EXPORT __declspec(dllexport)
+ #define _LIBUNWIND_HIDDEN
+ #else
+ #define _LIBUNWIND_EXPORT __attribute__((visibility("default")))
+ #define _LIBUNWIND_HIDDEN __attribute__((visibility("hidden")))
+ #endif
#endif
#if (defined(__APPLE__) && defined(__arm__)) || defined(__USING_SJLJ_EXCEPTIONS__)
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -307,6 +307,11 @@
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
endif()
+# Disable DLL annotations on Windows for static builds.
+if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT LIBUNWIND_ENABLE_SHARED)
+ add_definitions(-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS)
+endif()
+
#===============================================================================
# Setup Source Code
#===============================================================================
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D40483.124347.patch
Type: text/x-patch
Size: 1354 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171127/5b31949c/attachment.bin>
More information about the llvm-commits
mailing list