[PATCH, libstdc++]: Export _ZNSt14numeric_limitsIgE12max_digits10E@@GLIBCXX_LDBL_3.4.14
Jakub Jelinek
jakub@redhat.com
Tue Mar 22 10:44:00 GMT 2011
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 <ubizjak@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
More information about the Gcc-patches
mailing list