Author: ericwf Date: Thu Oct 13 23:14:24 2016 New Revision: 284193 URL: http://llvm.org/viewvc/llvm-project?rev=284193&view=rev Log: Re-export two previously exported std::string functions.
These functions were removed from the dylib sometime between the 3.9 release and now. This patch manually exports them to re-gain ABI compatibility. Modified: libcxx/trunk/lib/abi/x86_64-linux-gnu.abilist libcxx/trunk/src/string.cpp Modified: libcxx/trunk/lib/abi/x86_64-linux-gnu.abilist URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/lib/abi/x86_64-linux-gnu.abilist?rev=284193&r1=284192&r2=284193&view=diff ============================================================================== --- libcxx/trunk/lib/abi/x86_64-linux-gnu.abilist (original) +++ libcxx/trunk/lib/abi/x86_64-linux-gnu.abilist Thu Oct 13 23:14:24 2016 @@ -1,16 +1,16 @@ {'type': 'FUNC', 'name': '__cxa_finalize@GLIBC_2.2.5'} +{'type': 'FUNC', 'name': 'wctob@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'wcsnrtombs@GLIBC_2.2.5'} {'type': 'FUNC', 'name': '_Unwind_Resume@GCC_3.0'} -{'type': 'FUNC', 'name': 'wctob@GLIBC_2.2.5'} +{'type': 'FUNC', 'name': 'wcrtomb@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'wcsxfrm_l@GLIBC_2.3'} -{'type': 'FUNC', 'name': 'freelocale@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'wcscoll_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'iswblank_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'iswalpha_l@GLIBC_2.3'} -{'type': 'FUNC', 'name': 'iswdigit_l@GLIBC_2.3'} -{'type': 'FUNC', 'name': 'iswcntrl_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'freelocale@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'catopen@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'catclose@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'catgets@GLIBC_2.2.5'} -{'type': 'FUNC', 'name': 'catopen@GLIBC_2.2.5'} {'type': 'FUNC', 'name': '__ctype_get_mb_cur_max@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'btowc@GLIBC_2.2.5'} {'type': 'FUNC', 'name': '_ZSt9terminatev'} @@ -18,43 +18,43 @@ {'type': 'FUNC', 'name': 'setlocale@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'strtod_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'sscanf@GLIBC_2.2.5'} -{'type': 'FUNC', 'name': 'strtold_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'mbtowc@GLIBC_2.2.5'} +{'type': 'FUNC', 'name': 'strftime_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'strcoll_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'strxfrm_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'mbsnrtowcs@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'mbsrtowcs@GLIBC_2.2.5'} -{'type': 'FUNC', 'name': 'toupper_l@GLIBC_2.3'} -{'type': 'FUNC', 'name': 'mbtowc@GLIBC_2.2.5'} -{'type': 'FUNC', 'name': 'tolower_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'localeconv@GLIBC_2.2.5'} +{'type': 'FUNC', 'name': 'strtold_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'mbrtowc@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'towupper_l@GLIBC_2.3'} {'type': 'OBJECT', 'name': '_ZTVN10__cxxabiv120__si_class_type_infoE', 'size': 0} {'type': 'FUNC', 'name': 'towlower_l@GLIBC_2.3'} -{'type': 'FUNC', 'name': 'localeconv@GLIBC_2.2.5'} +{'type': 'FUNC', 'name': 'toupper_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'tolower_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'uselocale@GLIBC_2.3'} -{'type': 'FUNC', 'name': 'mbrtowc@GLIBC_2.2.5'} -{'type': 'FUNC', 'name': 'wcscoll_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'iswprint_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'vsnprintf@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'vsscanf@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'iswlower_l@GLIBC_2.3'} -{'type': 'FUNC', 'name': 'iswspace_l@GLIBC_2.3'} -{'type': 'FUNC', 'name': 'wcrtomb@GLIBC_2.2.5'} -{'type': 'FUNC', 'name': 'iswpunct_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'iswdigit_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'iswcntrl_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'vasprintf@GLIBC_2.2.5'} {'type': 'FUNC', 'name': '__cxa_atexit@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'iswxdigit_l@GLIBC_2.3'} {'type': 'FUNC', 'name': '__cxa_begin_catch'} {'type': 'FUNC', 'name': 'iswupper_l@GLIBC_2.3'} {'type': 'FUNC', 'name': '__gxx_personality_v0'} +{'type': 'FUNC', 'name': 'iswspace_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'fflush@GLIBC_2.2.5'} -{'type': 'FUNC', 'name': 'vasprintf@GLIBC_2.2.5'} +{'type': 'FUNC', 'name': 'iswpunct_l@GLIBC_2.3'} {'type': 'FUNC', 'name': 'fwrite@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'getc@GLIBC_2.2.5'} {'type': 'OBJECT', 'name': 'stderr@GLIBC_2.2.5', 'size': 0} -{'type': 'FUNC', 'name': 'newlocale@GLIBC_2.3'} {'type': 'OBJECT', 'name': 'stdin@GLIBC_2.2.5', 'size': 0} {'type': 'OBJECT', 'name': 'stdout@GLIBC_2.2.5', 'size': 0} {'type': 'FUNC', 'name': 'ungetc@GLIBC_2.2.5'} -{'type': 'FUNC', 'name': 'strftime_l@GLIBC_2.3'} -{'type': 'FUNC', 'name': 'strcoll_l@GLIBC_2.3'} +{'type': 'FUNC', 'name': 'newlocale@GLIBC_2.3'} {'type': 'FUNC', 'name': '__cxa_guard_acquire'} {'type': 'FUNC', 'name': '__cxa_guard_release'} {'type': 'FUNC', 'name': 'pthread_mutex_lock@GLIBC_2.2.5'} @@ -160,8 +160,8 @@ {'type': 'FUNC', 'name': 'pthread_cond_timedwait@GLIBC_2.3.2'} {'type': 'FUNC', 'name': 'pthread_getspecific@GLIBC_2.2.5'} {'type': 'FUNC', 'name': 'pthread_setspecific@GLIBC_2.2.5'} -{'type': 'FUNC', 'name': 'strtoll_l@GLIBC_2.3.3'} {'type': 'FUNC', 'name': 'strtoull_l@GLIBC_2.3.3'} +{'type': 'FUNC', 'name': 'strtoll_l@GLIBC_2.3.3'} {'type': 'FUNC', 'name': '_ZNSt13runtime_errorD1Ev'} {'type': 'FUNC', 'name': '_ZNSt8bad_castC1Ev'} {'type': 'FUNC', 'name': '_ZNSt8bad_castD1Ev'} @@ -214,6 +214,7 @@ {'type': 'FUNC', 'name': '_ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev'} {'type': 'FUNC', 'name': '_ZNSt13exception_ptrC2ERKS_'} {'type': 'FUNC', 'name': '_ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE7sungetcEv'} +{'type': 'FUNC', 'name': '_ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initIPKwEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESA_SA_'} {'type': 'FUNC', 'name': '_ZNSt3__114collate_bynameIwEC2EPKcm'} {'type': 'FUNC', 'name': '_ZNSt3__115numpunct_bynameIwEC1ERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEm'} {'type': 'FUNC', 'name': '_ZNSt3__18numpunctIcED1Ev'} @@ -1379,6 +1380,7 @@ {'type': 'FUNC', 'name': '_ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE7seekoffExNS_8ios_base7seekdirEj'} {'type': 'OBJECT', 'name': '_ZTSNSt3__115basic_streambufIwNS_11char_traitsIwEEEE', 'size': 49} {'type': 'FUNC', 'name': '_ZNSt3__16__sortIRNS_6__lessImmEEPmEEvT0_S5_T_'} +{'type': 'FUNC', 'name': '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESA_SA_'} {'type': 'FUNC', 'name': '_ZNSt3__14stolERKNS_12basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEEPmi'} {'type': 'FUNC', 'name': '_ZNSt3__114codecvt_bynameIcc11__mbstate_tED2Ev'} {'type': 'FUNC', 'name': '_ZNKSt3__117moneypunct_bynameIcLb0EE14do_curr_symbolEv'} Modified: libcxx/trunk/src/string.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/string.cpp?rev=284193&r1=284192&r2=284193&view=diff ============================================================================== --- libcxx/trunk/src/string.cpp (original) +++ libcxx/trunk/src/string.cpp Thu Oct 13 23:14:24 2016 @@ -25,6 +25,9 @@ template class _LIBCPP_CLASS_TEMPLATE_IN template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_string<char>; template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_string<wchar_t>; +template void string::__init(const char*, const char*); +template void wstring::__init(const wchar_t*, const wchar_t*); + template string operator+<char, char_traits<char>, allocator<char> >(char const*, string const&); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits