[libcxx] r284193 - Re-export two previously exported std::string functions.

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 13 21:14:24 PDT 2016


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 at GLIBC_2.2.5'}
+{'type': 'FUNC', 'name': 'wctob at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'wcsnrtombs at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': '_Unwind_Resume at GCC_3.0'}
-{'type': 'FUNC', 'name': 'wctob at GLIBC_2.2.5'}
+{'type': 'FUNC', 'name': 'wcrtomb at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'wcsxfrm_l at GLIBC_2.3'}
-{'type': 'FUNC', 'name': 'freelocale at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'wcscoll_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'iswblank_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'iswalpha_l at GLIBC_2.3'}
-{'type': 'FUNC', 'name': 'iswdigit_l at GLIBC_2.3'}
-{'type': 'FUNC', 'name': 'iswcntrl_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'freelocale at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'catopen at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'catclose at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'catgets at GLIBC_2.2.5'}
-{'type': 'FUNC', 'name': 'catopen at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': '__ctype_get_mb_cur_max at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'btowc at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': '_ZSt9terminatev'}
@@ -18,43 +18,43 @@
 {'type': 'FUNC', 'name': 'setlocale at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'strtod_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'sscanf at GLIBC_2.2.5'}
-{'type': 'FUNC', 'name': 'strtold_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'mbtowc at GLIBC_2.2.5'}
+{'type': 'FUNC', 'name': 'strftime_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'strcoll_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'strxfrm_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'mbsnrtowcs at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'mbsrtowcs at GLIBC_2.2.5'}
-{'type': 'FUNC', 'name': 'toupper_l at GLIBC_2.3'}
-{'type': 'FUNC', 'name': 'mbtowc at GLIBC_2.2.5'}
-{'type': 'FUNC', 'name': 'tolower_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'localeconv at GLIBC_2.2.5'}
+{'type': 'FUNC', 'name': 'strtold_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'mbrtowc at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'towupper_l at GLIBC_2.3'}
 {'type': 'OBJECT', 'name': '_ZTVN10__cxxabiv120__si_class_type_infoE', 'size': 0}
 {'type': 'FUNC', 'name': 'towlower_l at GLIBC_2.3'}
-{'type': 'FUNC', 'name': 'localeconv at GLIBC_2.2.5'}
+{'type': 'FUNC', 'name': 'toupper_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'tolower_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'uselocale at GLIBC_2.3'}
-{'type': 'FUNC', 'name': 'mbrtowc at GLIBC_2.2.5'}
-{'type': 'FUNC', 'name': 'wcscoll_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'iswprint_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'vsnprintf at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'vsscanf at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'iswlower_l at GLIBC_2.3'}
-{'type': 'FUNC', 'name': 'iswspace_l at GLIBC_2.3'}
-{'type': 'FUNC', 'name': 'wcrtomb at GLIBC_2.2.5'}
-{'type': 'FUNC', 'name': 'iswpunct_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'iswdigit_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'iswcntrl_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'vasprintf at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': '__cxa_atexit at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'iswxdigit_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': '__cxa_begin_catch'}
 {'type': 'FUNC', 'name': 'iswupper_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': '__gxx_personality_v0'}
+{'type': 'FUNC', 'name': 'iswspace_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'fflush at GLIBC_2.2.5'}
-{'type': 'FUNC', 'name': 'vasprintf at GLIBC_2.2.5'}
+{'type': 'FUNC', 'name': 'iswpunct_l at GLIBC_2.3'}
 {'type': 'FUNC', 'name': 'fwrite at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'getc at GLIBC_2.2.5'}
 {'type': 'OBJECT', 'name': 'stderr at GLIBC_2.2.5', 'size': 0}
-{'type': 'FUNC', 'name': 'newlocale at GLIBC_2.3'}
 {'type': 'OBJECT', 'name': 'stdin at GLIBC_2.2.5', 'size': 0}
 {'type': 'OBJECT', 'name': 'stdout at GLIBC_2.2.5', 'size': 0}
 {'type': 'FUNC', 'name': 'ungetc at GLIBC_2.2.5'}
-{'type': 'FUNC', 'name': 'strftime_l at GLIBC_2.3'}
-{'type': 'FUNC', 'name': 'strcoll_l at GLIBC_2.3'}
+{'type': 'FUNC', 'name': 'newlocale at GLIBC_2.3'}
 {'type': 'FUNC', 'name': '__cxa_guard_acquire'}
 {'type': 'FUNC', 'name': '__cxa_guard_release'}
 {'type': 'FUNC', 'name': 'pthread_mutex_lock at GLIBC_2.2.5'}
@@ -160,8 +160,8 @@
 {'type': 'FUNC', 'name': 'pthread_cond_timedwait at GLIBC_2.3.2'}
 {'type': 'FUNC', 'name': 'pthread_getspecific at GLIBC_2.2.5'}
 {'type': 'FUNC', 'name': 'pthread_setspecific at GLIBC_2.2.5'}
-{'type': 'FUNC', 'name': 'strtoll_l at GLIBC_2.3.3'}
 {'type': 'FUNC', 'name': 'strtoull_l at GLIBC_2.3.3'}
+{'type': 'FUNC', 'name': 'strtoll_l at 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&);




More information about the cfe-commits mailing list