diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index 84ce874fe03663eba1648ab59b10306333339766..adadc62e3533959a6d0d0c439d2e776d227aeb50 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -2874,15 +2874,15 @@ CXXABI_1.3.15 { } CXXABI_1.3.14; +#ifdef __riscv CXXABI_1.3.16 { -#ifdef __riscv _ZTIDF16b; _ZTIPDF16b; _ZTIPKDF16b; -#endif } CXXABI_1.3.15; +#endif # Symbols in the support library (libsupc++) supporting transactional memory. CXXABI_TM_1 { diff --git a/libstdc++-v3/scripts/extract_symvers.pl b/libstdc++-v3/scripts/extract_symvers.pl index e0e6e5b70c4a75b62cc3f03f414305f9b4a2de2a..fb18e11a1b3ef5caa159193c7ea0a2b1caf353c9 100644 --- a/libstdc++-v3/scripts/extract_symvers.pl +++ b/libstdc++-v3/scripts/extract_symvers.pl @@ -34,8 +34,18 @@ while (<PVS>) { # Remove trailing semicolon. s/;$//; - # shared object, dash, version, symbol, [size] - (undef, undef, $version, $symbol, $size) = split; + if (/\[WEAK\]/) { + # Allow for weak versions like + # libstdc++.so.6.0.34 - CXXABI_1.3.16 [WEAK]: {CXXABI_1.3.15}; + # + # shared object, dash, version "[WEAK]", symbol, [size] + (undef, undef, $version, undef, $symbol, $size) = split; + } else { + # libstdc++.so.6.0.34 - CXXABI_1.3.16: {CXXABI_1.3.15}; + # + # shared object, dash, version, symbol, [size] + (undef, undef, $version, $symbol, $size) = split; + } # Remove colon separator from version field. $version =~ s/:$//; diff --git a/libstdc++-v3/testsuite/util/testsuite_abi.cc b/libstdc++-v3/testsuite/util/testsuite_abi.cc index 0d6080fb92c0d1541a9d841c675678e6d9159d67..1b4044c9518881bc9f42898b5c6acf60696fd84c 100644 --- a/libstdc++-v3/testsuite/util/testsuite_abi.cc +++ b/libstdc++-v3/testsuite/util/testsuite_abi.cc @@ -237,7 +237,9 @@ check_version(symbol& test, bool added) known_versions.push_back("CXXABI_1.3.13"); known_versions.push_back("CXXABI_1.3.14"); known_versions.push_back("CXXABI_1.3.15"); +#ifdef __riscv known_versions.push_back("CXXABI_1.3.16"); +#endif known_versions.push_back("CXXABI_IEEE128_1.3.13"); known_versions.push_back("CXXABI_TM_1"); known_versions.push_back("CXXABI_FLOAT128");