Revert r282345 - Use __attribute__((internal_linkage)) when available.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284101 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier
2016-10-13 04:07:58 +00:00
parent ecb5332d41
commit a469f83b26
2 changed files with 2 additions and 35 deletions

View File

@@ -34,7 +34,6 @@
#endif
#if defined(_LIBCPP_ABI_UNSTABLE) || _LIBCPP_ABI_VERSION >= 2
#define _LIBCPP_ABI_EXTERN_TEMPLATE_SYMBOLS_VERSION 2
// Change short string representation so that string data starts at offset 0,
// improving its alignment in some cases.
#define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT
@@ -50,7 +49,6 @@
#define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE
#define _LIBCPP_ABI_VARIADIC_LOCK_GUARD
#elif _LIBCPP_ABI_VERSION == 1
#define _LIBCPP_ABI_EXTERN_TEMPLATE_SYMBOLS_VERSION 1
// Feature macros for disabling pre ABI v1 features. All of these options
// are deprecated.
#if defined(__FreeBSD__)
@@ -603,19 +601,11 @@ namespace std {
#endif
#ifndef _LIBCPP_INLINE_VISIBILITY
# if __has_attribute(__internal_linkage__)
# define _LIBCPP_INLINE_VISIBILITY __attribute__((__internal_linkage__, __always_inline__))
# else
# define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), __always_inline__))
# endif
#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), __always_inline__))
#endif
#ifndef _LIBCPP_ALWAYS_INLINE
# if __has_attribute(__internal_linkage__)
# define _LIBCPP_ALWAYS_INLINE __attribute__((__internal_linkage__, __always_inline__))
# else
# define _LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__))
# endif
#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__))
#endif
#ifndef _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY

View File

@@ -29,29 +29,6 @@ template
string
operator+<char, char_traits<char>, allocator<char> >(char const*, string const&);
// These external instantiations are required to maintain dylib compatibility
// for ABI v1 when using __attribute__((internal_linkage)) as opposed to
// __attribute__((visibility("hidden"), always_inline)).
#if _LIBCPP_ABI_EXTERN_TEMPLATE_SYMBOLS_VERSION == 1
template basic_string<char>::iterator
basic_string<char>::insert(basic_string<char>::const_iterator,
char const *, char const *);
template basic_string<wchar_t>::iterator
basic_string<wchar_t>::insert(basic_string<wchar_t>::const_iterator,
wchar_t const *, wchar_t const *);
template basic_string<char> &
basic_string<char>::replace(basic_string<char>::const_iterator,
basic_string<char>::const_iterator,
char const *, char const *);
template basic_string<wchar_t> &
basic_string<wchar_t>::replace(basic_string<wchar_t>::const_iterator,
basic_string<wchar_t>::const_iterator,
wchar_t const *, wchar_t const *);
#endif // _LIBCPP_ABI_EXTERN_TEMPLATE_SYMBOLS_VERSION
namespace
{