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

Reply via email to