Compare commits

1 Commits
main ... 1.1

46 changed files with 4014 additions and 982 deletions

View File

@@ -2,12 +2,16 @@
<flavor>gcc14-testresults</flavor>
<flavor>cross-aarch64-gcc14-bootstrap</flavor>
<flavor>cross-aarch64-gcc14</flavor>
<flavor>cross-loongarch64-gcc14-bootstrap</flavor>
<flavor>cross-loongarch64-gcc14</flavor>
<flavor>cross-riscv64-gcc14-bootstrap</flavor>
<flavor>cross-riscv64-gcc14</flavor>
<flavor>cross-s390x-gcc14-bootstrap</flavor>
<flavor>cross-s390x-gcc14</flavor>
<flavor>cross-ppc64le-gcc14-bootstrap</flavor>
<flavor>cross-ppc64le-gcc14</flavor>
<flavor>cross-hppa-gcc14-bootstrap</flavor>
<flavor>cross-hppa-gcc14</flavor>
<flavor>cross-arm-gcc14</flavor>
<flavor>cross-avr-gcc14-bootstrap</flavor>
<flavor>cross-avr-gcc14</flavor>
@@ -19,8 +23,6 @@
<flavor>cross-ppc64-gcc14</flavor>
<flavor>cross-m68k-gcc14</flavor>
<flavor>cross-mips-gcc14</flavor>
<flavor>cross-hppa-gcc14-bootstrap</flavor>
<flavor>cross-hppa-gcc14</flavor>
<flavor>cross-arm-none-gcc14-bootstrap</flavor>
<flavor>cross-arm-none-gcc14</flavor>
<flavor>cross-riscv64-elf-gcc14-bootstrap</flavor>

View File

