https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114770
Bug ID: 114770 Summary: std::chrono::locate_zone("Asia/Chungking") fails on Debian Sid Product: gcc Version: 13.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- #include <chrono> int main() { (void) std::chrono::locate_zone("Asia/Chungking"); } With the latest tzdata (version 2024a-2) on Debian Sid this fails: terminate called after throwing an instance of 'std::runtime_error' what(): tzdb: cannot locate zone: Asia/Chungking Aborted (core dumped) The problem is a Debian patch that enables link chaining, so that one link can have another link as its target: https://sources.debian.org/patches/tzdata/2024a-2/ziguard.awk-Move-link-to-link-feature-from-vanguard-to-ma.patch/ This feature was added to tzdata in 2022, but isn't compatible with the expectations of the C++20 standard. When chrono::locate_zone finds a link, it expects its target to be a zone, not another link.