Sync from SUSE:SLFO:1.1 gcc14 revision ad500abdbe06fbf7f812a849f2fb7fd6
This commit is contained in:
parent
ef3ad5e9a2
commit
86fb456bdc
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -124,6 +124,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -252,7 +253,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -321,7 +322,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -124,6 +124,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -252,7 +253,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -321,7 +322,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -124,6 +124,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -252,7 +253,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -321,7 +322,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -124,6 +124,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -252,7 +253,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -321,7 +322,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -123,6 +123,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -251,7 +252,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
@ -320,7 +321,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
@ -164,7 +164,7 @@ ExcludeArch: %{cross_arch}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
|
||||
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
|
||||
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
|
||||
%endif
|
||||
%define _binary_payload w.ufdio
|
||||
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
|
||||
|
@ -366,6 +366,7 @@ Patch16: gcc9-reproducible-builds.patch
|
||||
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
|
||||
Patch19: gcc11-gdwarf-4-default.patch
|
||||
Patch20: gcc13-pr101523.patch
|
||||
Patch21: gcc14-pr116657.patch
|
||||
# A set of patches from the RH srpm
|
||||
Patch51: gcc41-ppc32-retaddr.patch
|
||||
# Some patches taken from Debian
|
||||
@ -1336,7 +1337,7 @@ ln -s newlib-4.4.0.20231231/newlib .
|
||||
%if %{suse_version} < 1550
|
||||
%patch -p1 -P 19
|
||||
%endif
|
||||
%patch -p1 -P 20
|
||||
%patch -p1 -P 20 -P 21
|
||||
%patch -P 51
|
||||
%patch -p1 -P 60 -P 61
|
||||
|
||||
|
566
gcc14-pr116657.patch
Normal file
566
gcc14-pr116657.patch
Normal file
@ -0,0 +1,566 @@
|
||||
From ab884fffe3fc82a710bea66ad651720d71c938b8 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Biener <rguenther@suse.de>
|
||||
Date: Tue, 30 Apr 2024 09:52:13 +0100
|
||||
Subject: [PATCH] libstdc++: Fix std::chrono::tzdb to work with vanguard format
|
||||
To: gcc-patches@gcc.gnu.org
|
||||
|
||||
From: Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
I found some issues in the std::chrono::tzdb parser by testing the
|
||||
tzdata "vanguard" format, which uses new features that aren't enabled in
|
||||
the "main" and "rearguard" data formats.
|
||||
|
||||
Since 2024a the keyword "minimum" is no longer valid for the FROM and TO
|
||||
fields in a Rule line, which means that "m" is now a valid abbreviation
|
||||
for "maximum". Previously we expected either "mi" or "ma". For backwards
|
||||
compatibility, a FROM field beginning with "mi" is still supported and
|
||||
is treated as 1900. The "maximum" keyword is only allowed in TO now,
|
||||
because it makes no sense in FROM. To support these changes the
|
||||
minmax_year and minmax_year2 classes for parsing FROM and TO are
|
||||
replaced with a single years_from_to class that reads both fields.
|
||||
|
||||
The vanguard format makes use of %z in Zone FORMAT fields, which caused
|
||||
an exception to be thrown from ZoneInfo::set_abbrev because no % or /
|
||||
characters were expected when a Zone doesn't use a named Rule. The
|
||||
ZoneInfo::to(sys_info&) function now uses format_abbrev_str to replace
|
||||
any %z with the current offset. Although format_abbrev_str also checks
|
||||
for %s and STD/DST formats, those only make sense when a named Rule is
|
||||
in effect, so won't occur when ZoneInfo::to(sys_info&) is used.
|
||||
|
||||
Since making this change on trunk, the tzdata-2024b release started
|
||||
using %z in the main format, not just vanguard. This makes a backport to
|
||||
release branches necessary (see PR 116657).
|
||||
|
||||
This change also implements a feature that has always been missing from
|
||||
time_zone::_M_get_sys_info: finding the Rule that is active before the
|
||||
specified time point, so that we can correctly handle %s in the FORMAT
|
||||
for the first new sys_info that gets created. This requires implementing
|
||||
a poorly documented feature of zic, to get the LETTERS field from a
|
||||
later transition, as described at
|
||||
https://mm.icann.org/pipermail/tz/2024-April/058891.html
|
||||
In order for this to work we need to be able to distinguish an empty
|
||||
letters field (as used by CE%sT where the variable part is either empty
|
||||
or "S") from "the letters field is not known for this transition". The
|
||||
tzdata file uses "-" for an empty letters field, which libstdc++ was
|
||||
previously replacing with "" when the Rule was parsed. Instead, we now
|
||||
preserve the "-" in the Rule object, so that "" can be used for the case
|
||||
where we don't know the letters (and so need to decide it).
|
||||
|
||||
libstdc++-v3/ChangeLog:
|
||||
|
||||
* src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
|
||||
(years_from_to): New class replacing minmax_year and
|
||||
minmax_year2.
|
||||
(format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
|
||||
the file. Handle "-" for letters.
|
||||
(ZoneInfo::to): Use format_abbrev_str to expand %z.
|
||||
(ZoneInfo::set_abbrev): Remove exception. Change parameter from
|
||||
reference to value.
|
||||
(operator>>(istream&, Rule&)): Do not clear letters when it
|
||||
contains "-".
|
||||
(time_zone::_M_get_sys_info): Add missing logic to find the Rule
|
||||
in effect before the time point.
|
||||
* testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
|
||||
"GMT" as the Zone name, not as a Link to "Etc/GMT".
|
||||
* testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
|
||||
|
||||
(cherry picked from commit 0ca8d56f2085715f27ee536c6c344bc47af49cdd)
|
||||
---
|
||||
libstdc++-v3/src/c++20/tzdb.cc | 265 +++++++++++-------
|
||||
.../std/time/time_zone/sys_info_abbrev.cc | 106 +++++++
|
||||
libstdc++-v3/testsuite/std/time/tzdb/1.cc | 6 +-
|
||||
3 files changed, 274 insertions(+), 103 deletions(-)
|
||||
create mode 100644 libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
|
||||
|
||||
diff --git a/libstdc++-v3/src/c++20/tzdb.cc b/libstdc++-v3/src/c++20/tzdb.cc
|
||||
index c7c7cc9deee..7e8cce7ce8c 100644
|
||||
--- a/libstdc++-v3/src/c++20/tzdb.cc
|
||||
+++ b/libstdc++-v3/src/c++20/tzdb.cc
|
||||
@@ -342,51 +342,103 @@ namespace std::chrono
|
||||
friend istream& operator>>(istream&, on_day&);
|
||||
};
|
||||
|
||||
- // Wrapper for chrono::year that reads a year, or one of the keywords
|
||||
- // "minimum" or "maximum", or an unambiguous prefix of a keyword.
|
||||
- struct minmax_year
|
||||
+ // Wrapper for two chrono::year values, which reads the FROM and TO
|
||||
+ // fields of a Rule line. The FROM field is a year and TO is a year or
|
||||
+ // one of the keywords "maximum" or "only" (or an abbreviation of those).
|
||||
+ // For backwards compatibility, the keyword "minimum" is recognized
|
||||
+ // for FROM and interpreted as 1900.
|
||||
+ struct years_from_to
|
||||
{
|
||||
- year& y;
|
||||
+ year& from;
|
||||
+ year& to;
|
||||
|
||||
- friend istream& operator>>(istream& in, minmax_year&& y)
|
||||
+ friend istream& operator>>(istream& in, years_from_to&& yy)
|
||||
{
|
||||
- if (ws(in).peek() == 'm') // keywords "minimum" or "maximum"
|
||||
+ string s;
|
||||
+ auto c = ws(in).peek();
|
||||
+ if (c == 'm') [[unlikely]] // keyword "minimum"
|
||||
{
|
||||
- string s;
|
||||
- in >> s; // extract the rest of the word, but only look at s[1]
|
||||
- if (s[1] == 'a')
|
||||
- y.y = year::max();
|
||||
- else if (s[1] == 'i')
|
||||
- y.y = year::min();
|
||||
- else
|
||||
- in.setstate(ios::failbit);
|
||||
+ in >> s; // extract the rest of the word
|
||||
+ yy.from = year(1900);
|
||||
+ }
|
||||
+ else if (int num = 0; in >> num) [[likely]]
|
||||
+ yy.from = year{num};
|
||||
+
|
||||
+ c = ws(in).peek();
|
||||
+ if (c == 'm') // keyword "maximum"
|
||||
+ {
|
||||
+ in >> s; // extract the rest of the word
|
||||
+ yy.to = year::max();
|
||||
+ }
|
||||
+ else if (c == 'o') // keyword "only"
|
||||
+ {
|
||||
+ in >> s; // extract the rest of the word
|
||||
+ yy.to = yy.from;
|
||||
}
|
||||
else if (int num = 0; in >> num)
|
||||
- y.y = year{num};
|
||||
+ yy.to = year{num};
|
||||
+
|
||||
return in;
|
||||
}
|
||||
};
|
||||
|
||||
- // As above for minmax_year, but also supports the keyword "only",
|
||||
- // meaning that the TO year is the same as the FROM year.
|
||||
- struct minmax_year2
|
||||
+ bool
|
||||
+ select_std_or_dst_abbrev(string& abbrev, minutes save)
|
||||
{
|
||||
- minmax_year to;
|
||||
- year from;
|
||||
+ if (size_t pos = abbrev.find('/'); pos != string::npos)
|
||||
+ {
|
||||
+ // Select one of "STD/DST" for standard or daylight.
|
||||
+ if (save == 0min)
|
||||
+ abbrev.erase(pos);
|
||||
+ else
|
||||
+ abbrev.erase(0, pos + 1);
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
|
||||
- friend istream& operator>>(istream& in, minmax_year2&& y)
|
||||
- {
|
||||
- if (ws(in).peek() == 'o') // keyword "only"
|
||||
- {
|
||||
- string s;
|
||||
- in >> s; // extract the whole keyword
|
||||
- y.to.y = y.from;
|
||||
- }
|
||||
- else
|
||||
- in >> std::move(y.to);
|
||||
- return in;
|
||||
- }
|
||||
- };
|
||||
+ // Set the sys_info::abbrev string by expanding any placeholders.
|
||||
+ void
|
||||
+ format_abbrev_str(sys_info& info, string_view letters = {})
|
||||
+ {
|
||||
+ if (size_t pos = info.abbrev.find('%'); pos != string::npos)
|
||||
+ {
|
||||
+ if (info.abbrev[pos + 1] == 's')
|
||||
+ {
|
||||
+ // Expand "%s" to the variable part, given by Rule::letters.
|
||||
+ if (letters == "-")
|
||||
+ info.abbrev.erase(pos, 2);
|
||||
+ else
|
||||
+ info.abbrev.replace(pos, 2, letters);
|
||||
+ }
|
||||
+ else if (info.abbrev[pos + 1] == 'z')
|
||||
+ {
|
||||
+ // Expand "%z" to the UT offset as +/-hh, +/-hhmm, or +/-hhmmss.
|
||||
+ hh_mm_ss<seconds> t(info.offset);
|
||||
+ string z(1, "+-"[t.is_negative()]);
|
||||
+ long val = t.hours().count();
|
||||
+ int digits = 2;
|
||||
+ if (int m = t.minutes().count())
|
||||
+ {
|
||||
+ digits = 4;
|
||||
+ val *= 100;
|
||||
+ val += m;
|
||||
+ if (int s = t.seconds().count())
|
||||
+ {
|
||||
+ digits = 6;
|
||||
+ val *= 100;
|
||||
+ val += s;
|
||||
+ }
|
||||
+ }
|
||||
+ auto sval = std::to_string(val);
|
||||
+ z += string(digits - sval.size(), '0');
|
||||
+ z += sval;
|
||||
+ info.abbrev.replace(pos, 2, z);
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ select_std_or_dst_abbrev(info.abbrev, info.save);
|
||||
+ }
|
||||
|
||||
// A time zone information record.
|
||||
// Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
@@ -462,6 +514,7 @@ namespace std::chrono
|
||||
info.offset = offset();
|
||||
info.save = minutes(m_save);
|
||||
info.abbrev = format();
|
||||
+ format_abbrev_str(info); // expand %z
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -469,12 +522,9 @@ namespace std::chrono
|
||||
friend class time_zone;
|
||||
|
||||
void
|
||||
- set_abbrev(const string& abbrev)
|
||||
+ set_abbrev(string abbrev)
|
||||
{
|
||||
- // In practice, the FORMAT field never needs expanding here.
|
||||
- if (abbrev.find_first_of("/%") != abbrev.npos)
|
||||
- __throw_runtime_error("std::chrono::time_zone: invalid data");
|
||||
- m_buf = abbrev;
|
||||
+ m_buf = std::move(abbrev);
|
||||
m_pos = 0;
|
||||
m_expanded = true;
|
||||
}
|
||||
@@ -544,9 +594,7 @@ namespace std::chrono
|
||||
|
||||
// Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
|
||||
- in >> quoted(rule.name)
|
||||
- >> minmax_year{rule.from}
|
||||
- >> minmax_year2{rule.to, rule.from};
|
||||
+ in >> quoted(rule.name) >> years_from_to{rule.from, rule.to};
|
||||
|
||||
if (char type; in >> type && type != '-')
|
||||
in.setstate(ios::failbit);
|
||||
@@ -557,7 +605,7 @@ namespace std::chrono
|
||||
if (save_time.indicator != at_time::Wall)
|
||||
{
|
||||
// We don't actually store the save_time.indicator, because we
|
||||
- // assume that it's always deducable from the actual offset value.
|
||||
+ // assume that it's always deducible from the offset value.
|
||||
auto expected = save_time.time == 0s
|
||||
? at_time::Standard
|
||||
: at_time::Daylight;
|
||||
@@ -567,8 +615,6 @@ namespace std::chrono
|
||||
rule.save = save_time.time;
|
||||
|
||||
in >> rule.letters;
|
||||
- if (rule.letters == "-")
|
||||
- rule.letters.clear();
|
||||
return in;
|
||||
}
|
||||
|
||||
@@ -719,58 +765,6 @@ namespace std::chrono
|
||||
#endif // TZDB_DISABLED
|
||||
};
|
||||
|
||||
-#ifndef TZDB_DISABLED
|
||||
- namespace
|
||||
- {
|
||||
- bool
|
||||
- select_std_or_dst_abbrev(string& abbrev, minutes save)
|
||||
- {
|
||||
- if (size_t pos = abbrev.find('/'); pos != string::npos)
|
||||
- {
|
||||
- // Select one of "STD/DST" for standard or daylight.
|
||||
- if (save == 0min)
|
||||
- abbrev.erase(pos);
|
||||
- else
|
||||
- abbrev.erase(0, pos + 1);
|
||||
- return true;
|
||||
- }
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- // Set the sys_info::abbrev string by expanding any placeholders.
|
||||
- void
|
||||
- format_abbrev_str(sys_info& info, string_view letters = {})
|
||||
- {
|
||||
- if (size_t pos = info.abbrev.find("%s"); pos != string::npos)
|
||||
- {
|
||||
- // Expand "%s" to the variable part, given by Rule::letters.
|
||||
- info.abbrev.replace(pos, 2, letters);
|
||||
- }
|
||||
- else if (size_t pos = info.abbrev.find("%z"); pos != string::npos)
|
||||
- {
|
||||
- // Expand "%z" to the UT offset as +/-hh, +/-hhmm, or +/-hhmmss.
|
||||
- hh_mm_ss<seconds> t(info.offset);
|
||||
- string z(1, "+-"[t.is_negative()]);
|
||||
- long val = t.hours().count();
|
||||
- if (minutes m = t.minutes(); m != m.zero())
|
||||
- {
|
||||
- val *= 100;
|
||||
- val += m.count();
|
||||
- if (seconds s = t.seconds(); s != s.zero())
|
||||
- {
|
||||
- val *= 100;
|
||||
- val += s.count();
|
||||
- }
|
||||
- }
|
||||
- z += std::to_string(val);
|
||||
- info.abbrev.replace(pos, 2, z);
|
||||
- }
|
||||
- else
|
||||
- select_std_or_dst_abbrev(info.abbrev, info.save);
|
||||
- }
|
||||
- }
|
||||
-#endif // TZDB_DISABLED
|
||||
-
|
||||
// Implementation of std::chrono::time_zone::get_info(const sys_time<D>&)
|
||||
sys_info
|
||||
time_zone::_M_get_sys_info(sys_seconds tp) const
|
||||
@@ -839,12 +833,72 @@ namespace std::chrono
|
||||
info.abbrev = ri.format();
|
||||
|
||||
string_view letters;
|
||||
- if (i != infos.begin())
|
||||
+ if (i != infos.begin() && i[-1].expanded())
|
||||
+ letters = i[-1].next_letters();
|
||||
+
|
||||
+ if (letters.empty())
|
||||
{
|
||||
- if (i[-1].expanded())
|
||||
- letters = i[-1].next_letters();
|
||||
- // XXX else need to find Rule active before this time and use it
|
||||
- // to know the initial offset, save, and letters.
|
||||
+ sys_seconds t = info.begin - seconds(1);
|
||||
+ const year_month_day date(chrono::floor<days>(t));
|
||||
+
|
||||
+ // Try to find a Rule active before this time, to get initial
|
||||
+ // SAVE and LETTERS values. There may not be a Rule for the period
|
||||
+ // before the first DST transition, so find the earliest DST->STD
|
||||
+ // transition and use the LETTERS from that.
|
||||
+ const Rule* active_rule = nullptr;
|
||||
+ sys_seconds active_rule_start = sys_seconds::min();
|
||||
+ const Rule* first_std = nullptr;
|
||||
+ for (const auto& rule : rules)
|
||||
+ {
|
||||
+ if (rule.save == minutes(0))
|
||||
+ {
|
||||
+ if (!first_std)
|
||||
+ first_std = &rule;
|
||||
+ else if (rule.from < first_std->from)
|
||||
+ first_std = &rule;
|
||||
+ else if (rule.from == first_std->from)
|
||||
+ {
|
||||
+ if (rule.start_time(rule.from, {})
|
||||
+ < first_std->start_time(first_std->from, {}))
|
||||
+ first_std = &rule;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ year y = date.year();
|
||||
+
|
||||
+ if (y > rule.to) // rule no longer applies at time t
|
||||
+ continue;
|
||||
+ if (y < rule.from) // rule doesn't apply yet at time t
|
||||
+ continue;
|
||||