On Tue, Mar 22, 2011 at 11:25:28AM +0100, Uros Bizjak wrote: > std::numeric_limits<__float128>::max_digits10 long double export > should probably match other max_digits10 functions. At least alpha abi > check complains on incompatible added symbol without this patch. > > 2011-03-22 Uros Bizjak <ubiz...@gmail.com> > > * config/os/gnu-linux/ldbl-extra.ver: Export > _ZNSt14numeric_limitsIgE12max_digits10E@@GLIBCXX_LDBL_3.4.14 > * testsuite/util/testsuite_abi.cc (check_version): Support > GLIBCXX_LDBL_3.4.14.
The above is ABI incompatible change unfortunately. It was a mistake to add std::numeric_limits<long double>::max_digits10 for -mlong-double-128 targets (that previously defaulted to -mlong-double-64) to GLIBCXX_LDBL_3.4 rather than GLIBCXX_LDBL_3.4.14, but as gcc 4.5 has been already released with that bug, it is too late to remove the symbol from GLIBCXX_LDBL_3.4, as there might be programs/libraries using _ZNSt14numeric_limitsIgE12max_digits10E@GLIBCXX_LDBL_3.4. Furthermore, GLIBCXX_LDBL_3.4.14 symver shouldn't be added now that gcc 4.5 has been released already. IMHO you should just regenerate baseline_symbols.txt for alpha-linux. For 4.7, if Benjamin wants, we could play games with .symver and export it both as _ZNSt14numeric_limitsIgE12max_digits10E@GLIBCXX_LDBL_3.4 and _ZNSt14numeric_limitsIgE12max_digits10E@@GLIBCXX_LDBL_3.4.16 and also make sure _ZNSt14numeric_limitsIeE12max_digits10E@@GLIBCXX_3.4.16 is exported on those targets for users that still use -mlong-double-64. But for now I think just baseline_symbols.txt should be regenerated, both for alpha-linux-gnu and sparc-linux-gnu (perhaps leave out the TLS: lines like it is omitted from other Linux targets). David, could you please regenerate sparc-linux baseline_symbols.txt? My sparc box is dead for quite some time... Worst case for sparc we could apply something like following patch that would just make sure abi_check won't complain about the incompatible addition: --- libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt 2010-06-11 11:07:17.562409190 +0200 +++ libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt 2011-03-22 11:41:29.842419946 +0100 @@ -3244,6 +3244,7 @@ OBJECT:4:_ZNSt14numeric_limitsIfE6digits OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCXX_3.4 OBJECT:4:_ZNSt14numeric_limitsIgE10has_denormE@@GLIBCXX_LDBL_3.4 OBJECT:4:_ZNSt14numeric_limitsIgE11round_styleE@@GLIBCXX_LDBL_3.4 +OBJECT:4:_ZNSt14numeric_limitsIgE12max_digits10E@@GLIBCXX_LDBL_3.4 OBJECT:4:_ZNSt14numeric_limitsIgE12max_exponentE@@GLIBCXX_LDBL_3.4 OBJECT:4:_ZNSt14numeric_limitsIgE12min_exponentE@@GLIBCXX_LDBL_3.4 OBJECT:4:_ZNSt14numeric_limitsIgE14max_exponent10E@@GLIBCXX_LDBL_3.4 Jakub