forked from OSchip/llvm-project
[libc++abi] Default to DLL annotations on Windows
`__declspec(dllexport)` and `__declspec(dllimport)` should only be used when building libc++abi as a DLL, but that's the more common use case, so default to adding the annotations and add an option to opt out. Similar to r282449, which made the corresponding change for libc++. Differential Revision: https://reviews.llvm.org/D24945 llvm-svn: 282470
This commit is contained in:
parent
7d6935c184
commit
88c6acfedc
|
@ -249,6 +249,15 @@ if (LIBCXXABI_USE_COMPILER_RT)
|
|||
list(APPEND LIBCXXABI_LINK_FLAGS "-rtlib=compiler-rt")
|
||||
endif()
|
||||
|
||||
# Let the library headers know they are currently being used to build the
|
||||
# library.
|
||||
add_definitions(-D_LIBCXXABI_BUILDING_LIBRARY)
|
||||
|
||||
# Disable DLL annotations on Windows for static builds.
|
||||
if (WIN32 AND LIBCXXABI_ENABLE_STATIC AND NOT LIBCXXABI_ENABLE_SHARED)
|
||||
add_definitions(-D_LIBCXXABI_DISABLE_DLL_IMPORT_EXPORT)
|
||||
endif()
|
||||
|
||||
append_if(LIBCXXABI_COMPILE_FLAGS LIBCXXABI_HAS_WERROR_FLAG -Werror=return-type)
|
||||
|
||||
# Get warning flags
|
||||
|
@ -333,7 +342,6 @@ if (LIBCXXABI_HAS_PTHREAD_API)
|
|||
add_definitions(-D_LIBCPP_HAS_THREAD_API_PTHREAD)
|
||||
endif()
|
||||
|
||||
# This is the _ONLY_ place where add_definitions is called.
|
||||
if (MSVC)
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
|
|
|
@ -21,8 +21,13 @@
|
|||
#define __has_attribute(_attribute_) 0
|
||||
#endif
|
||||
|
||||
#if defined(_LIBCXXABI_DLL)
|
||||
#if defined(cxxabi_EXPORTS)
|
||||
#if defined(_WIN32)
|
||||
#if defined(_LIBCXXABI_DISABLE_DLL_IMPORT_EXPORT)
|
||||
#define _LIBCXXABI_HIDDEN
|
||||
#define _LIBCXXABI_DATA_VIS
|
||||
#define _LIBCXXABI_FUNC_VIS
|
||||
#define _LIBCXXABI_TYPE_VIS
|
||||
#elif defined(_LIBCXXABI_BUILDING_LIBRARY)
|
||||
#define _LIBCXXABI_HIDDEN
|
||||
#define _LIBCXXABI_DATA_VIS __declspec(dllexport)
|
||||
#define _LIBCXXABI_FUNC_VIS __declspec(dllexport)
|
||||
|
|
Loading…
Reference in New Issue