On Tue, Dec 16, 2025 at 11:16 AM Jonathan Wakely <[email protected]> wrote:

> Import the new 2025c tzdata.zi file and new leapseconds expiry date.
>
> libstdc++-v3/ChangeLog:
>
>         * include/std/chrono (chrono::__detail::__get_leap_second_info):
>         Update expiry date for leap seconds list.
>         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds):
>         Likewise.
>         * src/c++20/tzdata.zi: Import new file from 2025c release.
> ---
>
> Tested x86_64-linux (on Fedora and RHEL 10 with updated tzdata RPMs
> installed).
>
LGTM. Do we backport the tzdb updates to older releases? It seem reasonable
to do so.

>
>  libstdc++-v3/include/std/chrono  | 2 +-
>  libstdc++-v3/src/c++20/tzdata.zi | 6 ++----
>  libstdc++-v3/src/c++20/tzdb.cc   | 4 ++--
>  3 files changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/libstdc++-v3/include/std/chrono
> b/libstdc++-v3/include/std/chrono
> index 3e0cf42e5491..76fc8de24f00 100644
> --- a/libstdc++-v3/include/std/chrono
> +++ b/libstdc++-v3/include/std/chrono
> @@ -3240,7 +3240,7 @@ namespace __detail
>        };
>        // The list above is known to be valid until (at least) this date
>        // and only contains positive leap seconds.
> -      const sys_seconds __expires(1766880000s); // 2025-12-28 00:00:00 UTC
> +      constexpr sys_seconds __expires(1782604800s); // 2026-06-28
> 00:00:00 UTC
>
>  #if _GLIBCXX_USE_CXX11_ABI || ! _GLIBCXX_USE_DUAL_ABI
>        if (__ss > __expires)
> diff --git a/libstdc++-v3/src/c++20/tzdata.zi
> b/libstdc++-v3/src/c++20/tzdata.zi
> index a7fb52f1968f..c56f67c02f6d 100644
> --- a/libstdc++-v3/src/c++20/tzdata.zi
> +++ b/libstdc++-v3/src/c++20/tzdata.zi
> @@ -1,4 +1,4 @@
> -# version 2025b
> +# version 2025c
>  # This zic input file is in the public domain.
>  R d 1916 o - Jun 14 23s 1 S
>  R d 1916 1919 - O Su>=1 23s 0 -
> @@ -2951,9 +2951,7 @@ Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 7u
>  -8 1 PDT 1951 S 30 2
>  -8 - PST 1952 Ap 27 2
>  -8 1 PDT 1952 S 28 2
> --8 - PST 1954
> --8 CA P%sT 1961
> --8 - PST 1976
> +-8 CA P%sT 1967
>  -8 u P%sT 1996
>  -8 m P%sT 2001
>  -8 u P%sT 2002 F 20
> diff --git a/libstdc++-v3/src/c++20/tzdb.cc
> b/libstdc++-v3/src/c++20/tzdb.cc
> index d79b61ad673f..77b283fb6990 100644
> --- a/libstdc++-v3/src/c++20/tzdb.cc
> +++ b/libstdc++-v3/src/c++20/tzdb.cc
> @@ -1245,8 +1245,8 @@ namespace std::chrono
>    pair<vector<leap_second>, bool>
>    tzdb_list::_Node::_S_read_leap_seconds()
>    {
> -    // This list is valid until at least 2025-12-28 00:00:00 UTC.
> -    auto expires = sys_days{2025y/12/28};
> +    // This list is valid until at least 2026-06-28 00:00:00 UTC.
> +    constexpr auto expires = sys_days{2026y/06/28};
>      vector<leap_second> leaps
>      {
>        (leap_second)  78796800, // 1 Jul 1972
> --
> 2.52.0
>
>

Reply via email to