Build 76113 got riscv64 past _M_release_last_use_cold and stopped on the
next entry of the same kind:
hidden symbol `_ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE2EE
10_M_disposeEv' isn't defined
Guard it on !__riscv in the three files that assert it, same as before.
ld reports only the first undefined hidden symbol and then aborts, so every
stale entry costs a full riscv64 build -- about two days each. The spec
already runs exactly the right query,
readelf -Ws ...libstdc++_nonshared%{nonsharedver}.a | grep HIDDEN.*UND
but only after the link that fails, so its output never appears. Run it up
front as well, right after entering libstdc++_compat_test. It ends in
"|| :" and cannot fail the build, and it makes the next build report every
remaining entry at once instead of one per attempt.
Local reproduction is not a substitute here: a small shared_ptr test does
show riscv64 omitting _M_release_last_use_cold where aarch64 emits it, but
it does not instantiate _Sp_counted_ptr<nullptr_t>::_M_dispose on either
arch, so which symbols a real nonshared TU emits can only be read off the
build itself.