https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108235
--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to John David Anglin from comment #10) > No. We still have the following symbols in tzdb.o: > U __atomic_compare_exchange_4 > U __atomic_fetch_add_4 Oh the time_zone::_Impl::rules_counter atomic counter is still used even if not lock-free. I can fix that. > U __atomic_fetch_add_8 > U __atomic_fetch_sub_8 Ah, these are caused by __detail::__platform_wait_t being uint64_t, which will be changed soon by https://gcc.gnu.org/pipermail/gcc-patches/2023-January/609479.html That would mean we only need 4-byte atomics, but if I stop using time_zone::_Impl::rules_counter for this target, we won't need that either. > > There was this warning compiling tzdb.o: > ../../../../../gcc/libstdc++-v3/src/c++20/tzdb.cc: In function 'std::string > std::chrono::{anonymous}::zoneinfo_dir()': > ../../../../../gcc/libstdc++-v3/src/c++20/tzdb.cc:983:44: warning: the > address of 'const char* __gnu_cxx::zoneinfo_dir_override()' will never be > NULL [-Waddress] > 983 | static const string dir = __gnu_cxx::zoneinfo_dir_override > | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ > ../../../../../gcc/libstdc++-v3/src/c++20/tzdb.cc:77:29: note: 'const char* > __gnu_cxx::zoneinfo_dir_override()' declared here > 77 | [[gnu::weak]] const char* zoneinfo_dir_override() > | ^~~~~~~~~~~~~~~~~~~~~ Harmless, it's just because we added the definition of that weak symbol, so now it's never null. I'll add a #pragma to ignore -Waddress there.