@@ -99,9 +99,12 @@ add_glibc_cross() {
# For now keep the old way of doing things
if test "$do_crosses" = 1 ; then
add_glibc_cross cross-aarch64-gcc$base_ver aarch64 aarch64-suse-linux
add_glibc_cross cross-loongarch64-gcc$base_ver loongarch64 loongarch64-suse-linux
add_glibc_cross cross-riscv64-gcc$base_ver riscv64 riscv64-suse-linux
add_glibc_cross cross-s390x-gcc$base_ver s390x s390x-suse-linux
add_glibc_cross cross-ppc64le-gcc$base_ver ppc64le powerpc64le-suse-linux
add_glibc_cross cross-hppa-gcc$base_ver hppa hppa-suse-linux
add_cross cross-arm-gcc$base_ver arm arm-suse-linux-gnueabi %define gcc_icecream 1
add_cross cross-avr-gcc$base_ver-bootstrap avr avr "%define gcc_libc_bootstrap 1"
add_cross cross-avr-gcc$base_ver avr avr
@@ -112,8 +115,6 @@ add_cross cross-sparc64-gcc$base_ver sparc64 sparc64-suse-linux %define gcc_icec
add_cross cross-ppc64-gcc$base_ver ppc64 powerpc64-suse-linux %define gcc_icecream 1
add_cross cross-m68k-gcc$base_ver m68k m68k-suse-linux %define gcc_icecream 1
add_cross cross-mips-gcc$base_ver mips mips-suse-linux %define gcc_icecream 1
add_cross cross-hppa-gcc$base_ver-bootstrap hppa hppa-suse-linux %define gcc_libc_bootstrap 1
add_cross cross-hppa-gcc$base_ver hppa hppa-suse-linux %define gcc_icecream 1
add_newlib_cross cross-arm-none-gcc$base_ver arm-none arm-none-eabi
#add_newlib_cross cross-epiphany-gcc$base_ver epiphany epiphany-elf
#add_newlib_cross cross-nds32le-gcc$base_ver nds32le nds32le-elf

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-aarch64-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-aarch64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-amdgcn-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-arm-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-arm-none-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -102,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -124,7 +124,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -170,7 +173,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -201,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -212,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -253,8 +262,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -271,7 +284,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -283,7 +296,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -322,7 +335,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -474,6 +487,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -810,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-arm-none-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-avr-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-avr-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-bpf-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-hppa-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-hppa-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%define pkgname cross-hppa-gcc14
%define cross_arch hppa
%define gcc_target_arch hppa-suse-linux
%define gcc_icecream 1
%define gcc_target_glibc 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

File diff suppressed because it is too large Load Diff

1050
cross-loongarch64-gcc14.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-m68k-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-mips-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-nvptx-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-ppc64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-ppc64le-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-ppc64le-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-pru-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -102,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -124,7 +124,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -170,7 +173,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -201,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -212,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -253,8 +262,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -271,7 +284,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -283,7 +296,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -322,7 +335,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -474,6 +487,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -810,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-pru-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-riscv64-elf-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -102,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -124,7 +124,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -170,7 +173,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -201,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -212,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -253,8 +262,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -271,7 +284,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -283,7 +296,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -322,7 +335,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -474,6 +487,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -810,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-riscv64-elf-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-riscv64-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-riscv64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-rx-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -102,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -124,7 +124,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -170,7 +173,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -201,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -212,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -253,8 +262,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -271,7 +284,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -283,7 +296,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -322,7 +335,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -474,6 +487,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -810,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-rx-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-s390x-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-s390x-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-sparc-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-sparc64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-x86_64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -101,7 +101,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -123,7 +123,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -169,7 +172,7 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -200,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -211,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -252,8 +261,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -270,7 +283,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc14
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -282,7 +295,7 @@ Requires: libstdc++6-devel-gcc14
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -321,7 +334,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -473,6 +486,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -809,7 +825,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

View File

@@ -81,7 +81,7 @@ Name: %{pkgname}
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
@@ -112,7 +112,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -123,9 +123,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -164,8 +170,12 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
@@ -182,7 +192,7 @@ Conflicts: %{gcc_target_arch}-gcc
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc@base_ver@
Conflicts: %{gcc_target_arch}-gcc
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
@@ -284,7 +294,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.

Binary file not shown.

BIN
gcc-14.3.0+git11799.tar.xz LFS Normal file

Binary file not shown.

View File

@@ -45,13 +45,13 @@
%endif
%define quadmath_arch %ix86 x86_64 ia64 ppc64le
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64 loongarch64
%define hwasan_arch aarch64 x86_64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc loongarch64
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64 loongarch64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64 loongarch64
%if 0%{?build_libvtv:1}
%define vtv_arch x86_64 %ix86
%endif
@@ -60,7 +60,11 @@
%define build_fortran 1
%define build_objc 1
%define build_objcp 1
%ifarch loongarch64 hppa hppa64
%define build_go 0
%else
%define build_go 1
%endif
%ifarch x86_64 %ix86 %arm aarch64 riscv64 s390x
%define build_d 1
%else
@@ -117,11 +121,16 @@
%endif
# Enable plugins just for Tumbleweed, not for SLES
%if 0%{!?sle_version:1}
%if 0%{?is_opensuse}
%define enable_plugins 1
%define build_jit 1
%else
%define enable_plugins 0
%endif
# Do not enable JIT support on SLE15
%if %{suse_version} >= 1600
%define build_jit 1
%else
%define build_jit 0
%endif
@@ -200,7 +209,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 1
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -305,7 +314,7 @@ BuildRequires: cross-amdgcn-newlib@base_ver@-devel
%define separate_biarch_suffix -64bit
%endif
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64 loongarch64
# 64-bit is primary build target
%define build_primary_64bit 1
%else
@@ -366,7 +375,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -1337,7 +1349,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -1489,6 +1501,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -1761,7 +1776,7 @@ export QEMU_STACK_SIZE=64M
# BUILD-COMMON-END
STAGE1_FLAGS="-g -O2"
%if 0%{?do_profiling} && !0%{?building_testsuite:1}
%if 0%{?do_profiling} && !0%{?building_testsuite:1} && !0%{?want_reproducible_builds}
%ifarch x86_64 %ix86 ppc64le s390x aarch64
%if %{with bootstrap}
%define use_pgo_bootstrap 1
@@ -1772,6 +1787,8 @@ STAGE1_FLAGS="-g -O2"
make info
%if 0%{?run_tests:1}
echo "Run testsuite"
# Use the bootstrap compiler for compat tests
export ALT_CC_UNDER_TEST=/usr/bin/gcc ALT_CXX_UNDER_TEST=/usr/bin/g++
(make -C %{GCCDIST}/libstdc++-v3 check-abi || true)
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.log %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.log
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.sum %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.sum
@@ -1782,6 +1799,8 @@ mkdir ../testresults
../contrib/test_summary | tee ../testresults/test_summary.txt
%endif
%define __provides_exclude_from ^%{libsubdir}/.*\.so.*$
%install
# Make sure libtool re-linking libasan at install time doesn't drop the
# libstdc++ reference to make asan of C++ modules in python work
@@ -1871,7 +1890,8 @@ if ! test -z "$dir_ml"; then
fi
%endif
# move shared libs from versionspecific dir to main libdir
# move shared libs from versionspecific dir to main libdir, keep a copy
# for link-editing in the .so
for libname in \
%if %{build_fortran}
libgfortran \
@@ -1935,8 +1955,16 @@ for libname in \
mv $lib %{buildroot}/%{mainlibdir}/
done
if test -L %{buildroot}/%{versmainlibdir}/$libname.so; then
ln -sf %{mainlibdir}/`readlink %{buildroot}/%{versmainlibdir}/$libname.so | sed -e 's/\(.*\.so\.[^\.]*\).*/\1/'` \
%{buildroot}/%{versmainlibdir}/$libname.so
cp %{buildroot}/%{mainlibdir}/`readlink %{buildroot}/%{versmainlibdir}/$libname.so` \
%{buildroot}/%{versmainlibdir}/$libname.so.tem
rm %{buildroot}/%{versmainlibdir}/$libname.so
mv %{buildroot}/%{versmainlibdir}/$libname.so.tem %{buildroot}/%{versmainlibdir}/$libname.so
strip -g %{buildroot}/%{versmainlibdir}/$libname.so
else
if test -e %{buildroot}/%{versmainlibdir}/$libname.so; then
echo ERROR: unexpected linker script for $libname.so
exit 1
fi
fi
%if %{biarch}
if test -d %{buildroot}/%{versmainlibdirbi}; then
@@ -1944,8 +1972,16 @@ for libname in \
mv $lib %{buildroot}/%{mainlibdirbi}/
done
if test -L %{buildroot}/%{versmainlibdirbi}/$libname.so; then
ln -sf %{mainlibdirbi}/`readlink %{buildroot}/%{versmainlibdirbi}/$libname.so | sed -e 's/\(.*\.so\.[^\.]*\).*/\1/'` \
%{buildroot}/%{versmainlibdirbi}/$libname.so
cp %{buildroot}/%{mainlibdirbi}/`readlink %{buildroot}/%{versmainlibdirbi}/$libname.so` \
%{buildroot}/%{versmainlibdirbi}/$libname.so.tem
rm %{buildroot}/%{versmainlibdirbi}/$libname.so
mv %{buildroot}/%{versmainlibdirbi}/$libname.so.tem %{buildroot}/%{versmainlibdirbi}/$libname.so
strip -g %{buildroot}/%{versmainlibdirbi}/$libname.so
else
if test -e %{buildroot}/%{versmainlibdirbi}/$libname.so; then
echo ERROR: unexpected linker script for $libname.so
exit 1
fi
fi
fi
%endif
@@ -1965,40 +2001,50 @@ sed -i -e '/^libdir/s/\/gcc\/%{GCCDIST}\/%{gcc_dir_version}//g' %{buildroot}/%{_
%endif
%endif
# Move libgcc_s around
# Move libgcc_s around, make sure a version specific copy is available
# for link editing
chmod a+x %{buildroot}/%{_lib}/libgcc_s.so.%{libgcc_s}
if test -L %{buildroot}/%{_lib}/libgcc_s.so; then
rm -f %{buildroot}/%{_lib}/libgcc_s.so
ln -sf /%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdir}/libgcc_s.so
cp %{buildroot}//%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdir}/libgcc_s.so
strip -g %{buildroot}/%{versmainlibdir}/libgcc_s.so
else
mv %{buildroot}/%{_lib}/libgcc_s.so %{buildroot}/%{versmainlibdir}/
cp %{buildroot}//%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdir}/libgcc_s.so.%{libgcc_s}
strip -g %{buildroot}/%{versmainlibdir}/libgcc_s.so.%{libgcc_s}
fi
chmod a+x %{buildroot}/%{_lib}/libgcc_s.so.%{libgcc_s}
%if 0%{?usrmerged}
mv %{buildroot}/%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{_slibdir}/libgcc_s.so.%{libgcc_s}
%endif
%if %{biarch}
chmod a+x %{buildroot}/lib/libgcc_s.so.%{libgcc_s}
%if %{build_primary_64bit}
if test -L %{buildroot}/lib/libgcc_s.so; then
rm -f %{buildroot}/lib/libgcc_s.so
ln -sf /lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so
cp %{buildroot}/lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so
strip -g %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so
else
mv %{buildroot}/lib/libgcc_s.so %{buildroot}/%{versmainlibdirbi32}/
cp %{buildroot}/lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so.%{libgcc_s}
strip -g %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so.%{libgcc_s}
fi
ln -sf %{versmainlibdirbi32}/libgcc_s.so %{buildroot}/%{versmainlibdirbi32}/libgcc_s_32.so
chmod a+x %{buildroot}/lib/libgcc_s.so.%{libgcc_s}
%if 0%{?usrmerged}
mv %{buildroot}/lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{slibdir}/libgcc_s.so.%{libgcc_s}
%endif
%else
# 32-bit biarch systems
chmod a+x %{buildroot}/lib64/libgcc_s.so.%{libgcc_s}
if test -L %{buildroot}/lib64/libgcc_s.so; then
rm -f %{buildroot}/lib64/libgcc_s.so
ln -sf /lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so
cp %{buildroot}/lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so
strip -g %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so
else
mv %{buildroot}/lib64/libgcc_s.so %{buildroot}/%{versmainlibdirbi64}/
cp %{buildroot}/lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so.%{libgcc_s}
strip -g %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so.%{libgcc_s}
fi
ln -sf %{versmainlibdirbi64}/libgcc_s.so %{buildroot}/%{versmainlibdirbi64}/libgcc_s_64.so
chmod a+x %{buildroot}/lib64/libgcc_s.so.%{libgcc_s}
%if 0%{?usrmerged}
mv %{buildroot}/lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{slibdir64}/libgcc_s.so.%{libgcc_s}
%endif
@@ -2054,7 +2100,7 @@ chmod 644 ../testresults/*
# GCC-TESTSUITE-DELETE-BEGIN
# Remove files that we do not need to clean up filelist
# Preserve %{GCCDIST}-gcc%{binsuffix} binary for libgccjit as it is used as a driver
# Preserve %%{GCCDIST}-gcc%%{binsuffix} binary for libgccjit as it is used as a driver
mv %{buildroot}/%{_prefix}/bin/%{GCCDIST}-gcc%{binsuffix} %{buildroot}
rm -f %{buildroot}/%{_prefix}/bin/%{GCCDIST}-*
mv %{buildroot}/%{GCCDIST}-gcc%{binsuffix} %{buildroot}/%{_prefix}/bin/
@@ -2306,6 +2352,11 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%{libsubdir}/include/riscv_crypto.h
%{libsubdir}/include/riscv_th_vector.h
%endif
%ifarch loongarch64
%{libsubdir}/include/larchintrin.h
%{libsubdir}/include/lasxintrin.h
%{libsubdir}/include/lsxintrin.h
%endif
%ifarch %ix86 x86_64
%{libsubdir}/include/cross-stdarg.h
%{libsubdir}/include/cpuid.h
@@ -2430,7 +2481,7 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%versmainlib *crt*.o
%versmainlib libgcc*.a
%versmainlib libgcov.a
%versmainlib libgcc_s*.so
%versmainlib libgcc_s*.so*
%versmainlib libgomp.so
%versmainlib libgomp.a
%versmainlib libgomp.spec
@@ -2496,7 +2547,7 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%versbiarchlib *crt*.o
%versbiarchlib libgcc*.a
%versbiarchlib libgcov.a
%versbiarchlib libgcc_s*.so
%versbiarchlib libgcc_s*.so*
%versbiarchlib libgomp.so
%versbiarchlib libgomp.a
%versbiarchlib libgomp.spec

50
gcc13-bsc1239566.patch Normal file
View File

@@ -0,0 +1,50 @@
From 68a6bc230dbae16a8a2073f20f5fcb771d30600c Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Thu, 13 Mar 2025 14:29:06 +0100
Subject: [PATCH] bsc#1239566 - add -[DU]_FORTIFY_SOURCE[=n] to DW_AT_producer
To: gcc-patches@gcc.gnu.org
The following makes sure to record -D_FORTIFY_SOURCE=n and
-U_FORTIFY_SOURCE in the DW_AT_producer debuginfo attribute when
present on the compiler command line.
* opts.cc (gen_producer_string): Record -D and -U
with _FORTIFY_SOURCE prefix.
---
gcc/opts.cc | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/gcc/opts.cc b/gcc/opts.cc
index 4eda7ea49d0..7ed0563a651 100644
--- a/gcc/opts.cc
+++ b/gcc/opts.cc
@@ -3823,9 +3823,7 @@ gen_command_line_string (cl_decoded_option *options,
case OPT_v:
case OPT_w:
case OPT_L:
- case OPT_D:
case OPT_I:
- case OPT_U:
case OPT_SPECIAL_unknown:
case OPT_SPECIAL_ignore:
case OPT_SPECIAL_warn_removed:
@@ -3861,6 +3859,16 @@ gen_command_line_string (cl_decoded_option *options,
case OPT_fchecking_:
/* Ignore these. */
continue;
+ case OPT_D:
+ case OPT_U:
+ if (strncmp (options[i].arg, "_FORTIFY_SOURCE",
+ strlen ("_FORTIFY_SOURCE")) == 0)
+ {
+ switches.safe_push (options[i].orig_option_with_args_text);
+ len += strlen (options[i].orig_option_with_args_text) + 1;
+ }
+ /* Otherwise ignore these. */
+ continue;
case OPT_flto_:
{
const char *lto_canonical = "-flto";
--
2.43.0

426
gcc14-bsc1239938.patch Normal file
View File

@@ -0,0 +1,426 @@
From 1a6442e5ef6a335ae906bad32a43812c73379109 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Tue, 25 Mar 2025 18:11:08 +0100
Subject: [PATCH] Add support of --enable-host-pie to the native Ada compiler
To: gcc-patches@gcc.gnu.org
From: Eric Botcazou <ebotcazou@adacore.com>
gcc/ada/
PR ada/119440
* gcc-interface/Make-lang.in (GCC_LINK): Filter out -pie in stage 1
(GCC_LLINK): Likewise.
* gcc-interface/Makefile.in (COMPILER): Delete and replace by CC.
(COMPILER_FLAGS): Delete.
(ALL_COMPILERFLAGS): Delete and replace by ALL_CFLAGS.
(ALL_ADAFLAGS): Move around.
(enable_host_pie): New substituted variable.
(LD_PICFLAG): Likewise. Do not add it to TOOLS_LIBS.
(LIBIBERTY): Test enable_host_pie.
(LIBGNAT): Likewise and use libgnat_pic.a if yes.
(TOOLS_FLAGS_TO_PASS): Pass $(PICFLAG) under CFLAGS & $(LD_PICFLAG)
under LDFLAGS. Also pass through ADA_CFLAGS.
(common-tools): Add $(ALL_CFLAGS) $(ADA_CFLAGS) to the --GCC string
of $(GNATLINK) commands.
(../../gnatdll$(exeext)): Likewise.
(gnatmake-re): Likewise.
(gnatlink-re): Likewise.
(gnatlib-shared-dual): Remove all the object files at the end.
gnattools/
PR ada/119440
* configure.ac (host-pie): New switch.
(host-bind-now): Likewise.
Substitute PICFLAG and LD_PICFLAG.
* configure: Regenerate.
* Makefile.in (PICFLAG): New substituted variable.
(LD_PICFLAG): Likewise.
(TOOLS_FLAGS_TO_PASS): Pass $(PICFLAG) under CFLAGS & $(LD_PICFLAG)
under LDFLAGS. Do not pass -I- under ADA_INCLUDES.
(TOOLS_FLAGS_TO_PASS_RE): Likewise.
---
gcc/ada/gcc-interface/Make-lang.in | 8 ++-
gcc/ada/gcc-interface/Makefile.in | 91 +++++++++++++++++-------------
gnattools/Makefile.in | 13 +++--
gnattools/configure | 24 ++++++++
gnattools/configure.ac | 16 +++++-
5 files changed, 107 insertions(+), 45 deletions(-)
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index f6404c0b1eb..ec72816f773 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -271,8 +271,14 @@ GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS))
GCC_LDFLAGS = $(LDFLAGS)
endif
-GCC_LINK=$(LINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS)
+# Do not link with -pie during stage #1 because the base libgnat.a is not PIC
+ifeq ($(STAGE1),True)
+GCC_LINK= $(filter-out -pie, $(LINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS))
+GCC_LLINK=$(filter-out -pie, $(LLINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS))
+else
+GCC_LINK= $(LINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS)
GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS)
+endif
# Lists of files for various purposes.
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index 0666fc00bb8..692a35684df 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -91,10 +91,11 @@ LS = ls
RANLIB = @RANLIB@
RANLIB_FLAGS = @ranlib_flags@
AWK = @AWK@
-PICFLAG = @PICFLAG@
-COMPILER = $(CC)
-COMPILER_FLAGS = $(CFLAGS)
+# Should we build position-independent host code?
+enable_host_pie = @enable_host_pie@
+PICFLAG = @PICFLAG@
+LD_PICFLAG = @LD_PICFLAG@
SHELL = @SHELL@
PWD_COMMAND = $${PWDCMD-pwd}
@@ -119,7 +120,6 @@ GNATLIBCFLAGS = -g -O2
GNATLIBCFLAGS_FOR_C = \
-W -Wall $(GNATLIBCFLAGS) -fexceptions -DIN_RTS -DHAVE_GETIPINFO
PICFLAG_FOR_TARGET = @PICFLAG_FOR_TARGET@
-ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
THREAD_KIND = native
THREADSLIB =
GMEM_LIB =
@@ -236,11 +236,9 @@ ALL_CFLAGS = $(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS)
# Likewise.
ALL_CPPFLAGS = $(CPPFLAGS)
-# Used with $(COMPILER).
-ALL_COMPILERFLAGS = $(ALL_CFLAGS)
+ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
-# This is where we get libiberty.a from.
-ifneq ($(findstring $(PICFLAG),-fPIC -fPIE),)
+ifneq ($(enable_host_pie),)
LIBIBERTY = ../../libiberty/pic/libiberty.a
else
LIBIBERTY = ../../libiberty/libiberty.a
@@ -261,9 +259,6 @@ TOOLS_LIBS = ../version.o ../link.o ../targext.o ../../ggc-none.o \
$(LIBGNAT) $(LIBINTL) $(LIBICONV) ../$(LIBBACKTRACE) ../$(LIBIBERTY) \
$(SYSLIBS) $(TGT_LIB)
-# Add -no-pie to TOOLS_LIBS since some of them are compiled with -fno-PIE.
-TOOLS_LIBS += @LD_PICFLAG@
-
# Specify the directories to be searched for header files.
# Both . and srcdir are used, in that order,
# so that tm.h and config.h will be found in the compilation
@@ -299,8 +294,7 @@ ADA_INCLUDES_FOR_SUBDIR = -I. -I$(fsrcdir)/ada
$(CC) -c -x assembler $< $(OUTPUT_OPTION)
.c.o:
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \
- $(INCLUDES) $< $(OUTPUT_OPTION)
+ $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
.adb.o:
$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
@@ -378,13 +372,18 @@ endif
include $(fsrcdir)/ada/Makefile.rtl
+ifneq ($(enable_host_pie),)
+LIBGNAT=../$(RTSDIR)/libgnat_pic.a
+else
LIBGNAT=../$(RTSDIR)/libgnat.a
+endif
TOOLS_FLAGS_TO_PASS= \
"CC=$(CC)" \
- "CFLAGS=$(CFLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
+ "CFLAGS=$(CFLAGS) $(PICFLAG)" \
+ "LDFLAGS=$(LDFLAGS) $(LD_PICFLAG)" \
"ADAFLAGS=$(ADAFLAGS)" \
+ "ADA_CFLAGS=$(ADA_CFLAGS)" \
"INCLUDES=$(INCLUDES_FOR_SUBDIR)"\
"ADA_INCLUDES=$(ADA_INCLUDES) $(ADA_INCLUDES_FOR_SUBDIR)"\
"libsubdir=$(libsubdir)" \
@@ -465,32 +464,41 @@ common-tools: ../stamp-tools
gnatchop gnatcmd gnatkr gnatls gnatprep gnatname \
gnatclean -bargs $(ADA_INCLUDES) $(GNATBIND_FLAGS)
$(GNATLINK) -v gnatcmd -o ../../gnat$(exeext) \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
$(GNATLINK) -v gnatchop -o ../../gnatchop$(exeext) \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
$(GNATLINK) -v gnatkr -o ../../gnatkr$(exeext) \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
$(GNATLINK) -v gnatls -o ../../gnatls$(exeext) \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
$(GNATLINK) -v gnatprep -o ../../gnatprep$(exeext) \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
$(GNATLINK) -v gnatname -o ../../gnatname$(exeext) \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
$(GNATLINK) -v gnatclean -o ../../gnatclean$(exeext) \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
../../gnatdll$(exeext): ../stamp-tools
$(GNATMAKE) -c $(ADA_INCLUDES) gnatdll --GCC="$(CC) $(ALL_ADAFLAGS)"
$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatdll
$(GNATLINK) -v gnatdll -o $@ \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
gnatmake-re: ../stamp-tools
- $(GNATMAKE) -j0 $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(MOST_ADA_FLAGS)"
+ $(GNATMAKE) -j0 $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(ALL_ADAFLAGS)"
$(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatmake --GCC="$(CC) $(ALL_ADAFLAGS)"
$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatmake
$(GNATLINK) -v gnatmake -o ../../gnatmake$(exeext) \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
# Note the use of the "mv" command in order to allow gnatlink to be linked with
# with the former version of gnatlink itself which cannot override itself.
@@ -500,7 +508,8 @@ gnatlink-re: ../stamp-tools gnatmake-re
$(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatlink --GCC="$(CC) $(ALL_ADAFLAGS)"
$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatlink
$(GNATLINK) -v gnatlink -o ../../gnatlinknew$(exeext) \
- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
+ --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
+ --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
$(MV) ../../gnatlinknew$(exeext) ../../gnatlink$(exeext)
# Needs to be built with CC=gcc
@@ -727,6 +736,14 @@ gnatlib-shared-dual:
$(MV) libgnat_pic$(arext) $(RTSDIR)
$(MV) libgnarl_pic$(arext) $(RTSDIR)
+ # Remove all the object files. They cannot be reused because they have
+ # been generated for the static library and the shared library will be
+ # the first to be rebuilt. Moreover, this will prevent gnatmake to pick
+ # them instead of the prescribed version of the library when the tools
+ # are built for a native compiler.
+ $(RM) $(addprefix $(RTSDIR)/,$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS))
+ $(RM) $(addprefix $(RTSDIR)/,$(GNATRTL_TASKING_OBJS))
+
gnatlib-shared-dual-win32:
$(MAKE) $(FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
@@ -886,15 +903,13 @@ b_gnatl.adb : $(GNATLINK_OBJS)
$(GNATBIND) $(ADA_INCLUDES) -o b_gnatl.adb gnatlink.ali
b_gnatl.o : b_gnatl.adb
- $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN \
- $< $(OUTPUT_OPTION)
+ $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN $< $(OUTPUT_OPTION)
b_gnatm.adb : $(GNATMAKE_OBJS)
$(GNATBIND) $(ADA_INCLUDES) -o b_gnatm.adb gnatmake.ali
b_gnatm.o : b_gnatm.adb
- $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN \
- $< $(OUTPUT_OPTION)
+ $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN $< $(OUTPUT_OPTION)
# Provide a `toolexeclibdir' definition for when `gnat-install-lib' is
# wired through gcc/ in a configuration with top-level libada disabled.
@@ -912,7 +927,7 @@ ADA_RTL_DSO_DIR = $(toolexeclibdir)
# some targets.
tracebak.o : tracebak.c
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \
+ $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \
$(INCLUDES) $(NO_OMIT_ADAFLAGS) $< $(OUTPUT_OPTION)
adadecode.o : adadecode.c adadecode.h
@@ -940,33 +955,33 @@ terminals.o : terminals.c
vx_stack_info.o : vx_stack_info.c
raise-gcc.o : raise-gcc.c raise.h
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
+ $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
-iquote $(srcdir) -iquote $(ftop_srcdir)/libgcc \
$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
cio.o : cio.c
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
+ $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
init.o : init.c adaint.h raise.h
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
+ $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
init-vxsim.o : init-vxsim.c
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
+ $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
initialize.o : initialize.c raise.h
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
+ $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
link.o : link.c
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
+ $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \
$< $(OUTPUT_OPTION)
targext.o : targext.c
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
+ $(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
-iquote $(srcdir) \
$(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \
$< $(OUTPUT_OPTION)
diff --git a/gnattools/Makefile.in b/gnattools/Makefile.in
index e8fc4af0788..1e7c9b8470c 100644
--- a/gnattools/Makefile.in
+++ b/gnattools/Makefile.in
@@ -51,6 +51,9 @@ WARN_CFLAGS = @warn_cflags@
ADA_CFLAGS=@ADA_CFLAGS@
+PICFLAG = @PICFLAG@
+LD_PICFLAG = @LD_PICFLAG@
+
# Variables for gnattools.
ADAFLAGS= -gnatpg -gnata
@@ -79,12 +82,12 @@ CXX_LFLAGS = \
TOOLS_FLAGS_TO_PASS_NATIVE= \
"CC=../../xgcc -B../../" \
"CXX=../../xg++ -B../../ $(CXX_LFLAGS)" \
- "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
+ "CFLAGS=$(CFLAGS) $(WARN_CFLAGS) $(PICFLAG)" \
+ "LDFLAGS=$(LDFLAGS) $(LD_PICFLAG)" \
"ADAFLAGS=$(ADAFLAGS)" \
"ADA_CFLAGS=$(ADA_CFLAGS)" \
"INCLUDES=$(INCLUDES_FOR_SUBDIR)" \
- "ADA_INCLUDES=-I- -I../rts $(ADA_INCLUDES_FOR_SUBDIR)"\
+ "ADA_INCLUDES=-I../rts $(ADA_INCLUDES_FOR_SUBDIR)"\
"exeext=$(exeext)" \
"fsrcdir=$(fsrcdir)" \
"srcdir=$(fsrcdir)" \
@@ -97,8 +100,8 @@ TOOLS_FLAGS_TO_PASS_NATIVE= \
TOOLS_FLAGS_TO_PASS_RE= \
"CC=../../xgcc -B../../" \
"CXX=../../xg++ -B../../ $(CXX_LFLAGS)" \
- "CFLAGS=$(CFLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
+ "CFLAGS=$(CFLAGS) $(WARN_CFLAGS) $(PICFLAG)" \
+ "LDFLAGS=$(LDFLAGS) $(LD_PICFLAG)" \
"ADAFLAGS=$(ADAFLAGS)" \
"ADA_CFLAGS=$(ADA_CFLAGS)" \
"INCLUDES=$(INCLUDES_FOR_SUBDIR)" \
diff --git a/gnattools/configure b/gnattools/configure
index 6cdfbe67af2..1eb0debc2ce 100755
--- a/gnattools/configure
+++ b/gnattools/configure
@@ -585,6 +585,8 @@ ac_unique_file="Makefile.in"
ac_subst_vars='LTLIBOBJS
LIBOBJS
default_gnattools_target
+LD_PICFLAG
+PICFLAG
warn_cflags
OBJEXT
EXEEXT
@@ -657,6 +659,8 @@ ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_maintainer_mode
+enable_host_pie
+enable_host_bind_now
'
ac_precious_vars='build_alias
host_alias
@@ -1281,6 +1285,8 @@ Optional Features:
--enable-maintainer-mode
enable make rules and dependencies not useful (and
sometimes confusing) to the casual installer
+ --enable-host-pie build host code as PIE
+ --enable-host-bind-now link host code as BIND_NOW
Some influential environment variables:
CC C compiler command
@@ -2884,6 +2890,24 @@ if test "x$GCC" = "xyes"; then
fi
+# Enable --enable-host-pie
+# Check whether --enable-host-pie was given.
+if test "${enable_host_pie+set}" = set; then :
+ enableval=$enable_host_pie; PICFLAG=-fPIE; LD_PICFLAG=-pie
+else
+ PICFLAG=-fno-PIE; LD_PICFLAG=-no-pie
+fi
+
+
+
+# Enable --enable-host-bind-now
+# Check whether --enable-host-bind-now was given.
+if test "${enable_host_bind_now+set}" = set; then :
+ enableval=$enable_host_bind_now; LD_PICFLAG="$LD_PICFLAG -Wl,-z,now"
+fi
+
+
+
# Determine what to build for 'gnattools'. Test after the above,
# because testing for CC sets the final value of cross_compiling, even
# if we end up using a different CC. We want to build
diff --git a/gnattools/configure.ac b/gnattools/configure.ac
index 38a28b6ee62..776530aee52 100644
--- a/gnattools/configure.ac
+++ b/gnattools/configure.ac
@@ -1,4 +1,4 @@
-# Configure script for libada.
+# Configure script for gnattools
# Copyright 2003, 2004, 2009, 2012 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
@@ -97,6 +97,20 @@ if test "x$GCC" = "xyes"; then
fi
AC_SUBST(warn_cflags)
+# Enable --enable-host-pie
+AC_ARG_ENABLE(host-pie,
+[AS_HELP_STRING([--enable-host-pie],
+ [build host code as PIE])],
+[PICFLAG=-fPIE; LD_PICFLAG=-pie], [PICFLAG=-fno-PIE; LD_PICFLAG=-no-pie])
+AC_SUBST(PICFLAG)
+
+# Enable --enable-host-bind-now
+AC_ARG_ENABLE(host-bind-now,
+[AS_HELP_STRING([--enable-host-bind-now],
+ [link host code as BIND_NOW])],
+[LD_PICFLAG="$LD_PICFLAG -Wl,-z,now"], [])
+AC_SUBST(LD_PICFLAG)
+
# Determine what to build for 'gnattools'. Test after the above,
# because testing for CC sets the final value of cross_compiling, even
# if we end up using a different CC. We want to build
--
2.43.0

View File

@@ -1,566 +0,0 @@
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;
+
+ sys_seconds rule_start;
+
+ seconds offset{}; // appropriate for at_time::Universal
+ if (rule.when.indicator == at_time::Wall)
+ offset = info.offset;
+ else if (rule.when.indicator == at_time::Standard)
+ offset = ri.offset();
+
+ // Time the rule takes effect this year:
+ rule_start = rule.start_time(y, offset);
+
+ if (rule_start >= t && rule.from < y)
+ {
+ // Try this rule in the previous year.
+ rule_start = rule.start_time(--y, offset);
+ }
+
+ if (active_rule_start < rule_start && rule_start < t)
+ {
+ active_rule_start = rule_start;
+ active_rule = &rule;
+ }
+ }
+
+ if (active_rule)
+ letters = active_rule->letters;
+ else if (first_std)
+ letters = first_std->letters;
}
const Rule* curr_rule = nullptr;
@@ -2069,9 +2123,11 @@ namespace std::chrono
istringstream in2(std::move(rules));
in2 >> rules_time;
inf.m_save = duration_cast<minutes>(rules_time.time);
+ // If the FORMAT is "STD/DST" then we can choose the right one
+ // now, so that we store a shorter string.
select_std_or_dst_abbrev(fmt, inf.m_save);
}
- inf.set_abbrev(fmt);
+ inf.set_abbrev(std::move(fmt));
}
// YEAR [MONTH [DAY [TIME]]]
@@ -2082,7 +2138,12 @@ namespace std::chrono
abbrev_month m{January};
int d = 1;
at_time t{};
+ // XXX DAY should support ON format, e.g. lastSun or Sun>=8
in >> m >> d >> t;
+ // XXX UNTIL field should be interpreted
+ // "using the rules in effect just before the transition"
+ // so might need to store as year_month_day and hh_mm_ss and only
+ // convert to a sys_time once we know the offset in effect.
inf.m_until = sys_days(year(y)/m.m/day(d)) + seconds(t.time);
}
else
diff --git a/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
new file mode 100644
index 00000000000..f1a8fff02f5
--- /dev/null
+++ b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
@@ -0,0 +1,106 @@
+// { dg-do run { target c++20 } }
+// { dg-require-effective-target tzdb }
+// { dg-require-effective-target cxx11_abi }
+// { dg-xfail-run-if "no weak override on AIX" { powerpc-ibm-aix* } }
+
+#include <chrono>
+#include <fstream>
+#include <testsuite_hooks.h>
+
+static bool override_used = false;
+
+namespace __gnu_cxx
+{
+ const char* zoneinfo_dir_override() {
+ override_used = true;
+ return "./";
+ }
+}
+
+using namespace std::chrono;
+
+void
+test_format()
+{
+ std::ofstream("tzdata.zi") << R"(# version test_1
+Zone Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u
+ -1 - %z 1975
+ 0 - GMT
+Zon Some/Zone 1:2:3 - %z 1900
+ 1:23:45 - %z 1950
+Zo Another/Zone 1:2:3 - AZ0 1901
+ 1 Roolz A%sZ 2000
+ 1 Roolz SAZ/DAZ 2005
+ 1 Roolz %z
+Rule Roolz 1950 max - April 1 2 1 D
+Rul Roolz 1950 max - Oct 1 1 0 S
+Z Strange/Zone 1 - X%sX 1980
+ 1 - FOO/BAR 1990
+ 2:00 - %zzz 1995
+ 0:9 - %zzz 1996
+ 0:8:7 - %zzz 1997
+ 0:6:5.5 - %zzz 1998
+)";
+
+ const auto& db = reload_tzdb();
+ VERIFY( override_used ); // If this fails then XFAIL for the target.
+ VERIFY( db.version == "test_1" );
+
+ // Test formatting %z as
+ auto tz = locate_zone("Africa/Bissau");
+ auto inf = tz->get_info(sys_days(1974y/1/1));
+ VERIFY( inf.abbrev == "-01" );
+
+ tz = locate_zone("Some/Zone");
+ inf = tz->get_info(sys_days(1899y/1/1));
+ VERIFY( inf.abbrev == "+010203" );
+ inf = tz->get_info(sys_days(1955y/1/1));
+ VERIFY( inf.abbrev == "+012345" );
+
+ tz = locate_zone("Another/Zone");
+ // Test formatting %s as the LETTER/S field from the active Rule.
+ inf = tz->get_info(sys_days(1910y/January/1));
+ VERIFY( inf.abbrev == "ASZ" );
+ inf = tz->get_info(sys_days(1950y/January/1));
+ VERIFY( inf.abbrev == "ASZ" );
+ inf = tz->get_info(sys_days(1950y/June/1));
+ VERIFY( inf.abbrev == "ADZ" );
+ inf = tz->get_info(sys_days(1999y/January/1));
+ VERIFY( inf.abbrev == "ASZ" );
+ inf = tz->get_info(sys_days(1999y/July/1));
+ VERIFY( inf.abbrev == "ADZ" );
+ // Test formatting STD/DST according to the active Rule.
+ inf = tz->get_info(sys_days(2000y/January/2));
+ VERIFY( inf.abbrev == "SAZ" );
+ inf = tz->get_info(sys_days(2001y/January/1));
+ VERIFY( inf.abbrev == "SAZ" );
+ inf = tz->get_info(sys_days(2001y/July/1));
+ VERIFY( inf.abbrev == "DAZ" );
+ // Test formatting %z as the offset determined by the active Rule.
+ inf = tz->get_info(sys_days(2005y/January/2));
+ VERIFY( inf.abbrev == "+01" );
+ inf = tz->get_info(sys_days(2006y/January/1));
+ VERIFY( inf.abbrev == "+01" );
+ inf = tz->get_info(sys_days(2006y/July/1));
+ VERIFY( inf.abbrev == "+02" );
+
+ // Test formatting %z, %s and S/D for a Zone with no associated Rules.
+ tz = locate_zone("Strange/Zone");
+ inf = tz->get_info(sys_days(1979y/January/1));
+ VERIFY( inf.abbrev == "XX" ); // No Rule means nothing to use for %s.
+ inf = tz->get_info(sys_days(1981y/July/1));
+ VERIFY( inf.abbrev == "FOO" ); // Always standard time means first string.
+ inf = tz->get_info(sys_days(1994y/July/1));
+ VERIFY( inf.abbrev == "+02zz" );
+ inf = tz->get_info(sys_days(1995y/July/1));
+ VERIFY( inf.abbrev == "+0009zz" );
+ inf = tz->get_info(sys_days(1996y/July/1));
+ VERIFY( inf.abbrev == "+000807zz" );
+ inf = tz->get_info(sys_days(1997y/July/1));
+ VERIFY( inf.abbrev == "+000606zz" );
+}
+
+int main()
+{
+ test_format();
+}
diff --git a/libstdc++-v3/testsuite/std/time/tzdb/1.cc b/libstdc++-v3/testsuite/std/time/tzdb/1.cc
index 796f3a8b425..7a31c1c20ba 100644
--- a/libstdc++-v3/testsuite/std/time/tzdb/1.cc
+++ b/libstdc++-v3/testsuite/std/time/tzdb/1.cc
@@ -39,11 +39,15 @@ test_locate()
const tzdb& db = get_tzdb();
const time_zone* tz = db.locate_zone("GMT");
VERIFY( tz != nullptr );
- VERIFY( tz->name() == "Etc/GMT" );
VERIFY( tz == std::chrono::locate_zone("GMT") );
VERIFY( tz == db.locate_zone("Etc/GMT") );
VERIFY( tz == db.locate_zone("Etc/GMT+0") );
+ // Since 2022f GMT is now a Zone and Etc/GMT a link instead of vice versa,
+ // but only when using the vanguard format. As of 2024a, the main and
+ // rearguard formats still have Etc/GMT as a Zone and GMT as a link.
+ VERIFY( tz->name() == "GMT" || tz->name() == "Etc/GMT" );
+
VERIFY( db.locate_zone(db.current_zone()->name()) == db.current_zone() );
}
--
2.43.0

