On Wed, 7 Oct 2026 at 12:23, Tomasz Kamiński <[email protected]> wrote:
>
> Import the new 2026e 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 (chrono::<unnamed>::fixed_expiry): Likewise.
> * src/c++20/tzdata.zi: Import new file from 2026e release.
> ---
> Throughtfully tested on x86_64-linux.
> OK for trunk/16? For 15/14 I will send modified patch, as we changed
> implementation a bit.
OK for trunk and 16.
>
> libstdc++-v3/include/std/chrono | 2 +-
> libstdc++-v3/src/c++20/tzdata.zi | 189 +++++++------------------------
> libstdc++-v3/src/c++20/tzdb.cc | 4 +-
> 3 files changed, 46 insertions(+), 149 deletions(-)
>
> diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono
> index 4116f1c815e..faa849b75b3 100644
> --- a/libstdc++-v3/include/std/chrono
> +++ b/libstdc++-v3/include/std/chrono
> @@ -3255,7 +3255,7 @@ namespace __detail
>
> // The list above is known to be valid until (at least) this date
> // and only contains positive leap seconds.
> - constexpr sys_seconds __expires(1798416000s); // 2026-12-28 00:00:00
> UTC
> + constexpr sys_seconds __expires(1814140800s); // 2027-06-28 00:00:00
> UTC
>
> if (__ss > __expires)
> {
> diff --git a/libstdc++-v3/src/c++20/tzdata.zi
> b/libstdc++-v3/src/c++20/tzdata.zi
> index 53082964703..7ac5fe703a8 100644
> --- a/libstdc++-v3/src/c++20/tzdata.zi
> +++ b/libstdc++-v3/src/c++20/tzdata.zi
> @@ -1,4 +1,4 @@
> -# version 2026b
> +# version 2026e
> # redo posix_only
> # This zic input file is in the public domain.
> R d 1916 o - Jun 14 23s 1 S
> @@ -135,132 +135,6 @@ R M 2025 o - F 23 3 -1 -
> R M 2025 o - Ap 6 2 0 -
> R M 2026 o - F 15 3 -1 -
> R M 2026 o - Mar 22 2 0 -
> -R M 2027 o - F 7 3 -1 -
> -R M 2027 o - Mar 14 2 0 -
> -R M 2028 o - Ja 23 3 -1 -
> -R M 2028 o - Mar 5 2 0 -
> -R M 2029 o - Ja 14 3 -1 -
> -R M 2029 o - F 18 2 0 -
> -R M 2029 o - D 30 3 -1 -
> -R M 2030 o - F 10 2 0 -
> -R M 2030 o - D 22 3 -1 -
> -R M 2031 o - Ja 26 2 0 -
> -R M 2031 o - D 14 3 -1 -
> -R M 2032 o - Ja 18 2 0 -
> -R M 2032 o - N 28 3 -1 -
> -R M 2033 o - Ja 9 2 0 -
> -R M 2033 o - N 20 3 -1 -
> -R M 2033 o - D 25 2 0 -
> -R M 2034 o - N 5 3 -1 -
> -R M 2034 o - D 17 2 0 -
> -R M 2035 o - O 28 3 -1 -
> -R M 2035 o - D 9 2 0 -
> -R M 2036 o - O 19 3 -1 -
> -R M 2036 o - N 23 2 0 -
> -R M 2037 o - O 4 3 -1 -
> -R M 2037 o - N 15 2 0 -
> -R M 2038 o - S 26 3 -1 -
> -R M 2038 o - O 31 2 0 -
> -R M 2039 o - S 18 3 -1 -
> -R M 2039 o - O 23 2 0 -
> -R M 2040 o - S 2 3 -1 -
> -R M 2040 o - O 14 2 0 -
> -R M 2041 o - Au 25 3 -1 -
> -R M 2041 o - S 29 2 0 -
> -R M 2042 o - Au 10 3 -1 -
> -R M 2042 o - S 21 2 0 -
> -R M 2043 o - Au 2 3 -1 -
> -R M 2043 o - S 13 2 0 -
> -R M 2044 o - Jul 24 3 -1 -
> -R M 2044 o - Au 28 2 0 -
> -R M 2045 o - Jul 9 3 -1 -
> -R M 2045 o - Au 20 2 0 -
> -R M 2046 o - Jul 1 3 -1 -
> -R M 2046 o - Au 5 2 0 -
> -R M 2047 o - Jun 23 3 -1 -
> -R M 2047 o - Jul 28 2 0 -
> -R M 2048 o - Jun 7 3 -1 -
> -R M 2048 o - Jul 19 2 0 -
> -R M 2049 o - May 30 3 -1 -
> -R M 2049 o - Jul 4 2 0 -
> -R M 2050 o - May 15 3 -1 -
> -R M 2050 o - Jun 26 2 0 -
> -R M 2051 o - May 7 3 -1 -
> -R M 2051 o - Jun 18 2 0 -
> -R M 2052 o - Ap 28 3 -1 -
> -R M 2052 o - Jun 2 2 0 -
> -R M 2053 o - Ap 13 3 -1 -
> -R M 2053 o - May 25 2 0 -
> -R M 2054 o - Ap 5 3 -1 -
> -R M 2054 o - May 10 2 0 -
> -R M 2055 o - Mar 28 3 -1 -
> -R M 2055 o - May 2 2 0 -
> -R M 2056 o - Mar 12 3 -1 -
> -R M 2056 o - Ap 23 2 0 -
> -R M 2057 o - Mar 4 3 -1 -
> -R M 2057 o - Ap 8 2 0 -
> -R M 2058 o - F 17 3 -1 -
> -R M 2058 o - Mar 31 2 0 -
> -R M 2059 o - F 9 3 -1 -
> -R M 2059 o - Mar 23 2 0 -
> -R M 2060 o - F 1 3 -1 -
> -R M 2060 o - Mar 7 2 0 -
> -R M 2061 o - Ja 16 3 -1 -
> -R M 2061 o - F 27 2 0 -
> -R M 2062 o - Ja 8 3 -1 -
> -R M 2062 o - F 12 2 0 -
> -R M 2062 o - D 31 3 -1 -
> -R M 2063 o - F 4 2 0 -
> -R M 2063 o - D 16 3 -1 -
> -R M 2064 o - Ja 27 2 0 -
> -R M 2064 o - D 7 3 -1 -
> -R M 2065 o - Ja 11 2 0 -
> -R M 2065 o - N 22 3 -1 -
> -R M 2066 o - Ja 3 2 0 -
> -R M 2066 o - N 14 3 -1 -
> -R M 2066 o - D 26 2 0 -
> -R M 2067 o - N 6 3 -1 -
> -R M 2067 o - D 11 2 0 -
> -R M 2068 o - O 21 3 -1 -
> -R M 2068 o - D 2 2 0 -
> -R M 2069 o - O 13 3 -1 -
> -R M 2069 o - N 17 2 0 -
> -R M 2070 o - O 5 3 -1 -
> -R M 2070 o - N 9 2 0 -
> -R M 2071 o - S 20 3 -1 -
> -R M 2071 o - N 1 2 0 -
> -R M 2072 o - S 11 3 -1 -
> -R M 2072 o - O 16 2 0 -
> -R M 2073 o - Au 27 3 -1 -
> -R M 2073 o - O 8 2 0 -
> -R M 2074 o - Au 19 3 -1 -
> -R M 2074 o - S 30 2 0 -
> -R M 2075 o - Au 11 3 -1 -
> -R M 2075 o - S 15 2 0 -
> -R M 2076 o - Jul 26 3 -1 -
> -R M 2076 o - S 6 2 0 -
> -R M 2077 o - Jul 18 3 -1 -
> -R M 2077 o - Au 22 2 0 -
> -R M 2078 o - Jul 10 3 -1 -
> -R M 2078 o - Au 14 2 0 -
> -R M 2079 o - Jun 25 3 -1 -
> -R M 2079 o - Au 6 2 0 -
> -R M 2080 o - Jun 16 3 -1 -
> -R M 2080 o - Jul 21 2 0 -
> -R M 2081 o - Jun 1 3 -1 -
> -R M 2081 o - Jul 13 2 0 -
> -R M 2082 o - May 24 3 -1 -
> -R M 2082 o - Jun 28 2 0 -
> -R M 2083 o - May 16 3 -1 -
> -R M 2083 o - Jun 20 2 0 -
> -R M 2084 o - Ap 30 3 -1 -
> -R M 2084 o - Jun 11 2 0 -
> -R M 2085 o - Ap 22 3 -1 -
> -R M 2085 o - May 27 2 0 -
> -R M 2086 o - Ap 14 3 -1 -
> -R M 2086 o - May 19 2 0 -
> -R M 2087 o - Mar 30 3 -1 -
> -R M 2087 o - May 11 2 0 -
> R NA 1994 o - Mar 21 0 -1 WAT
> R NA 1994 2017 - S Su>=1 2 0 CAT
> R NA 1995 2017 - Ap Su>=1 2 -1 WAT
> @@ -390,7 +264,7 @@ R i 1977 o - Mar 21 23 1 -
> R i 1977 o - O 20 24 0 -
> R i 1978 o - Mar 24 24 1 -
> R i 1978 o - Au 5 1 0 -
> -R i 1979 o - May 26 24 1 -
> +R i 1979 o - May 26 0 1 -
> R i 1979 o - S 18 24 0 -
> R i 1980 o - Mar 20 24 1 -
> R i 1980 o - S 22 24 0 -
> @@ -1989,7 +1863,7 @@ R x 2019 ma - Ap Su>=2 3u 0 -
> R x 2019 2021 - S Su>=2 4u 1 -
> R x 2022 o - S Su>=9 4u 1 -
> R x 2023 ma - S Su>=2 4u 1 -
> -R CO 1992 o - May 3 0 1 -
> +R CO 1992 o - May 2 0 1 -
> R CO 1993 o - F 6 24 0 -
> R EC 1992 o - N 28 0 1 -
> R EC 1993 o - F 5 0 0 -
> @@ -2085,6 +1959,19 @@ R U 2005 o - Mar 27 2 0 -
> R U 2005 o - O 9 2 1 -
> R U 2006 2015 - Mar Su>=8 2 0 -
> R U 2006 2014 - O Su>=1 2 1 -
> +R US 1918 1919 - Mar lastSu 2 1 D
> +R US 1918 1919 - O lastSu 2 0 S
> +R US 1942 o - F 9 2 1 D
> +R US 1945 o - Au 14 23u 1 D
> +R US 1945 o - S 30 2 0 S
> +R US 1967 2006 - O lastSu 2 0 S
> +R US 1967 1973 - Ap lastSu 2 1 D
> +R US 1974 o - Ja 6 2 1 D
> +R US 1975 o - F lastSu 2 1 D
> +R US 1976 1986 - Ap lastSu 2 1 D
> +R US 1987 2006 - Ap Su>=1 2 1 D
> +R US 2007 ma - Mar Su>=8 2 1 D
> +R US 2007 ma - N Su>=1 2 0 S
> Z Africa/Abidjan -0:16:8 - LMT 1912
> 0 - GMT
> Z Africa/Algiers 0:12:12 - LMT 1891 Mar 16
> @@ -2106,7 +1993,8 @@ Z Africa/Casablanca -0:30:20 - LMT 1913 O 26
> 0 M %z 1984 Mar 16
> 1 - %z 1986
> 0 M %z 2018 O 28 3
> -1 M %z
> +1 M %z 2026 S 20 2
> +0 - %z
> Z Africa/Ceuta -0:21:16 - LMT 1901 Ja 1 0u
> 0 - WET 1918 May 6 23
> 0 1 WEST 1918 O 7 23
> @@ -2119,7 +2007,8 @@ Z Africa/Ceuta -0:21:16 - LMT 1901 Ja 1 0u
> Z Africa/El_Aaiun -0:52:48 - LMT 1934
> -1 - %z 1976 Ap 14
> 0 M %z 2018 O 28 3
> -1 M %z
> +1 M %z 2026 S 20 2
> +0 - %z
> Z Africa/Johannesburg 1:52 - LMT 1892 F 8
> 1:30 - SAST 1903 Mar
> 2 SA SAST
> @@ -2175,7 +2064,7 @@ Z Africa/Windhoek 1:8:24 - LMT 1892 F 8
> 2 1 SAST 1943 Mar 21 2
> 2 - SAST 1990 Mar 21
> 2 NA %s
> -Z America/Adak 12:13:22 - LMT 1867 O 19 12:44:35
> +Z America/Adak 12:13:22 - LMT 1867 O 19 0:31:13u
> -11:46:38 - LMT 1900 Au 20 12
> -11 - NST 1942
> -11 u N%sT 1946
> @@ -2184,7 +2073,7 @@ Z America/Adak 12:13:22 - LMT 1867 O 19 12:44:35
> -11 u B%sT 1983 O 30 2
> -10 u AH%sT 1983 N 30
> -10 u H%sT
> -Z America/Anchorage 14:0:24 - LMT 1867 O 19 14:31:37
> +Z America/Anchorage 14:0:24 - LMT 1867 O 19 0:31:13u
> -9:59:36 - LMT 1900 Au 20 12
> -10 - AST 1942
> -10 u A%sT 1967 Ap
> @@ -2483,7 +2372,9 @@ Z America/Detroit -5:32:11 - LMT 1905
> -5 u E%sT
> Z America/Edmonton -7:33:52 - LMT 1906 S
> -7 Ed M%sT 1987
> --7 C M%sT
> +-7 C M%sT 2026 Jun 18
> +-7 C MDT 2026 N 1 2
> +-6 - CST
> Z America/Eirunepe -4:39:28 - LMT 1914
> -5 B %z 1988 S 12
> -5 - %z 1993 S 28
> @@ -2624,7 +2515,9 @@ Z America/Indiana/Winamac -5:46:25 - LMT 1883 N 18 18u
> Z America/Inuvik 0 - -00 1953
> -8 Y P%sT 1979 Ap lastSu 2
> -7 Y M%sT 1980
> --7 C M%sT
> +-7 C M%sT 2026 Au 21
> +-7 C MDT 2026 N 1 2
> +-6 - CST
> Z America/Iqaluit 0 - -00 1942 Au
> -5 Y E%sT 1999 O 31 2
> -6 C C%sT 2000 O 29 2
> @@ -2634,7 +2527,7 @@ Z America/Jamaica -5:7:10 - LMT 1890
> -5 - EST 1974
> -5 u E%sT 1984
> -5 - EST
> -Z America/Juneau 15:2:19 - LMT 1867 O 19 15:33:32
> +Z America/Juneau 15:2:19 - LMT 1867 O 19 0:31:13u
> -8:57:41 - LMT 1900 Au 20 12
> -8 - PST 1942
> -8 u P%sT 1946
> @@ -2718,7 +2611,7 @@ Z America/Merida -5:58:28 - LMT 1922 Ja 1 6u
> -6 - CST 1981 D 26 2
> -5 - EST 1982 N 2 2
> -6 m C%sT
> -Z America/Metlakatla 15:13:42 - LMT 1867 O 19 15:44:55
> +Z America/Metlakatla 15:13:42 - LMT 1867 O 19 0:31:13u
> -8:46:18 - LMT 1900 Au 20 12
> -8 - PST 1942
> -8 u P%sT 1946
> @@ -2772,7 +2665,7 @@ Z America/New_York -4:56:2 - LMT 1883 N 18 17u
> -5 u E%sT 1946
> -5 NY E%sT 1967
> -5 u E%sT
> -Z America/Nome 12:58:22 - LMT 1867 O 19 13:29:35
> +Z America/Nome 12:58:22 - LMT 1867 O 19 0:31:13u
> -11:1:38 - LMT 1900 Au 20 12
> -11 - NST 1942
> -11 u N%sT 1946
> @@ -2910,7 +2803,7 @@ Z America/Scoresbysund -1:27:52 - LMT 1916 Jul 28
> -2 c %z 1981 Mar 29
> -1 E %z 2024 Mar 31
> -2 E %z
> -Z America/Sitka 14:58:47 - LMT 1867 O 19 15:30
> +Z America/Sitka 14:58:47 - LMT 1867 O 19 0:31:13u
> -9:1:13 - LMT 1900 Au 20 12
> -8 - PST 1942
> -8 u P%sT 1946
> @@ -2967,7 +2860,7 @@ Z America/Toronto -5:17:32 - LMT 1895
> Z America/Vancouver -8:12:28 - LMT 1884
> -8 Va P%sT 1987
> -8 C P%sT 2026 Mar 9
> --8 1 PDT 2026 N 1 2
> +-8 C PDT 2026 N 1 2
> -7 - MST
> Z America/Whitehorse -9:0:12 - LMT 1900 Au 20
> -9 Y Y%sT 1965
> @@ -2977,8 +2870,10 @@ Z America/Whitehorse -9:0:12 - LMT 1900 Au 20
> -7 - MST
> Z America/Winnipeg -6:28:36 - LMT 1887 Jul 16
> -6 W C%sT 2006
> --6 C C%sT
> -Z America/Yakutat 14:41:5 - LMT 1867 O 19 15:12:18
> +-6 C C%sT 2026 O 31
> +-6 C CDT 2026 N 1 2
> +-5 - EST
> +Z America/Yakutat 14:41:5 - LMT 1867 O 19 0:31:13u
> -9:18:55 - LMT 1900 Au 20 12
> -9 - YST 1942
> -9 u Y%sT 1946
> @@ -3579,6 +3474,8 @@ Z Australia/Perth 7:43:24 - LMT 1895 D
> Z Australia/Sydney 10:4:52 - LMT 1895 F
> 10 AU AE%sT 1971
> 10 AN AE%sT
> +Z CST6CDT -6 US C%sT
> +Z EST5EDT -5 US E%sT
> Z Etc/GMT 0 - GMT
> Z Etc/GMT+1 -1 - %z
> Z Etc/GMT+10 -10 - %z
> @@ -3675,6 +3572,8 @@ Z Europe/Dublin -0:25:21 - LMT 1880 Au 2
> -0:25:21 - DMT 1916 May 21 2s
> -0:25:21 1 IST 1916 O 1 2s
> 0 G %s 1921 D 6
> +0 G GMT/IST 1925 S Su>=16 2s
> +0 - GMT 1926
> 0 G GMT/IST 1940 F 25 2s
> 0 1 IST 1946 O 6 2s
> 0 - GMT 1947 Mar 16 2s
> @@ -3929,6 +3828,8 @@ Z Indian/Maldives 4:54 - LMT 1880
> 5 - %z
> Z Indian/Mauritius 3:50 - LMT 1907
> 4 MU %z
> +Z MST7MDT -7 US M%sT
> +Z PST8PDT -8 US P%sT
> Z Pacific/Apia 12:33:4 - LMT 1892 Jul 5
> -11:26:56 - LMT 1911
> -11:30 - %z 1950
> @@ -4059,7 +3960,6 @@ L America/Noronha Brazil/DeNoronha
> L America/Sao_Paulo Brazil/East
> L America/Manaus Brazil/West
> L Europe/Brussels CET
> -L America/Chicago CST6CDT
> L America/Halifax Canada/Atlantic
> L America/Winnipeg Canada/Central
> L America/Toronto Canada/Eastern
> @@ -4073,7 +3973,6 @@ L Pacific/Easter Chile/EasterIsland
> L America/Havana Cuba
> L Europe/Athens EET
> L America/Panama EST
> -L America/New_York EST5EDT
> L Africa/Cairo Egypt
> L Europe/Dublin Eire
> L Etc/GMT Etc/GMT+0
> @@ -4099,7 +3998,6 @@ L Pacific/Kwajalein Kwajalein
> L Africa/Tripoli Libya
> L Europe/Brussels MET
> L America/Phoenix MST
> -L America/Denver MST7MDT
> L America/Tijuana Mexico/BajaNorte
> L America/Mazatlan Mexico/BajaSur
> L America/Mexico_City Mexico/General
> @@ -4297,6 +4195,5 @@ L Atlantic/Faroe Atlantic/Faeroe
> L Europe/Kyiv Europe/Kiev
> L Asia/Nicosia Europe/Nicosia
> L Pacific/Honolulu HST
> -L America/Los_Angeles PST8PDT
> L Pacific/Guadalcanal Pacific/Ponape
> L Pacific/Port_Moresby Pacific/Truk
> diff --git a/libstdc++-v3/src/c++20/tzdb.cc b/libstdc++-v3/src/c++20/tzdb.cc
> index 0ffb3c014d1..fddfa38b32d 100644
> --- a/libstdc++-v3/src/c++20/tzdb.cc
> +++ b/libstdc++-v3/src/c++20/tzdb.cc
> @@ -1505,8 +1505,8 @@ constexpr leap_second tzdb_list::_Node::fixed_leaps[] {
> namespace
> {
> // The expiry date corresponding to the list above.
> - // tzdata 2026a leapseconds list expires at 2026-12-28 00:00:00 UTC
> - constexpr seconds fixed_expiry{1798416000u};
> + // tzdata 2026e leapseconds list expires at 2027-06-28 00:00:00 UTC
> + constexpr seconds fixed_expiry{1814140800};
This drops the 'u' suffix but that's an improvement ... I don't
remember why it was there anyway.
> }
>
> // This holds the most up-to-date number of leap seconds known at runtime.
> --
> 2.55.0
>