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.

Reply via email to