81
gcc14-pr119680.patch Normal file
View File

@@ -0,0 +1,81 @@
diff --git a/libbacktrace/configure b/libbacktrace/configure
index 0ecdd3ec0a3..85be043009a 100755
--- a/libbacktrace/configure
+++ b/libbacktrace/configure
@@ -814,6 +814,7 @@ enable_largefile
enable_cet
enable_werror
with_system_libunwind
+enable_host_pie
enable_host_shared
'
ac_precious_vars='build_alias
@@ -1464,6 +1465,7 @@ Optional Features:
--disable-largefile omit support for large files
--enable-cet enable Intel CET in target libraries [default=auto]
--disable-werror disable building with -Werror
+ --enable-host-pie build host code as PIE
--enable-host-shared build host code as shared libraries
--enable-cet enable Intel CET in host libraries [default=auto]
@@ -11634,7 +11636,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11637 "configure"
+#line 11639 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11740,7 +11742,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11743 "configure"
+#line 11745 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12518,12 +12520,18 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
fi
fi
+# Enable --enable-host-pie.
+# Check whether --enable-host-pie was given.
+if test "${enable_host_pie+set}" = set; then :
+ enableval=$enable_host_pie; PIC_FLAG=-fPIE
+else
+ PIC_FLAG=
+fi
+
# Enable --enable-host-shared.
# Check whether --enable-host-shared was given.
if test "${enable_host_shared+set}" = set; then :
enableval=$enable_host_shared; PIC_FLAG=-fPIC
-else
- PIC_FLAG=
fi
diff --git a/libbacktrace/configure.ac b/libbacktrace/configure.ac
index 75b3a7536f1..6549cdeacf4 100644
--- a/libbacktrace/configure.ac
+++ b/libbacktrace/configure.ac
@@ -175,11 +175,16 @@ else
fi
fi
+# Enable --enable-host-pie.
+AC_ARG_ENABLE(host-pie,
+[AS_HELP_STRING([--enable-host-pie],
+ [build host code as PIE])],
+[PIC_FLAG=-fPIE], [PIC_FLAG=])
# Enable --enable-host-shared.
AC_ARG_ENABLE(host-shared,
[AS_HELP_STRING([--enable-host-shared],
[build host code as shared libraries])],
-[PIC_FLAG=-fPIC], [PIC_FLAG=])
+[PIC_FLAG=-fPIC])
AC_SUBST(PIC_FLAG)
# Enable Intel CET on Intel CET enabled host if jit is enabled.

