diff options
author | Eric Fiselier <eric@efcs.ca> | 2017-01-17 03:16:26 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2017-01-17 03:16:26 +0000 |
commit | 11f60453792eee0fac2d14df54974e39bdab8017 (patch) | |
tree | 3e842d4504cccd38ac29782b386ff46ee4315b6c /libcxx/src | |
parent | c018efd6804b7144367ca12697bc560d436b4dc5 (diff) | |
download | bcm5719-llvm-11f60453792eee0fac2d14df54974e39bdab8017.tar.gz bcm5719-llvm-11f60453792eee0fac2d14df54974e39bdab8017.zip |
Add ABI option to remove recently inlined __shared_count functions from the library.
In order to allow inlining of previously out-of-line functions without an ABI break
libc++ provides legacy definitions in the dylib that old programs can
continue to use. Unfortunatly Windows link.exe detects this hack and diagnoses the duplicate
definitions.
This patch disable the duplicate definitions on Windows by adding an ABI option
which disables all "legacy out-of-line symbols"
llvm-svn: 292190
Diffstat (limited to 'libcxx/src')
-rw-r--r-- | libcxx/src/memory.cpp | 3 | ||||
-rw-r--r-- | libcxx/src/system_error.cpp | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/libcxx/src/memory.cpp b/libcxx/src/memory.cpp index 099f2d61c97..f6f6fe8da62 100644 --- a/libcxx/src/memory.cpp +++ b/libcxx/src/memory.cpp @@ -35,6 +35,7 @@ __shared_weak_count::~__shared_weak_count() { } +#if defined(_LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS) void __shared_count::__add_shared() _NOEXCEPT { @@ -71,6 +72,8 @@ __shared_weak_count::__release_shared() _NOEXCEPT __release_weak(); } +#endif // _LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS + void __shared_weak_count::__release_weak() _NOEXCEPT { diff --git a/libcxx/src/system_error.cpp b/libcxx/src/system_error.cpp index c5471247682..94114992c13 100644 --- a/libcxx/src/system_error.cpp +++ b/libcxx/src/system_error.cpp @@ -29,7 +29,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD // class error_category -#if defined(_LIBCPP_DEPRECATED_ABI_EXTERNAL_ERROR_CATEGORY_CONSTRUCTOR) +#if defined(_LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS) error_category::error_category() _NOEXCEPT { } |