[PATCH] libstdc++: Fix gnu.ver CXXABI_1.3.16 for Solaris [PR118701]
Jonathan Wakely
jwakely@redhat.com
Tue Feb 4 13:08:29 GMT 2025
On Tue, 4 Feb 2025 at 12:48, Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote:
>
> This patch
>
> commit c6977f765838a5ca8d321d916221a7368622bdd9
> Author: Andreas Schwab <schwab@suse.de>
> Date: Tue Jan 21 23:50:15 2025 +0100
>
> libstdc++: correct symbol version of typeinfo for bfloat16_t on RISC-V
>
> broke the libstdc++-abi/abi_check test on Solaris: the log shows
>
> 1 incompatible symbols
> 0
> Argument "{CXXABI_1.3.15}" isn't numeric in numeric eq (==) at /vol/gcc/src/hg/master/local/libstdc++-v3/scripts/extract_symvers.pl line 129.
> version status: incompatible
> type: uncategorized
> status: added
>
> The problem has two parts:
>
> * The patch above introduced a new version in libstdc++.so,
> CXXABI_1.3.16, which everywhere but on RISC-V contains no symbols (a
> weak version). This is the first time this happened in libstdc++.
>
> * Solaris uses scripts/extract_symvers.pl to determine the version info.
> The script currently chokes on the pvs output for weak versions:
>
> libstdc++.so.6.0.34 - CXXABI_1.3.16 [WEAK]: {CXXABI_1.3.15};
>
> instead of
>
> libstdc++.so.6.0.34 - CXXABI_1.3.16: {CXXABI_1.3.15};
>
> While this patch hardens the script to cope with weak versions, there's
> no reason to introduce them in the first place. So the new version is
> only created on __riscv.
>
> Tested on i386-pc-solaris2.11, sparc-sun-solaris2.11, and
> x86_64-pc-linux-gnu.
>
> Ok for trunk?
I think this will cause check-abi failures on risc-v because the new
symbols are added to CXXABI_1.3.16 but the "latest_p" map says that
new symbols (i.e. ones not present in the baseline_symbols.txt file)
should be in CXXABI_1.3.15
So either this needs another change to testsuite_abi.cc (I think I
gave the required change in the bugzilla PR) or somebody needs to
regenerate baseline_symbols.txt for risc-v, so that there are no "new"
symbols.
More information about the Libstdc++
mailing list