View File

@@ -0,0 +1,201 @@
From 8694dc12186ed6ac806b229523229d8c9ab1f865 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Wed, 13 Nov 2024 16:04:06 +0100
Subject: [PATCH] rs6000: Add -msplit-patch-nops (PR112980)
To: gcc-patches@gcc.gnu.org
From: Michael Matz <matz@suse.de>
as the bug report details some uses of -fpatchable-function-entry
aren't happy with the "before" NOPs being inserted between global and
local entry point on powerpc. We want the before NOPs be in front
of the global entry point. That means that the patching NOPs aren't
consecutive for dual entry point functions, but for these usecases
that's not the problem. But let us support both under the control
of a new target option: -msplit-patch-nops.
gcc/
PR target/112980
* config/rs6000/rs6000.opt (msplit-patch-nops): New option.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document it.
* config/rs6000/rs6000.h (machine_function.stop_patch_area_print):
New member.
* config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry):
Emit split nops under control of that one.
* config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
Add handling of split patch nops.
---
gcc/config/rs6000/rs6000-logue.cc | 15 +++++++++------
gcc/config/rs6000/rs6000.cc | 27 +++++++++++++++++++++++----
gcc/config/rs6000/rs6000.h | 6 ++++++
gcc/config/rs6000/rs6000.opt | 4 ++++
gcc/doc/invoke.texi | 17 +++++++++++++++--
5 files changed, 57 insertions(+), 12 deletions(-)
diff --git a/gcc/config/rs6000/rs6000-logue.cc b/gcc/config/rs6000/rs6000-logue.cc
index fdb6414f486..09507356ac1 100644
--- a/gcc/config/rs6000/rs6000-logue.cc
+++ b/gcc/config/rs6000/rs6000-logue.cc
@@ -4005,8 +4005,8 @@ rs6000_output_function_prologue (FILE *file)
unsigned short patch_area_size = crtl->patch_area_size;
unsigned short patch_area_entry = crtl->patch_area_entry;
- /* Need to emit the patching area. */
- if (patch_area_size > 0)
+ /* Emit non-split patching area now. */
+ if (!TARGET_SPLIT_PATCH_NOPS && patch_area_size > 0)
{
cfun->machine->global_entry_emitted = true;
/* As ELFv2 ABI shows, the allowable bytes between the global
@@ -4027,7 +4027,6 @@ rs6000_output_function_prologue (FILE *file)
patch_area_entry);
rs6000_print_patchable_function_entry (file, patch_area_entry,
true);
- patch_area_size -= patch_area_entry;
}
}
@@ -4037,9 +4036,13 @@ rs6000_output_function_prologue (FILE *file)
assemble_name (file, name);
fputs ("\n", file);
/* Emit the nops after local entry. */
- if (patch_area_size > 0)
- rs6000_print_patchable_function_entry (file, patch_area_size,
- patch_area_entry == 0);
+ if (patch_area_size > patch_area_entry)
+ {
+ patch_area_size -= patch_area_entry;
+ cfun->machine->stop_patch_area_print = false;
+ rs6000_print_patchable_function_entry (file, patch_area_size,
+ patch_area_entry == 0);
+ }
}
else if (rs6000_pcrel_p ())
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 80f03809ff6..9cab0cf79d6 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -15200,11 +15200,25 @@ rs6000_print_patchable_function_entry (FILE *file,
{
bool global_entry_needed_p = rs6000_global_entry_point_prologue_needed_p ();
/* For a function which needs global entry point, we will emit the
- patchable area before and after local entry point under the control of
- cfun->machine->global_entry_emitted, see the handling in function
- rs6000_output_function_prologue. */
- if (!global_entry_needed_p || cfun->machine->global_entry_emitted)
+ patchable area when it isn't split before and after local entry point
+ under the control of cfun->machine->global_entry_emitted, see the
+ handling in function rs6000_output_function_prologue. */
+ if (!TARGET_SPLIT_PATCH_NOPS
+ && (!global_entry_needed_p || cfun->machine->global_entry_emitted))
default_print_patchable_function_entry (file, patch_area_size, record_p);
+
+ /* For split patch nops we emit the before nops (from generic code)
+ in front of the global entry point and after the local entry point,
+ under the control of cfun->machine->stop_patch_area_print, see
+ rs6000_output_function_prologue and rs6000_elf_declare_function_name. */
+ if (TARGET_SPLIT_PATCH_NOPS)
+ {
+ if (!cfun->machine->stop_patch_area_print)
+ default_print_patchable_function_entry (file, patch_area_size,
+ record_p);
+ else
+ gcc_assert (global_entry_needed_p);
+ }
}
enum rtx_code
@@ -21397,6 +21411,11 @@ rs6000_elf_declare_function_name (FILE *file, const char *name, tree decl)
fprintf (file, "\t.previous\n");
}
ASM_OUTPUT_FUNCTION_LABEL (file, name, decl);
+ /* At this time, the "before" NOPs have been already emitted.
+ For split nops stop generic code from printing the "after" NOPs and
+ emit them just after local entry ourself later. */
+ if (rs6000_global_entry_point_prologue_needed_p ())
+ cfun->machine->stop_patch_area_print = true;
}
static void rs6000_elf_file_end (void) ATTRIBUTE_UNUSED;
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 9b5cf321876..d372541f325 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -2443,6 +2443,12 @@ typedef struct GTY(()) machine_function
global entry. It helps to control the patchable area before and after
local entry. */
bool global_entry_emitted;
+ /* With ELFv2 ABI dual entry points being adopted, generic framework
+ targetm.asm_out.print_patchable_function_entry would generate "after"
+ NOPs before local entry, which is wrong. This flag is to stop it from
+ printing patch area before local entry, it is only useful when the
+ function requires dual entry points. */
+ bool stop_patch_area_print;
} machine_function;
#endif
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
index 94323bd1db2..27a165ef0ee 100644
--- a/gcc/config/rs6000/rs6000.opt
+++ b/gcc/config/rs6000/rs6000.opt
@@ -300,6 +300,10 @@ mfull-toc
Target
Put everything in the regular TOC.
+msplit-patch-nops
+Target Var(TARGET_SPLIT_PATCH_NOPS) Init(0)
+Emit NOPs before global and after local entry point for -fpatchable-function-entry.
+
mvrsave
Target Var(TARGET_ALTIVEC_VRSAVE) Save
Generate VRSAVE instructions when generating AltiVec code.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 6a94c7b70a5..64542f477f9 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -1304,6 +1304,7 @@ See RS/6000 and PowerPC Options.
-mtraceback=@var{traceback_type}
-maix-struct-return -msvr4-struct-return
-mabi=@var{abi-type} -msecure-plt -mbss-plt
+-msplit-patch-nops
-mlongcall -mno-longcall -mpltseq -mno-pltseq
-mblock-move-inline-limit=@var{num}
-mblock-compare-inline-limit=@var{num}
@@ -18416,11 +18417,12 @@ If @code{N=0}, no pad location is recorded.
The NOP instructions are inserted at---and maybe before, depending on
@var{M}---the function entry address, even before the prologue. On
PowerPC with the ELFv2 ABI, for a function with dual entry points,
-the local entry point is this function entry address.
+the local entry point is this function entry address by default. See
+the @option{-msplit-patch-nops} option to change this.
The maximum value of @var{N} and @var{M} is 65535. On PowerPC with the
ELFv2 ABI, for a function with dual entry points, the supported values
-for @var{M} are 0, 2, 6 and 14.
+for @var{M} are 0, 2, 6 and 14 when not using @option{-msplit-patch-nops}.
@end table
@@ -31436,6 +31438,17 @@ requires @code{.plt} and @code{.got}
sections that are both writable and executable.
This is a PowerPC 32-bit SYSV ABI option.
+@opindex msplit-patch-nops
+@item -msplit-patch-nops
+When adding NOPs for a patchable area via the
+@option{-fpatchable-function-entry} option emit the ``before'' NOPs in front
+of the global entry point and the ``after'' NOPs after the local entry point.
+This makes the sequence of NOPs not consecutive when a global entry point
+is generated. Without this option the NOPs are emitted directly before and
+after the local entry point, making them consecutive but moving global and
+local entry point further apart. If only a single entry point is generated
+this option has no effect.
+
@opindex misel
@opindex mno-isel
@item -misel
--
2.43.0

