ABI baselines, --enable-clocale choices, and that AC_TRY_RUN test
Phil Edwards
phil@jaj.com
Thu Sep 5 11:39:00 GMT 2002
I've changed abi_check.cc so that it can generate baseline_symbols files.
I'm trying to make sure it's not doing anything stupid, and in testing it,
kept seeing 61 symbols mangled differently.
Turns out that my system, for some reason, is failing the check in
GLIBCPP_ENABLE_CLOCALE:
dnl Probe for locale support if no specific model is specified.
dnl Default to "generic"
[...]
# Test for bugs early in glibc-2.2.x series
if test x$enable_clocale_flag = xgnu; then
AC_TRY_RUN([
[...]
],
[enable_clocale_flag=gnu],[enable_clocale_flag=generic],
[enable_clocale_flag=generic])
Don't know what the bug is, but if I try it manually, the executable
segfaults. So, "generic" it is.
As a result, __c_locale gets typedef'd to int* rather than __locale_struct*,
and the i686 baseline symbols file contains, e.g.,
_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj
whereas mine has
_ZNSt10moneypunctIcLb0EEC1EPiPKcj
(I'm trying a build now on another system that should be able to support
--enable-clocale=gnu, if it works I'll test the baseline stuff there first.)
Before I start renaming things, what are some of the common config options
that changes the ABI /within/ a platform? Loren's already found changes
wrt to --enable-threads:
http://gcc.gnu.org/ml/libstdc++/2002-08/msg00227.html
This is starting to sound like another multilibs-style mess: for a given
triplet, we have multiple combinations of commonly used --enables that
each result in a different baseline_symbols.txt file.
Phil
--
I would therefore like to posit that computing's central challenge, viz. "How
not to make a mess of it," has /not/ been met.
- Edsger Dijkstra, 1930-2002
More information about the Libstdc++
mailing list