https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104167

--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>:

https://gcc.gnu.org/g:f2eb6132c6951edf7960a82828c571a1b98a1a09

commit r14-3616-gf2eb6132c6951edf7960a82828c571a1b98a1a09
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Thu Aug 31 18:31:32 2023 +0100

    libstdc++: Avoid useless dependency on read_symlink from tzdb

    chrono::tzdb::current_zone uses filesystem::read_symlink, which creates
    a dependency on the fs_ops.o object in libstdc++.a, which then creates
    dependencies on several OS functions if --gc-sections isn't used. For
    more details see PR libstdc++/104167 comment 8 and comment 11.

    In the cases where that causes linker failures, we probably don't have
    readlink anyway, so the filesystem::read_symlink call will always fail.
    Repeat the preprocessor conditions for filesystem::read_symlink in the
    body of chrono::tzdb::current_zone so that we don't create a
    dependency on fs_ops.o for a function that will always fail.

    libstdc++-v3/ChangeLog:

            * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
            for POSIX readlink before using filesystem::read_symlink.

Reply via email to