View File

@@ -1,7 +1,7 @@
#
# spec file for package gcc14-testresults
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -65,13 +65,13 @@
%endif
%define quadmath_arch %ix86 x86_64 ia64 ppc64le
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64 loongarch64
%define hwasan_arch aarch64 x86_64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc loongarch64
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64 loongarch64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64 loongarch64
%if 0%{?build_libvtv:1}
%define vtv_arch x86_64 %ix86
%endif
@@ -80,7 +80,11 @@
%define build_fortran 1
%define build_objc 1
%define build_objcp 1
%ifarch loongarch64 hppa hppa64
%define build_go 0
%else
%define build_go 1
%endif
%ifarch x86_64 %ix86 %arm aarch64 riscv64 s390x
%define build_d 1
%else
@@ -137,11 +141,16 @@
%endif
# Enable plugins just for Tumbleweed, not for SLES
%if 0%{!?sle_version:1}
%if 0%{?is_opensuse}
%define enable_plugins 1
%define build_jit 1
%else
%define enable_plugins 0
%endif
# Do not enable JIT support on SLE15
%if %{suse_version} >= 1600
%define build_jit 1
%else
%define build_jit 0
%endif
@@ -217,7 +226,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -321,7 +330,7 @@ BuildRequires: cross-amdgcn-newlib14-devel
%define separate_biarch_suffix -64bit
%endif
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64 loongarch64
# 64-bit is primary build target
%define build_primary_64bit 1
%else
@@ -382,7 +391,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -514,7 +526,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -666,6 +678,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -936,7 +951,7 @@ export QEMU_STACK_SIZE=64M
%endif
STAGE1_FLAGS="-g -O2"
%if 0%{?do_profiling} && !0%{?building_testsuite:1}
%if 0%{?do_profiling} && !0%{?building_testsuite:1} && !0%{?want_reproducible_builds}
%ifarch x86_64 %ix86 ppc64le s390x aarch64
%if %{with bootstrap}
%define use_pgo_bootstrap 1
@@ -947,6 +962,8 @@ STAGE1_FLAGS="-g -O2"
make info
%if 0%{?run_tests:1}
echo "Run testsuite"
# Use the bootstrap compiler for compat tests
export ALT_CC_UNDER_TEST=/usr/bin/gcc ALT_CXX_UNDER_TEST=/usr/bin/g++
(make -C %{GCCDIST}/libstdc++-v3 check-abi || true)
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.log %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.log
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.sum %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.sum
@@ -957,6 +974,8 @@ mkdir ../testresults
../contrib/test_summary | tee ../testresults/test_summary.txt
%endif
%define __provides_exclude_from ^%{libsubdir}/.*\.so.*$
%install
# Make sure libtool re-linking libasan at install time doesn't drop the
# libstdc++ reference to make asan of C++ modules in python work

View File

@@ -1,7 +1,133 @@
-------------------------------------------------------------------
Thu Oct 17 08:08:45 UTC 2024 - Richard Biener <rguenther@suse.com>
Wed Jun 4 12:46:23 UTC 2025 - Richard Biener <rguenther@suse.com>
- Add gcc14-pr116657.patch to fix for parsing tzdata 2024b [gcc#116657]
- Exclude shared objects present for link editing in the GCC specific
subdirectory from provides processing via __provides_exclude_from.
[bsc#1244050][bsc#1243991]
-------------------------------------------------------------------
Tue Jun 3 12:36:35 UTC 2025 - Richard Biener <rguenther@suse.com>
- Make cross-*-gcc14-bootstrap package conflict with the non-bootstrap
variant conflict with the unversioned cross-*-gcc package.
-------------------------------------------------------------------
Tue May 27 14:08:37 UTC 2025 - Richard Biener <rguenther@suse.com>
- Disable build of glibc cross to loongarch64 and hppa in SLFO
and SLE15.
-------------------------------------------------------------------
Fri May 23 11:18:54 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to GCC 14.3 release, bb24b4c804f3d95b0ba95b7496, git11799
- Remove gcc14-pr120061.patch which is now included upstream.
-------------------------------------------------------------------
Tue May 6 11:11:04 UTC 2025 - Richard Biener <rguenther@suse.com>
- Add gcc14-pr120061.patch to fix the PR108900 fix instead of
reverting it.
- Remove gcc14-pr108900.patch
-------------------------------------------------------------------
Fri May 2 08:58:43 UTC 2025 - Richard Biener <rguenther@suse.com>
- Add gcc14-pr108900.patch to revert it, fixing libqt6webengine build.
-------------------------------------------------------------------
Wed Apr 30 06:32:16 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to gcc-14 branch head, 3418d740b344e0ba38022f3be, git11702
* Remove gcc14-pr118780.patch now on the upstream branch
- Fix build on s390x [bsc#1241549]
-------------------------------------------------------------------
Tue Apr 8 11:08:02 UTC 2025 - Richard Biener <rguenther@suse.com>
- Make sure link editing is done against our own shared library
copy rather than the installed system runtime. [bsc#1240788]
- Add gcc14-pr119680.patch to fix cross-compiler builds with
--enable-host-pie.
-------------------------------------------------------------------
Thu Mar 27 08:25:48 UTC 2025 - Richard Biener <rguenther@suse.com>
- Add gcc14-bsc1239938.patch to allow GCC executables to be
built PIE. [bsc#1239938]
- Add gcc14-rs6000-msplit-patch-nops.patch to backport -msplit-patch-nops
required for user-space livepatching on powerpc.
-------------------------------------------------------------------
Thu Mar 13 14:06:30 UTC 2025 - Richard Biener <rguenther@suse.com>
- Add gcc13-bsc1239566.patch to also record -D_FORTIFY_SOURCE=2
in the DWARF debug info DW_AT_producer string. [bsc#1239566]
-------------------------------------------------------------------
Mon Mar 10 13:27:50 UTC 2025 - Richard Biener <rguenther@suse.com>
- Disable profiling during build when %want_reproducible_builds is set
[bsc#1238491]
-------------------------------------------------------------------
Thu Feb 20 15:41:51 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to gcc-14 branch head, 9ffecde121af883b60bbe60d0, git11321
* fixes reported ICE in [bsc#1237442]
- Drop gcc14-pr116629.patch now backported to the branch.
-------------------------------------------------------------------
Thu Feb 6 10:28:59 UTC 2025 - Richard Biener <rguenther@suse.com>
- Adjust cross compiler requirements to use %requires_ge
- Fix condition on whether to enable plugins or JIT support to
not check sle_version which is not defined in SLFO but to check
is_opensuse and suse_version instead.
- Add gcc14-pr118780.patch to make the SLFO config work.
-------------------------------------------------------------------
Wed Jan 29 13:12:15 UTC 2025 - Richard Biener <rguenther@suse.com>
- For cross compilers require the same or newer binutils, newlib
or cross-glibc that was used at build time. [bsc#1232526]
-------------------------------------------------------------------
Tue Jan 7 14:49:40 UTC 2025 - Andreas Schwab <schwab@suse.de>
- Define ALT_CC_UNDER_TEST and ALT_CXX_UNDER_TEST for compat tests
-------------------------------------------------------------------
Sun Jan 5 21:18:48 UTC 2025 - Martin Hauke <mardnh@gmx.de>
- Switch to glibc based cross-compiler for target hppa
-------------------------------------------------------------------
Mon Dec 2 04:48:53 UTC 2024 - Adrian Schröter <adrian@suse.de>
- disable go on loongarch64 for now
-------------------------------------------------------------------
Sat Nov 30 16:01:13 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Add loongarch64 to asan_arch, atomic_arch,
itm_arch, lsan_arch, tsan_arch and ubsan_arch
- Add larchintrin.h, lasxintrin.h and lsxintrin.h
headers to gccXY main package in %files section
- Set build_primary_64bit to 1 for loongarch64
-------------------------------------------------------------------
Mon Nov 18 18:17:30 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Add loongarch64 as new target
-------------------------------------------------------------------
Wed Oct 9 13:01:41 UTC 2024 - Richard Biener <rguenther@suse.com>
- Update to gcc-14 branch head, 4af44f2cf7d281f3e4f3957ef, git10750
* includes libstdc++6 fix for parsing tzdata 2024b [gcc#116657]
- Add gcc14-pr116629.patch to fix ICE with LTO building openvino
on aarch64 [boo#1230262]
-------------------------------------------------------------------
Thu Aug 22 10:37:05 UTC 2024 - Richard Biener <rguenther@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -44,13 +44,13 @@
%endif
%define quadmath_arch %ix86 x86_64 ia64 ppc64le
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64 loongarch64
%define hwasan_arch aarch64 x86_64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc loongarch64
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64 loongarch64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64 loongarch64
%if 0%{?build_libvtv:1}
%define vtv_arch x86_64 %ix86
%endif
@@ -59,7 +59,11 @@
%define build_fortran 1
%define build_objc 1
%define build_objcp 1
%ifarch loongarch64 hppa hppa64
%define build_go 0
%else
%define build_go 1
%endif
%ifarch x86_64 %ix86 %arm aarch64 riscv64 s390x
%define build_d 1
%else
@@ -116,11 +120,16 @@
%endif
# Enable plugins just for Tumbleweed, not for SLES
%if 0%{!?sle_version:1}
%if 0%{?is_opensuse}
%define enable_plugins 1
%define build_jit 1
%else
%define enable_plugins 0
%endif
# Do not enable JIT support on SLE15
%if %{suse_version} >= 1600
%define build_jit 1
%else
%define build_jit 0
%endif
@@ -196,7 +205,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.2.0+git10526
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -300,7 +309,7 @@ BuildRequires: cross-amdgcn-newlib14-devel
%define separate_biarch_suffix -64bit
%endif
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64 loongarch64
# 64-bit is primary build target
%define build_primary_64bit 1
%else
@@ -361,7 +370,10 @@ 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
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -2363,7 +2375,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20 -P 21
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -2515,6 +2527,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -2785,7 +2800,7 @@ export QEMU_STACK_SIZE=64M
%endif
STAGE1_FLAGS="-g -O2"
%if 0%{?do_profiling} && !0%{?building_testsuite:1}
%if 0%{?do_profiling} && !0%{?building_testsuite:1} && !0%{?want_reproducible_builds}
%ifarch x86_64 %ix86 ppc64le s390x aarch64
%if %{with bootstrap}
%define use_pgo_bootstrap 1
@@ -2796,6 +2811,8 @@ STAGE1_FLAGS="-g -O2"
make info
%if 0%{?run_tests:1}
echo "Run testsuite"
# Use the bootstrap compiler for compat tests
export ALT_CC_UNDER_TEST=/usr/bin/gcc ALT_CXX_UNDER_TEST=/usr/bin/g++
(make -C %{GCCDIST}/libstdc++-v3 check-abi || true)
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.log %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.log
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.sum %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.sum
@@ -2806,6 +2823,8 @@ mkdir ../testresults
../contrib/test_summary | tee ../testresults/test_summary.txt
%endif
%define __provides_exclude_from ^%{libsubdir}/.*\.so.*$
%install
# Make sure libtool re-linking libasan at install time doesn't drop the
# libstdc++ reference to make asan of C++ modules in python work
@@ -2894,7 +2913,8 @@ if ! test -z "$dir_ml"; then
fi
%endif
# move shared libs from versionspecific dir to main libdir
# move shared libs from versionspecific dir to main libdir, keep a copy
# for link-editing in the .so
for libname in \
%if %{build_fortran}
libgfortran \
@@ -2958,8 +2978,16 @@ for libname in \
mv $lib %{buildroot}/%{mainlibdir}/
done
if test -L %{buildroot}/%{versmainlibdir}/$libname.so; then
ln -sf %{mainlibdir}/`readlink %{buildroot}/%{versmainlibdir}/$libname.so | sed -e 's/\(.*\.so\.[^\.]*\).*/\1/'` \
%{buildroot}/%{versmainlibdir}/$libname.so
cp %{buildroot}/%{mainlibdir}/`readlink %{buildroot}/%{versmainlibdir}/$libname.so` \
%{buildroot}/%{versmainlibdir}/$libname.so.tem
rm %{buildroot}/%{versmainlibdir}/$libname.so
mv %{buildroot}/%{versmainlibdir}/$libname.so.tem %{buildroot}/%{versmainlibdir}/$libname.so
strip -g %{buildroot}/%{versmainlibdir}/$libname.so
else
if test -e %{buildroot}/%{versmainlibdir}/$libname.so; then
echo ERROR: unexpected linker script for $libname.so
exit 1
fi
fi
%if %{biarch}
if test -d %{buildroot}/%{versmainlibdirbi}; then
@@ -2967,8 +2995,16 @@ for libname in \
mv $lib %{buildroot}/%{mainlibdirbi}/
done
if test -L %{buildroot}/%{versmainlibdirbi}/$libname.so; then
ln -sf %{mainlibdirbi}/`readlink %{buildroot}/%{versmainlibdirbi}/$libname.so | sed -e 's/\(.*\.so\.[^\.]*\).*/\1/'` \
%{buildroot}/%{versmainlibdirbi}/$libname.so
cp %{buildroot}/%{mainlibdirbi}/`readlink %{buildroot}/%{versmainlibdirbi}/$libname.so` \
%{buildroot}/%{versmainlibdirbi}/$libname.so.tem
rm %{buildroot}/%{versmainlibdirbi}/$libname.so
mv %{buildroot}/%{versmainlibdirbi}/$libname.so.tem %{buildroot}/%{versmainlibdirbi}/$libname.so
strip -g %{buildroot}/%{versmainlibdirbi}/$libname.so
else
if test -e %{buildroot}/%{versmainlibdirbi}/$libname.so; then
echo ERROR: unexpected linker script for $libname.so
exit 1
fi
fi
fi
%endif
@@ -2988,40 +3024,50 @@ sed -i -e '/^libdir/s/\/gcc\/%{GCCDIST}\/%{gcc_dir_version}//g' %{buildroot}/%{_
%endif
%endif
# Move libgcc_s around
# Move libgcc_s around, make sure a version specific copy is available
# for link editing
chmod a+x %{buildroot}/%{_lib}/libgcc_s.so.%{libgcc_s}
if test -L %{buildroot}/%{_lib}/libgcc_s.so; then
rm -f %{buildroot}/%{_lib}/libgcc_s.so
ln -sf /%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdir}/libgcc_s.so
cp %{buildroot}//%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdir}/libgcc_s.so
strip -g %{buildroot}/%{versmainlibdir}/libgcc_s.so
else
mv %{buildroot}/%{_lib}/libgcc_s.so %{buildroot}/%{versmainlibdir}/
cp %{buildroot}//%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdir}/libgcc_s.so.%{libgcc_s}
strip -g %{buildroot}/%{versmainlibdir}/libgcc_s.so.%{libgcc_s}
fi
chmod a+x %{buildroot}/%{_lib}/libgcc_s.so.%{libgcc_s}
%if 0%{?usrmerged}
mv %{buildroot}/%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{_slibdir}/libgcc_s.so.%{libgcc_s}
%endif
%if %{biarch}
chmod a+x %{buildroot}/lib/libgcc_s.so.%{libgcc_s}
%if %{build_primary_64bit}
if test -L %{buildroot}/lib/libgcc_s.so; then
rm -f %{buildroot}/lib/libgcc_s.so
ln -sf /lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so
cp %{buildroot}/lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so
strip -g %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so
else
mv %{buildroot}/lib/libgcc_s.so %{buildroot}/%{versmainlibdirbi32}/
cp %{buildroot}/lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so.%{libgcc_s}
strip -g %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so.%{libgcc_s}
fi
ln -sf %{versmainlibdirbi32}/libgcc_s.so %{buildroot}/%{versmainlibdirbi32}/libgcc_s_32.so
chmod a+x %{buildroot}/lib/libgcc_s.so.%{libgcc_s}
%if 0%{?usrmerged}
mv %{buildroot}/lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{slibdir}/libgcc_s.so.%{libgcc_s}
%endif
%else
# 32-bit biarch systems
chmod a+x %{buildroot}/lib64/libgcc_s.so.%{libgcc_s}
if test -L %{buildroot}/lib64/libgcc_s.so; then
rm -f %{buildroot}/lib64/libgcc_s.so
ln -sf /lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so
cp %{buildroot}/lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so
strip -g %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so
else
mv %{buildroot}/lib64/libgcc_s.so %{buildroot}/%{versmainlibdirbi64}/
cp %{buildroot}/lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so.%{libgcc_s}
strip -g %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so.%{libgcc_s}
fi
ln -sf %{versmainlibdirbi64}/libgcc_s.so %{buildroot}/%{versmainlibdirbi64}/libgcc_s_64.so
chmod a+x %{buildroot}/lib64/libgcc_s.so.%{libgcc_s}
%if 0%{?usrmerged}
mv %{buildroot}/lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{slibdir64}/libgcc_s.so.%{libgcc_s}
%endif
@@ -3075,7 +3121,7 @@ chmod 644 ../testresults/*
%endif
# Remove files that we do not need to clean up filelist
# Preserve %{GCCDIST}-gcc%{binsuffix} binary for libgccjit as it is used as a driver
# Preserve %%{GCCDIST}-gcc%%{binsuffix} binary for libgccjit as it is used as a driver
mv %{buildroot}/%{_prefix}/bin/%{GCCDIST}-gcc%{binsuffix} %{buildroot}
rm -f %{buildroot}/%{_prefix}/bin/%{GCCDIST}-*
mv %{buildroot}/%{GCCDIST}-gcc%{binsuffix} %{buildroot}/%{_prefix}/bin/
@@ -3326,6 +3372,11 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc14-locale.lang
%{libsubdir}/include/riscv_crypto.h
%{libsubdir}/include/riscv_th_vector.h
%endif
%ifarch loongarch64
%{libsubdir}/include/larchintrin.h
%{libsubdir}/include/lasxintrin.h
%{libsubdir}/include/lsxintrin.h
%endif
%ifarch %ix86 x86_64
%{libsubdir}/include/cross-stdarg.h
%{libsubdir}/include/cpuid.h
@@ -3450,7 +3501,7 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc14-locale.lang
%versmainlib *crt*.o
%versmainlib libgcc*.a
%versmainlib libgcov.a
%versmainlib libgcc_s*.so
%versmainlib libgcc_s*.so*
%versmainlib libgomp.so
%versmainlib libgomp.a
%versmainlib libgomp.spec
@@ -3516,7 +3567,7 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc14-locale.lang
%versbiarchlib *crt*.o
%versbiarchlib libgcc*.a
%versbiarchlib libgcov.a
%versbiarchlib libgcc_s*.so
%versbiarchlib libgcc_s*.so*
%versbiarchlib libgomp.so
%versbiarchlib libgomp.a
%versbiarchlib libgomp.spec