Accepting request 1058888 from devel:gcc

- Configure external timezone database provided by the timezone
  package.  Make libstdc++6 recommend timezone to get a fully
  working std::chrono.  Install timezone when running the testsuite.
- Remove dependence on doxygen and graphviz when building the
  testsuite.  Those were used to build the libstdc++ API html
  documentation but we stopped shipping that when Java support
  was removed and nobody noticed.  Purge traces of the built
  libstdc++6-gccN-doc package.
- Package libhwasan_preinit.o on x86_64.

- Update to GCC trunk head (r13-5199-g2f81164255bf0d)
  * pulls changes up to the start of Stage 4
- Change version numbering to match the commit count from
  the git gcc-descr alias
- Add gcc13-pr107678.patch to fix unwinding on aarch64 with
  pointer signing.  [bsc#1206684]

- Don't rely on %usrmerged, set it based on standard %suse_version

- Enable PRU flavour for gcc13

OBS-URL: https://build.opensuse.org/request/show/1058888
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc13?expand=0&rev=3
This commit is contained in:
Dominique Leuenberger 2023-01-19 15:43:49 +00:00 committed by Git OBS Bridge
commit 657b8f9229
38 changed files with 2315 additions and 102 deletions

View File

@ -21,6 +21,8 @@
<flavor>cross-arm-none-gcc13</flavor>
<flavor>cross-epiphany-gcc13-bootstrap</flavor>
<flavor>cross-epiphany-gcc13</flavor>
<flavor>cross-pru-gcc13-bootstrap</flavor>
<flavor>cross-pru-gcc13</flavor>
<flavor>cross-riscv64-elf-gcc13-bootstrap</flavor>
<flavor>cross-riscv64-elf-gcc13</flavor>
<flavor>cross-rx-gcc13-bootstrap</flavor>

View File

@ -115,6 +115,7 @@ add_cross cross-hppa-gcc$base_ver-bootstrap hppa hppa-suse-linux %define gcc_lib
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-pru-gcc$base_ver pru pru
#add_newlib_cross cross-nds32le-gcc$base_ver nds32le nds32le-elf
add_newlib_cross cross-riscv64-elf-gcc$base_ver riscv64 riscv64-elf
#add_newlib_cross cross-rl78-gcc$base_ver rl78 rl78-elf

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -128,6 +128,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -329,6 +330,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -471,6 +473,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -128,6 +128,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -329,6 +330,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -471,6 +473,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -0,0 +1,992 @@
#
# spec file
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define pkgname cross-pru-gcc13-bootstrap
%define cross_arch pru
%define gcc_target_arch pru
%define gcc_target_newlib 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%if 0%{?gcc_libc_bootstrap:1}
%define build_cp 0
%endif
%define build_ada 0
%define build_libjava 0
%define build_java 0
%define build_fortran 0%{?gcc_accel:1}
%define build_objc 0
%define build_objcp 0
%define build_go 0
%define build_nvptx 0
%define build_gcn 0
%define build_d 0
%define enable_plugins 0
%define build_jit 0
%define use_lto_bootstrap 0
%define binutils_target %{cross_arch}
%if "%{cross_arch}" == "armv7l" || "%{cross_arch}" == "armv7hl"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "armv6l" || "%{cross_arch}" == "armv6hl"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "armv5tel"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "arm-none"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "riscv64-elf"
%define binutils_target riscv64
%endif
%if "%{cross_arch}" == "sparcv9"
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
%define binutils_os %{canonical_target}-elf
%else
%if "%{binutils_target}" == "arm"
%define binutils_os %{canonical_target}-suse-linux-gnueabi
%else
%if 0%{?gcc_accel:1}
%define binutils_os %{gcc_target_arch}
%else
%define binutils_os %{canonical_target}-suse-linux
%endif
%endif
%endif
%endif
%if 0%{?gcc_icecream:1}
%define sysroot %{_prefix}/%{gcc_target_arch}
%else
# offloading builds newlib in-tree and can install in
# the GCC private path without extra sysroot
%if 0%{!?gcc_accel:1}
# use same sysroot as in binutils.spec
%define sysroot %{_prefix}/%{binutils_os}/sys-root
%endif
%endif
%if %{suse_version} >= 1220
%define selfconflict() %1
%else
%define selfconflict() otherproviders(%1)
%endif
Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 13.0.1+git5199
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/+/-/')
%define binsuffix -13
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
Source2: gcc13-rpmlintrc
Source3: gcc13-testresults-rpmlintrc
Source4: README.First-for.SuSE.packagers
Source5: newlib-4.2.0.20211231.tar.xz
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch11: gcc7-remove-Wexpansion-to-defined-from-Wextra.patch
Patch15: gcc7-avoid-fixinc-error.diff
Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
# %%cross_arch is supposed to be the rpm target variant arch
# %%TARGET_ARCH will be the canonicalized target CPU part
# %%HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%if 0%{suse_version} < 1220
%define hostsuffix -4.8
BuildRequires: gcc48-c++
%else
BuildRequires: gcc-c++
%endif
%if %{suse_version} > 1500
BuildRequires: libzstd-devel
%endif
BuildRequires: bison
BuildRequires: flex
BuildRequires: gettext-devel
BuildRequires: glibc-devel-32bit
BuildRequires: mpc-devel
BuildRequires: mpfr-devel
BuildRequires: perl
%if %{suse_version} > 1220
BuildRequires: makeinfo
%else
BuildRequires: texinfo
%endif
BuildRequires: zlib-devel
%if %{suse_version} >= 1230
BuildRequires: isl-devel
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
%if 0%{!?gcc_icecream:1}
%if 0%{!?gcc_libc_bootstrap:1}
%if 0%{?gcc_target_newlib:1}
BuildRequires: cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
BuildRequires: avr-libc
%endif
%if 0%{?gcc_target_glibc:1}
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
BuildRequires: nvptx-tools
Requires: cross-nvptx-newlib-devel >= %{version}-%{release}
Requires: nvptx-tools
ExclusiveArch: x86_64
%define nvptx_newlib 1
%endif
%if "%{cross_arch}" == "amdgcn"
# amdgcn uses the llvm assembler and linker
%if %{suse_version} < 1550
BuildRequires: llvm13
%else
BuildRequires: llvm
%endif
BuildRequires: lld
%if %{suse_version} < 1550
Requires: llvm13
%else
Requires: llvm
%endif
Requires: cross-amdgcn-newlib-devel >= %{version}-%{release}
Requires: lld
# SLE12 does not fulfil build requirements for GCN, SLE15 SP1 does
# technically also SLE12 SP5 but do not bother there
%if %{suse_version} >= 1550 || 0%{?sle_version:%sle_version} >= 150100
ExclusiveArch: x86_64
%else
ExclusiveArch: do-not-build
%endif
%define amdgcn_newlib 1
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_target_glibc:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le ppc64 x86_64 s390x aarch64 riscv64
%if "%{cross_arch}" == "pru"
ExclusiveArch: %arm
%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
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
# Generally only one cross for the same target triplet can be installed
# at the same time as we are populating a non-version-specific sysroot
Provides: %{gcc_target_arch}-gcc
Conflicts: %selfconflict %{gcc_target_arch}-gcc
%endif
%if 0%{?gcc_libc_bootstrap:1}
# 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}-gcc13
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
# The cross compiler only packages the arch specific c++ headers, so
# we need to depend on the host libstdc++ devel headers (we wouldn't need
# the libs, though)
Requires: libstdc++6-devel-gcc13
%endif
AutoReqProv: off
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
%description
The GNU Compiler Collection as a cross-compiler targeting %{cross_arch}.
%if 0%{?gcc_icecream:1}
Note this is only useful for building freestanding things like the
kernel since it fails to include target libraries and headers.
%endif
%if 0%{?gcc_libc_bootstrap:1}
This is a package that is necessary for bootstrapping another package
only, it is not intended for any other use.
%endif
%if 0%{suse_version} >= 1500
# Synchronize output by lines, useful for configure output
%define make_output_sync -Oline
%endif
%prep
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.2.0.20211231/newlib .
%else
%setup -q -n gcc-%{version}
%endif
#test patching start
%patch2
%patch5
%patch6
%patch7
%patch11
%patch15
%patch16
%patch17 -p1
# These patches are needed only for llvm11
%if "%{TARGET_ARCH}" == "amdgcn" && %{suse_version} < 1550
%patch18 -p1
%patch20 -p1
%endif
# In SLE15 and earlier default to dwarf4, not dwarf5
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
#test patching end
%build
%define _lto_cflags %{nil}
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
%if %{build_d}
languages=$languages,d
%endif
%if %{build_jit}
languages=$languages,jit
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if "%{TARGET_ARCH}" == "amdgcn"
mkdir -p target-tools/bin
ln -s /usr/bin/llvm-ar target-tools/bin/amdgcn-amdhsa-ar
ln -s /usr/bin/llvm-mc target-tools/bin/amdgcn-amdhsa-as
ln -s /usr/bin/lld target-tools/bin/amdgcn-amdhsa-ld
ln -s /usr/bin/llvm-nm target-tools/bin/amdgcn-amdhsa-nm
ln -s /usr/bin/llvm-ranlib target-tools/bin/amdgcn-amdhsa-ranlib
export PATH="`pwd`/target-tools/bin:$PATH"
%endif
%if "%{hostsuffix}" != ""
mkdir -p host-tools/bin
# Using the host gnatmake like
# CC="gcc%%{hostsuffix}" GNATBIND="gnatbind%%{hostsuffix}"
# GNATMAKE="gnatmake%%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
%if %{build_ada}
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
%endif
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
cp -a /usr/bin/g++%{hostsuffix} host-tools/bin/g++
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
%if %{build_d} && %{suse_version} < 1550
# We are using gcc11-d to bootstrap d
export GDC=gdc-11
%endif
# libsanitizer needs <crypt.h> and since the glibc/libxcrypt split
# we don't have that yet in a pure cross environment
%if 0%{?gcc_target_arch:1}
CONFARGS="$CONFARGS --disable-libsanitizer"
%endif
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
nvptx-none,\
%endif
%if %{build_gcn}
amdgcn-amdhsa,\
%endif
--enable-offload-defaulted \
%endif
%if %{build_nvptx}
--without-cuda-driver \
%endif
%if %{build_jit}
--enable-host-shared \
%endif
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%if 0%{suse_version} >= 1500
--enable-cet=auto \
%else
--disable-cet \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="https://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
%if 0%{?sysroot:1}
--with-slibdir=%{sysroot}/%{_lib} \
%else
--with-slibdir=/%{_lib} \
%endif
--with-system-zlib \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
%if %{build_d}
--enable-libphobos \
%endif
--enable-version-specific-runtime-libs \
--with-gcc-major-version-only \
%if 0%{!?gcc_target_arch:1}
--enable-linker-build-id \
%else
%if 0%{?gcc_target_glibc:1}
--enable-linker-build-id \
%endif
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%ifarch %{disable_multilib_arch}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--disable-gcov \
%endif
%else
%if 0%{?gcc_libc_bootstrap:1}
--disable-gcov --disable-threads --disable-shared \
--disable-libmudflap --disable-libssp --disable-libgomp \
--disable-libquadmath --disable-libatomic \
--without-headers --with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
--enable-newlib-io-long-long \
%endif
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
--without-gxx-include-dir \
--with-native-system-header-dir=/include \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm-none"
--enable-multilib \
--with-multilib-list=aprofile,rmprofile \
--disable-decimal-float \
--disable-libffi \
--disable-libgomp \
--disable-libmudflap \
--disable-libquadmath \
--disable-shared \
--disable-threads \
--disable-tls \
%endif
%if "%{TARGET_ARCH}" == "armv6hl" || "%{TARGET_ARCH}" == "arm"
--with-cpu=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv2 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-cpu=generic-armv7-a \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "aarch64"
--enable-fix-cortex-a53-835769 \
--enable-fix-cortex-a53-843419 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1350
--with-cpu=power8 \
--with-tune=power9 \
%else
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%endif
%if %{suse_version} > 1500
--with-long-double-format=ieee \
%else
--with-long-double-format=ibm \
%endif
--enable-secureplt \
--with-long-double-128 \
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
--with-cpu-64=power4 \
--enable-secureplt \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
%if 0%{?sle_version:%sle_version} >= 150000
--with-arch-32=x86-64 \
%else
--with-arch-32=i586 \
%endif
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
%ifnarch %{disable_multilib_arch}
--enable-multilib \
--with-arch-32=x86-64 \
%endif
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
%if "%{TARGET_ARCH}" == "riscv64"
--disable-multilib \
%endif
%if %{use_lto_bootstrap} && !0%{?building_testsuite:1}
--with-build-config=bootstrap-lto-lean \
--enable-link-mutex \
%endif
%ifarch riscv64
--enable-link-mutex \
%endif
$CONFARGS \
--build=%{GCCDIST} \
--host=%{GCCDIST} || \
{
rc=$?;
echo "------- BEGIN config.log ------";
%{__cat} config.log;
echo "------- END config.log ------";
exit $rc;
}
%if 0%{!?gcc_icecream:1}
make %{?make_output_sync} %{?_smp_mflags}
%else
make %{?make_output_sync} %{?_smp_mflags} all-host
%endif
%if 0%{?gcc_icecream:%gcc_icecream}
%package -n cross-%cross_arch-gcc13-icecream-backend
Summary: Icecream backend for the GNU C Compiler
Group: Development/Languages/C and C++
%description -n cross-%cross_arch-gcc13-icecream-backend
This package contains the icecream environment for the GNU C Compiler
%endif
%if 0%{?nvptx_newlib:1}
%package -n cross-nvptx-newlib13-devel
Summary: Newlib for the nvptx offload target
Group: Development/Languages/C and C++
Provides: cross-nvptx-newlib-devel = %{version}-%{release}
Conflicts: cross-nvptx-newlib-devel
%description -n cross-nvptx-newlib13-devel
Newlib development files for the nvptx offload target compiler.
%endif
%if 0%{?amdgcn_newlib:1}
%package -n cross-amdgcn-newlib13-devel
Summary: Newlib for the amdgcn offload target
Group: Development/Languages/C and C++
Provides: cross-amdgcn-newlib-devel = %{version}-%{release}
Conflicts: cross-amdgcn-newlib-devel
%description -n cross-amdgcn-newlib13-devel
Newlib development files for the amdgcn offload target compiler.
%endif
%define targetlibsubdir %{_libdir}/gcc/%{gcc_target_arch}/%{gcc_dir_version}
%install
cd obj-%{GCCDIST}
%if "%{TARGET_ARCH}" == "amdgcn"
# libtool needs to be able to call ranlib
export PATH="`pwd`/target-tools/bin:$PATH"
%endif
# install and fixup host parts
make DESTDIR=$RPM_BUILD_ROOT install-host
rm -rf $RPM_BUILD_ROOT/%{targetlibsubdir}/install-tools
rm -f $RPM_BUILD_ROOT/%{targetlibsubdir}/liblto_plugin.la
# common fixup
rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
# install and fixup target parts
%if 0%{?gcc_icecream:1}
# so expect the sysroot to be populated from natively built binaries
%else
# We want shared libraries to reside in the sysroot but the .so symlinks
# on the host. Once we have a cross target that has shared libs we need
# to manually fix up things here like we do for non-cross compilers
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
# 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.
mkdir -p $RPM_BUILD_ROOT/%_prefix/include/c++/%{gcc_dir_version}
find $RPM_BUILD_ROOT/%_prefix/include/c++/%{gcc_dir_version} -mindepth 1 -maxdepth 1 -type d -a -not -name %{gcc_target_arch} | xargs -r rm -r
find $RPM_BUILD_ROOT/%_prefix/include/c++/%{gcc_dir_version} -maxdepth 1 -type f | xargs -r rm
# And also remove installed pretty printers which conflict in similar ways
rm -rf $RPM_BUILD_ROOT/%{_datadir}/gcc%{binsuffix}
%endif
%endif
%if 0%{?binutils_os:1}
for prog in as ld; do
ln -s /usr/%{binutils_os}/bin/$prog $RPM_BUILD_ROOT%{targetlibsubdir}/
done
%endif
# remove docs
rm -rf $RPM_BUILD_ROOT%{_mandir}
rm -rf $RPM_BUILD_ROOT%{_infodir}
# for accelerators remove all frontends but lto1 and also install-tools
%if 0%{?gcc_accel:1}
rm -f $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch}/cc1
rm -f $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch}/cc1plus
rm -rf $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch}/install-tools
rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# also move things from target directories into the accel path since
# that is the place where we later search for (only)
( cd $RPM_BUILD_ROOT%{targetlibsubdir} && tar cf - . ) | ( cd $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch} && tar xf - )
rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
%if "%{TARGET_ARCH}" == "amdgcn"
mkdir -p $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin
ln -s `readlink -f /usr/bin/llvm-ar` $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/ar
ln -s `readlink -f /usr/bin/llvm-mc` $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/as
ln -s /usr/bin/lld $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/ld
ln -s `readlink -f /usr/bin/llvm-nm` $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/nm
ln -s `readlink -f /usr/bin/llvm-ranlib` $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/ranlib
ln -s %{_prefix}/amdgcn-amdhsa/bin/ar $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-ar
ln -s %{_prefix}/amdgcn-amdhsa/bin/as $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-as
ln -s %{_prefix}/amdgcn-amdhsa/bin/ld $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-ld
ln -s %{_prefix}/amdgcn-amdhsa/bin/nm $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-nm
ln -s %{_prefix}/amdgcn-amdhsa/bin/ranlib $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-ranlib
%endif
%if 0%{?gcc_icecream:%gcc_icecream}
# Build an icecream environment
# The assembler comes from the cross-binutils, and hence is _not_
# named funnily, not even on ppc, so there we need the original target
install -s -D %{_prefix}/bin/%{binutils_os}-as \
$RPM_BUILD_ROOT/env/usr/bin/as
install -s $RPM_BUILD_ROOT/%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix} \
$RPM_BUILD_ROOT/env/usr/bin/g++
install -s $RPM_BUILD_ROOT/%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix} \
$RPM_BUILD_ROOT/env/usr/bin/gcc
for back in cc1 cc1plus; do
install -s -D $RPM_BUILD_ROOT/%{targetlibsubdir}/$back \
$RPM_BUILD_ROOT/env%{targetlibsubdir}/$back
done
if test -f $RPM_BUILD_ROOT/%{targetlibsubdir}/liblto_plugin.so; then
install -s -D $RPM_BUILD_ROOT/%{targetlibsubdir}/liblto_plugin.so \
$RPM_BUILD_ROOT/env%{targetlibsubdir}/liblto_plugin.so
fi
# Make sure to also pull in all shared library requirements for the
# binaries we put into the environment which is operated by chrooting
# into it and execing the compiler
libs=`for bin in $RPM_BUILD_ROOT/env/usr/bin/* $RPM_BUILD_ROOT/env%{targetlibsubdir}/*; do \
ldd $bin | sed -n '\,^[^/]*\(/[^ ]*\).*,{ s//\1/; p; }' ;\
done | sort -u `
for lib in $libs; do
# Check wether the same library also exists in the parent directory,
# and prefer that on the assumption that it is a more generic one.
baselib=`echo "$lib" | sed 's,/[^/]*\(/[^/]*\)$,\1,'`
test -f "$baselib" && lib=$baselib
install -s -D $lib $RPM_BUILD_ROOT/env$lib
done
cd $RPM_BUILD_ROOT/env
tar --no-recursion --mtime @${SOURCE_DATE_EPOCH:-$(date +%s)} --format=gnu -cv `find *|LC_ALL=C sort` |\
gzip -n9 > ../%{name}_%{_arch}.tar.gz
cd ..
mkdir -p usr/share/icecream-envs
mv %{name}_%{_arch}.tar.gz usr/share/icecream-envs
rpm -q --changelog glibc > usr/share/icecream-envs/%{name}_%{_arch}.glibc
rpm -q --changelog binutils > usr/share/icecream-envs/%{name}_%{_arch}.binutils
rm -r env
%endif
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
c++ g++ \
%endif
gcc-ar gcc-nm gcc-ranlib lto-dump \
%if 0%{!?gcc_libc_bootstrap:1}
gcov gcov-dump gcov-tool \
%endif
; do
ln -s %{_sysconfdir}/alternatives/%{gcc_target_arch}-$ex \
%{buildroot}%{_bindir}/%{gcc_target_arch}-$ex
done
%post
%{_sbindir}/update-alternatives \
--install %{_bindir}/%{gcc_target_arch}-gcc %{gcc_target_arch}-gcc %{_bindir}/%{gcc_target_arch}-gcc%{binsuffix} 13 \
--slave %{_bindir}/%{gcc_target_arch}-cpp %{gcc_target_arch}-cpp %{_bindir}/%{gcc_target_arch}-cpp%{binsuffix} \
%if %{build_cp}
--slave %{_bindir}/%{gcc_target_arch}-c++ %{gcc_target_arch}-c++ %{_bindir}/%{gcc_target_arch}-c++%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-g++ %{gcc_target_arch}-g++ %{_bindir}/%{gcc_target_arch}-g++%{binsuffix} \
%endif
%if 0%{!?gcc_libc_bootstrap:1}
--slave %{_bindir}/%{gcc_target_arch}-gcov %{gcc_target_arch}-gcov %{_bindir}/%{gcc_target_arch}-gcov%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcov-dump %{gcc_target_arch}-gcov-dump %{_bindir}/%{gcc_target_arch}-gcov-dump%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcov-tool %{gcc_target_arch}-gcov-tool %{_bindir}/%{gcc_target_arch}-gcov-tool%{binsuffix} \
%endif
--slave %{_bindir}/%{gcc_target_arch}-gcc-ar %{gcc_target_arch}-gcc-ar %{_bindir}/%{gcc_target_arch}-gcc-ar%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcc-nm %{gcc_target_arch}-gcc-nm %{_bindir}/%{gcc_target_arch}-gcc-nm%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-lto-dump %{gcc_target_arch}-lto-dump %{_bindir}/%{gcc_target_arch}-lto-dump%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcc-ranlib %{gcc_target_arch}-gcc-ranlib %{_bindir}/%{gcc_target_arch}-gcc-ranlib%{binsuffix}
%postun
if [ ! -f %{_bindir}/%{gcc_target_arch}-gcc ] ; then
%{_sbindir}/update-alternatives --remove %{gcc_target_arch}-gcc %{_bindir}/%{gcc_target_arch}-gcc%{binsuffix}
fi
%endif
%files
%defattr(-,root,root)
%if 0%{?gcc_accel:1}
%{_prefix}/bin/%{GCCDIST}-accel-%{gcc_target_arch}-*
%dir %{libsubdir}
%dir %{libsubdir}/accel
%{libsubdir}/accel/%{gcc_target_arch}
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-cpp%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcc-ar%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-lto-dump%{binsuffix}
%if 0%{!?gcc_libc_bootstrap:1}
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcc
%{_prefix}/bin/%{gcc_target_arch}-cpp
%{_prefix}/bin/%{gcc_target_arch}-gcc-ar
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-nm
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ranlib
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-lto-dump
%if 0%{!?gcc_libc_bootstrap:1}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%if %{build_cp}
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-c++
%{_prefix}/bin/%{gcc_target_arch}-g++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++
%endif
%endif
%endif
%dir %{targetlibsubdir}
%dir %{_libdir}/gcc/%{gcc_target_arch}
%{targetlibsubdir}
%endif
%if 0%{!?gcc_icecream:1} && 0%{!?gcc_libc_bootstrap:1} && 0%{?sysroot:1}
%{sysroot}
%endif
%if 0%{?gcc_icecream:%gcc_icecream}
%files -n cross-%cross_arch-gcc13-icecream-backend
%defattr(-,root,root)
/usr/share/icecream-envs
%endif
%if 0%{?nvptx_newlib:1}
%files -n cross-nvptx-newlib13-devel
%defattr(-,root,root)
%{_prefix}/%{gcc_target_arch}
%endif
%if 0%{?amdgcn_newlib:1}
%files -n cross-amdgcn-newlib13-devel
%defattr(-,root,root)
%{_prefix}/%{gcc_target_arch}
%{_prefix}/bin/amdgcn-amdhsa-ar
%{_prefix}/bin/amdgcn-amdhsa-as
%{_prefix}/bin/amdgcn-amdhsa-ld
%{_prefix}/bin/amdgcn-amdhsa-nm
%{_prefix}/bin/amdgcn-amdhsa-ranlib
%endif
%changelog

991
cross-pru-gcc13.spec Normal file
View File

@ -0,0 +1,991 @@
#
# spec file
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define pkgname cross-pru-gcc13
%define cross_arch pru
%define gcc_target_arch pru
%define gcc_target_newlib 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%if 0%{?gcc_libc_bootstrap:1}
%define build_cp 0
%endif
%define build_ada 0
%define build_libjava 0
%define build_java 0
%define build_fortran 0%{?gcc_accel:1}
%define build_objc 0
%define build_objcp 0
%define build_go 0
%define build_nvptx 0
%define build_gcn 0
%define build_d 0
%define enable_plugins 0
%define build_jit 0
%define use_lto_bootstrap 0
%define binutils_target %{cross_arch}
%if "%{cross_arch}" == "armv7l" || "%{cross_arch}" == "armv7hl"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "armv6l" || "%{cross_arch}" == "armv6hl"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "armv5tel"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "arm-none"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "riscv64-elf"
%define binutils_target riscv64
%endif
%if "%{cross_arch}" == "sparcv9"
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
%define binutils_os %{canonical_target}-elf
%else
%if "%{binutils_target}" == "arm"
%define binutils_os %{canonical_target}-suse-linux-gnueabi
%else
%if 0%{?gcc_accel:1}
%define binutils_os %{gcc_target_arch}
%else
%define binutils_os %{canonical_target}-suse-linux
%endif
%endif
%endif
%endif
%if 0%{?gcc_icecream:1}
%define sysroot %{_prefix}/%{gcc_target_arch}
%else
# offloading builds newlib in-tree and can install in
# the GCC private path without extra sysroot
%if 0%{!?gcc_accel:1}
# use same sysroot as in binutils.spec
%define sysroot %{_prefix}/%{binutils_os}/sys-root
%endif
%endif
%if %{suse_version} >= 1220
%define selfconflict() %1
%else
%define selfconflict() otherproviders(%1)
%endif
Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 13.0.1+git5199
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/+/-/')
%define binsuffix -13
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
Source2: gcc13-rpmlintrc
Source3: gcc13-testresults-rpmlintrc
Source4: README.First-for.SuSE.packagers
Source5: newlib-4.2.0.20211231.tar.xz
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch11: gcc7-remove-Wexpansion-to-defined-from-Wextra.patch
Patch15: gcc7-avoid-fixinc-error.diff
Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
# %%cross_arch is supposed to be the rpm target variant arch
# %%TARGET_ARCH will be the canonicalized target CPU part
# %%HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%if 0%{suse_version} < 1220
%define hostsuffix -4.8
BuildRequires: gcc48-c++
%else
BuildRequires: gcc-c++
%endif
%if %{suse_version} > 1500
BuildRequires: libzstd-devel
%endif
BuildRequires: bison
BuildRequires: flex
BuildRequires: gettext-devel
BuildRequires: glibc-devel-32bit
BuildRequires: mpc-devel
BuildRequires: mpfr-devel
BuildRequires: perl
%if %{suse_version} > 1220
BuildRequires: makeinfo
%else
BuildRequires: texinfo
%endif
BuildRequires: zlib-devel
%if %{suse_version} >= 1230
BuildRequires: isl-devel
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
%if 0%{!?gcc_icecream:1}
%if 0%{!?gcc_libc_bootstrap:1}
%if 0%{?gcc_target_newlib:1}
BuildRequires: cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
BuildRequires: avr-libc
%endif
%if 0%{?gcc_target_glibc:1}
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
BuildRequires: nvptx-tools
Requires: cross-nvptx-newlib-devel >= %{version}-%{release}
Requires: nvptx-tools
ExclusiveArch: x86_64
%define nvptx_newlib 1
%endif
%if "%{cross_arch}" == "amdgcn"
# amdgcn uses the llvm assembler and linker
%if %{suse_version} < 1550
BuildRequires: llvm13
%else
BuildRequires: llvm
%endif
BuildRequires: lld
%if %{suse_version} < 1550
Requires: llvm13
%else
Requires: llvm
%endif
Requires: cross-amdgcn-newlib-devel >= %{version}-%{release}
Requires: lld
# SLE12 does not fulfil build requirements for GCN, SLE15 SP1 does
# technically also SLE12 SP5 but do not bother there
%if %{suse_version} >= 1550 || 0%{?sle_version:%sle_version} >= 150100
ExclusiveArch: x86_64
%else
ExclusiveArch: do-not-build
%endif
%define amdgcn_newlib 1
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_target_glibc:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le ppc64 x86_64 s390x aarch64 riscv64
%if "%{cross_arch}" == "pru"
ExclusiveArch: %arm
%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
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
# Generally only one cross for the same target triplet can be installed
# at the same time as we are populating a non-version-specific sysroot
Provides: %{gcc_target_arch}-gcc
Conflicts: %selfconflict %{gcc_target_arch}-gcc
%endif
%if 0%{?gcc_libc_bootstrap:1}
# 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}-gcc13
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
# The cross compiler only packages the arch specific c++ headers, so
# we need to depend on the host libstdc++ devel headers (we wouldn't need
# the libs, though)
Requires: libstdc++6-devel-gcc13
%endif
AutoReqProv: off
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
%description
The GNU Compiler Collection as a cross-compiler targeting %{cross_arch}.
%if 0%{?gcc_icecream:1}
Note this is only useful for building freestanding things like the
kernel since it fails to include target libraries and headers.
%endif
%if 0%{?gcc_libc_bootstrap:1}
This is a package that is necessary for bootstrapping another package
only, it is not intended for any other use.
%endif
%if 0%{suse_version} >= 1500
# Synchronize output by lines, useful for configure output
%define make_output_sync -Oline
%endif
%prep
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.2.0.20211231/newlib .
%else
%setup -q -n gcc-%{version}
%endif
#test patching start
%patch2
%patch5
%patch6
%patch7
%patch11
%patch15
%patch16
%patch17 -p1
# These patches are needed only for llvm11
%if "%{TARGET_ARCH}" == "amdgcn" && %{suse_version} < 1550
%patch18 -p1
%patch20 -p1
%endif
# In SLE15 and earlier default to dwarf4, not dwarf5
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
#test patching end
%build
%define _lto_cflags %{nil}
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
%if %{build_d}
languages=$languages,d
%endif
%if %{build_jit}
languages=$languages,jit
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if "%{TARGET_ARCH}" == "amdgcn"
mkdir -p target-tools/bin
ln -s /usr/bin/llvm-ar target-tools/bin/amdgcn-amdhsa-ar
ln -s /usr/bin/llvm-mc target-tools/bin/amdgcn-amdhsa-as
ln -s /usr/bin/lld target-tools/bin/amdgcn-amdhsa-ld
ln -s /usr/bin/llvm-nm target-tools/bin/amdgcn-amdhsa-nm
ln -s /usr/bin/llvm-ranlib target-tools/bin/amdgcn-amdhsa-ranlib
export PATH="`pwd`/target-tools/bin:$PATH"
%endif
%if "%{hostsuffix}" != ""
mkdir -p host-tools/bin
# Using the host gnatmake like
# CC="gcc%%{hostsuffix}" GNATBIND="gnatbind%%{hostsuffix}"
# GNATMAKE="gnatmake%%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
%if %{build_ada}
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
%endif
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
cp -a /usr/bin/g++%{hostsuffix} host-tools/bin/g++
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
%if %{build_d} && %{suse_version} < 1550
# We are using gcc11-d to bootstrap d
export GDC=gdc-11
%endif
# libsanitizer needs <crypt.h> and since the glibc/libxcrypt split
# we don't have that yet in a pure cross environment
%if 0%{?gcc_target_arch:1}
CONFARGS="$CONFARGS --disable-libsanitizer"
%endif
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
nvptx-none,\
%endif
%if %{build_gcn}
amdgcn-amdhsa,\
%endif
--enable-offload-defaulted \
%endif
%if %{build_nvptx}
--without-cuda-driver \
%endif
%if %{build_jit}
--enable-host-shared \
%endif
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%if 0%{suse_version} >= 1500
--enable-cet=auto \
%else
--disable-cet \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="https://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
%if 0%{?sysroot:1}
--with-slibdir=%{sysroot}/%{_lib} \
%else
--with-slibdir=/%{_lib} \
%endif
--with-system-zlib \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
%if %{build_d}
--enable-libphobos \
%endif
--enable-version-specific-runtime-libs \
--with-gcc-major-version-only \
%if 0%{!?gcc_target_arch:1}
--enable-linker-build-id \
%else
%if 0%{?gcc_target_glibc:1}
--enable-linker-build-id \
%endif
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%ifarch %{disable_multilib_arch}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--disable-gcov \
%endif
%else
%if 0%{?gcc_libc_bootstrap:1}
--disable-gcov --disable-threads --disable-shared \
--disable-libmudflap --disable-libssp --disable-libgomp \
--disable-libquadmath --disable-libatomic \
--without-headers --with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
--enable-newlib-io-long-long \
%endif
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
--without-gxx-include-dir \
--with-native-system-header-dir=/include \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm-none"
--enable-multilib \
--with-multilib-list=aprofile,rmprofile \
--disable-decimal-float \
--disable-libffi \
--disable-libgomp \
--disable-libmudflap \
--disable-libquadmath \
--disable-shared \
--disable-threads \
--disable-tls \
%endif
%if "%{TARGET_ARCH}" == "armv6hl" || "%{TARGET_ARCH}" == "arm"
--with-cpu=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv2 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-cpu=generic-armv7-a \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "aarch64"
--enable-fix-cortex-a53-835769 \
--enable-fix-cortex-a53-843419 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1350
--with-cpu=power8 \
--with-tune=power9 \
%else
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%endif
%if %{suse_version} > 1500
--with-long-double-format=ieee \
%else
--with-long-double-format=ibm \
%endif
--enable-secureplt \
--with-long-double-128 \
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
--with-cpu-64=power4 \
--enable-secureplt \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
%if 0%{?sle_version:%sle_version} >= 150000
--with-arch-32=x86-64 \
%else
--with-arch-32=i586 \
%endif
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
%ifnarch %{disable_multilib_arch}
--enable-multilib \
--with-arch-32=x86-64 \
%endif
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
%if "%{TARGET_ARCH}" == "riscv64"
--disable-multilib \
%endif
%if %{use_lto_bootstrap} && !0%{?building_testsuite:1}
--with-build-config=bootstrap-lto-lean \
--enable-link-mutex \
%endif
%ifarch riscv64
--enable-link-mutex \
%endif
$CONFARGS \
--build=%{GCCDIST} \
--host=%{GCCDIST} || \
{
rc=$?;
echo "------- BEGIN config.log ------";
%{__cat} config.log;
echo "------- END config.log ------";
exit $rc;
}
%if 0%{!?gcc_icecream:1}
make %{?make_output_sync} %{?_smp_mflags}
%else
make %{?make_output_sync} %{?_smp_mflags} all-host
%endif
%if 0%{?gcc_icecream:%gcc_icecream}
%package -n cross-%cross_arch-gcc13-icecream-backend
Summary: Icecream backend for the GNU C Compiler
Group: Development/Languages/C and C++
%description -n cross-%cross_arch-gcc13-icecream-backend
This package contains the icecream environment for the GNU C Compiler
%endif
%if 0%{?nvptx_newlib:1}
%package -n cross-nvptx-newlib13-devel
Summary: Newlib for the nvptx offload target
Group: Development/Languages/C and C++
Provides: cross-nvptx-newlib-devel = %{version}-%{release}
Conflicts: cross-nvptx-newlib-devel
%description -n cross-nvptx-newlib13-devel
Newlib development files for the nvptx offload target compiler.
%endif
%if 0%{?amdgcn_newlib:1}
%package -n cross-amdgcn-newlib13-devel
Summary: Newlib for the amdgcn offload target
Group: Development/Languages/C and C++
Provides: cross-amdgcn-newlib-devel = %{version}-%{release}
Conflicts: cross-amdgcn-newlib-devel
%description -n cross-amdgcn-newlib13-devel
Newlib development files for the amdgcn offload target compiler.
%endif
%define targetlibsubdir %{_libdir}/gcc/%{gcc_target_arch}/%{gcc_dir_version}
%install
cd obj-%{GCCDIST}
%if "%{TARGET_ARCH}" == "amdgcn"
# libtool needs to be able to call ranlib
export PATH="`pwd`/target-tools/bin:$PATH"
%endif
# install and fixup host parts
make DESTDIR=$RPM_BUILD_ROOT install-host
rm -rf $RPM_BUILD_ROOT/%{targetlibsubdir}/install-tools
rm -f $RPM_BUILD_ROOT/%{targetlibsubdir}/liblto_plugin.la
# common fixup
rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
# install and fixup target parts
%if 0%{?gcc_icecream:1}
# so expect the sysroot to be populated from natively built binaries
%else
# We want shared libraries to reside in the sysroot but the .so symlinks
# on the host. Once we have a cross target that has shared libs we need
# to manually fix up things here like we do for non-cross compilers
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
# 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.
mkdir -p $RPM_BUILD_ROOT/%_prefix/include/c++/%{gcc_dir_version}
find $RPM_BUILD_ROOT/%_prefix/include/c++/%{gcc_dir_version} -mindepth 1 -maxdepth 1 -type d -a -not -name %{gcc_target_arch} | xargs -r rm -r
find $RPM_BUILD_ROOT/%_prefix/include/c++/%{gcc_dir_version} -maxdepth 1 -type f | xargs -r rm
# And also remove installed pretty printers which conflict in similar ways
rm -rf $RPM_BUILD_ROOT/%{_datadir}/gcc%{binsuffix}
%endif
%endif
%if 0%{?binutils_os:1}
for prog in as ld; do
ln -s /usr/%{binutils_os}/bin/$prog $RPM_BUILD_ROOT%{targetlibsubdir}/
done
%endif
# remove docs
rm -rf $RPM_BUILD_ROOT%{_mandir}
rm -rf $RPM_BUILD_ROOT%{_infodir}
# for accelerators remove all frontends but lto1 and also install-tools
%if 0%{?gcc_accel:1}
rm -f $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch}/cc1
rm -f $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch}/cc1plus
rm -rf $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch}/install-tools
rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# also move things from target directories into the accel path since
# that is the place where we later search for (only)
( cd $RPM_BUILD_ROOT%{targetlibsubdir} && tar cf - . ) | ( cd $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch} && tar xf - )
rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
%if "%{TARGET_ARCH}" == "amdgcn"
mkdir -p $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin
ln -s `readlink -f /usr/bin/llvm-ar` $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/ar
ln -s `readlink -f /usr/bin/llvm-mc` $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/as
ln -s /usr/bin/lld $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/ld
ln -s `readlink -f /usr/bin/llvm-nm` $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/nm
ln -s `readlink -f /usr/bin/llvm-ranlib` $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/ranlib
ln -s %{_prefix}/amdgcn-amdhsa/bin/ar $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-ar
ln -s %{_prefix}/amdgcn-amdhsa/bin/as $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-as
ln -s %{_prefix}/amdgcn-amdhsa/bin/ld $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-ld
ln -s %{_prefix}/amdgcn-amdhsa/bin/nm $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-nm
ln -s %{_prefix}/amdgcn-amdhsa/bin/ranlib $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-ranlib
%endif
%if 0%{?gcc_icecream:%gcc_icecream}
# Build an icecream environment
# The assembler comes from the cross-binutils, and hence is _not_
# named funnily, not even on ppc, so there we need the original target
install -s -D %{_prefix}/bin/%{binutils_os}-as \
$RPM_BUILD_ROOT/env/usr/bin/as
install -s $RPM_BUILD_ROOT/%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix} \
$RPM_BUILD_ROOT/env/usr/bin/g++
install -s $RPM_BUILD_ROOT/%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix} \
$RPM_BUILD_ROOT/env/usr/bin/gcc
for back in cc1 cc1plus; do
install -s -D $RPM_BUILD_ROOT/%{targetlibsubdir}/$back \
$RPM_BUILD_ROOT/env%{targetlibsubdir}/$back
done
if test -f $RPM_BUILD_ROOT/%{targetlibsubdir}/liblto_plugin.so; then
install -s -D $RPM_BUILD_ROOT/%{targetlibsubdir}/liblto_plugin.so \
$RPM_BUILD_ROOT/env%{targetlibsubdir}/liblto_plugin.so
fi
# Make sure to also pull in all shared library requirements for the
# binaries we put into the environment which is operated by chrooting
# into it and execing the compiler
libs=`for bin in $RPM_BUILD_ROOT/env/usr/bin/* $RPM_BUILD_ROOT/env%{targetlibsubdir}/*; do \
ldd $bin | sed -n '\,^[^/]*\(/[^ ]*\).*,{ s//\1/; p; }' ;\
done | sort -u `
for lib in $libs; do
# Check wether the same library also exists in the parent directory,
# and prefer that on the assumption that it is a more generic one.
baselib=`echo "$lib" | sed 's,/[^/]*\(/[^/]*\)$,\1,'`
test -f "$baselib" && lib=$baselib
install -s -D $lib $RPM_BUILD_ROOT/env$lib
done
cd $RPM_BUILD_ROOT/env
tar --no-recursion --mtime @${SOURCE_DATE_EPOCH:-$(date +%s)} --format=gnu -cv `find *|LC_ALL=C sort` |\
gzip -n9 > ../%{name}_%{_arch}.tar.gz
cd ..
mkdir -p usr/share/icecream-envs
mv %{name}_%{_arch}.tar.gz usr/share/icecream-envs
rpm -q --changelog glibc > usr/share/icecream-envs/%{name}_%{_arch}.glibc
rpm -q --changelog binutils > usr/share/icecream-envs/%{name}_%{_arch}.binutils
rm -r env
%endif
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
c++ g++ \
%endif
gcc-ar gcc-nm gcc-ranlib lto-dump \
%if 0%{!?gcc_libc_bootstrap:1}
gcov gcov-dump gcov-tool \
%endif
; do
ln -s %{_sysconfdir}/alternatives/%{gcc_target_arch}-$ex \
%{buildroot}%{_bindir}/%{gcc_target_arch}-$ex
done
%post
%{_sbindir}/update-alternatives \
--install %{_bindir}/%{gcc_target_arch}-gcc %{gcc_target_arch}-gcc %{_bindir}/%{gcc_target_arch}-gcc%{binsuffix} 13 \
--slave %{_bindir}/%{gcc_target_arch}-cpp %{gcc_target_arch}-cpp %{_bindir}/%{gcc_target_arch}-cpp%{binsuffix} \
%if %{build_cp}
--slave %{_bindir}/%{gcc_target_arch}-c++ %{gcc_target_arch}-c++ %{_bindir}/%{gcc_target_arch}-c++%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-g++ %{gcc_target_arch}-g++ %{_bindir}/%{gcc_target_arch}-g++%{binsuffix} \
%endif
%if 0%{!?gcc_libc_bootstrap:1}
--slave %{_bindir}/%{gcc_target_arch}-gcov %{gcc_target_arch}-gcov %{_bindir}/%{gcc_target_arch}-gcov%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcov-dump %{gcc_target_arch}-gcov-dump %{_bindir}/%{gcc_target_arch}-gcov-dump%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcov-tool %{gcc_target_arch}-gcov-tool %{_bindir}/%{gcc_target_arch}-gcov-tool%{binsuffix} \
%endif
--slave %{_bindir}/%{gcc_target_arch}-gcc-ar %{gcc_target_arch}-gcc-ar %{_bindir}/%{gcc_target_arch}-gcc-ar%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcc-nm %{gcc_target_arch}-gcc-nm %{_bindir}/%{gcc_target_arch}-gcc-nm%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-lto-dump %{gcc_target_arch}-lto-dump %{_bindir}/%{gcc_target_arch}-lto-dump%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcc-ranlib %{gcc_target_arch}-gcc-ranlib %{_bindir}/%{gcc_target_arch}-gcc-ranlib%{binsuffix}
%postun
if [ ! -f %{_bindir}/%{gcc_target_arch}-gcc ] ; then
%{_sbindir}/update-alternatives --remove %{gcc_target_arch}-gcc %{_bindir}/%{gcc_target_arch}-gcc%{binsuffix}
fi
%endif
%files
%defattr(-,root,root)
%if 0%{?gcc_accel:1}
%{_prefix}/bin/%{GCCDIST}-accel-%{gcc_target_arch}-*
%dir %{libsubdir}
%dir %{libsubdir}/accel
%{libsubdir}/accel/%{gcc_target_arch}
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-cpp%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcc-ar%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-lto-dump%{binsuffix}
%if 0%{!?gcc_libc_bootstrap:1}
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcc
%{_prefix}/bin/%{gcc_target_arch}-cpp
%{_prefix}/bin/%{gcc_target_arch}-gcc-ar
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-nm
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ranlib
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-lto-dump
%if 0%{!?gcc_libc_bootstrap:1}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%if %{build_cp}
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-c++
%{_prefix}/bin/%{gcc_target_arch}-g++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++
%endif
%endif
%endif
%dir %{targetlibsubdir}
%dir %{_libdir}/gcc/%{gcc_target_arch}
%{targetlibsubdir}
%endif
%if 0%{!?gcc_icecream:1} && 0%{!?gcc_libc_bootstrap:1} && 0%{?sysroot:1}
%{sysroot}
%endif
%if 0%{?gcc_icecream:%gcc_icecream}
%files -n cross-%cross_arch-gcc13-icecream-backend
%defattr(-,root,root)
/usr/share/icecream-envs
%endif
%if 0%{?nvptx_newlib:1}
%files -n cross-nvptx-newlib13-devel
%defattr(-,root,root)
%{_prefix}/%{gcc_target_arch}
%endif
%if 0%{?amdgcn_newlib:1}
%files -n cross-amdgcn-newlib13-devel
%defattr(-,root,root)
%{_prefix}/%{gcc_target_arch}
%{_prefix}/bin/amdgcn-amdhsa-ar
%{_prefix}/bin/amdgcn-amdhsa-as
%{_prefix}/bin/amdgcn-amdhsa-ld
%{_prefix}/bin/amdgcn-amdhsa-nm
%{_prefix}/bin/amdgcn-amdhsa-ranlib
%endif
%changelog

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -128,6 +128,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -329,6 +330,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -471,6 +473,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -128,6 +128,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -329,6 +330,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -471,6 +473,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 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: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -127,6 +127,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -328,6 +329,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -470,6 +472,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e3e70e410326f0a0d214d2700e7cab2a19b4cdddab05ee2112eb46cbeca1aee2
size 84047884

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9cd5ab32c72e707b63e587e8eb76d719da875ec1e2416b82a50b488800f420cd
size 86044180

View File

@ -17,7 +17,7 @@
# nospeccleaner
%if !0%{?usrmerged}
%if 0%{?suse_version} < 1550
%define _slibdir /%{_lib}
%define slibdir /lib
%define slibdir64 /lib64
@ -25,6 +25,7 @@
%define _slibdir %{_libdir}
%define slibdir %{_prefix}/lib
%define slibdir64 %{_prefix}/lib64
%define usrmerged 1
%endif
# Ada currently fails to build on a few platforms, enable it only
@ -190,7 +191,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -255,11 +256,6 @@ BuildRequires: gcc-d
%define hostsuffix -4.8
BuildRequires: gcc48-c++
%endif
%if 0%{?building_testsuite:1}
# For building the libstdc++ API reference
BuildRequires: doxygen
BuildRequires: graphviz
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
@ -267,6 +263,7 @@ BuildRequires: libunwind-devel
BuildRequires: dejagnu
BuildRequires: expect
BuildRequires: gdb
BuildRequires: timezone
%if %{build_go}
BuildRequires: procps
BuildRequires: netcfg
@ -372,6 +369,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -605,6 +603,10 @@ Conflicts: %selfconflict libstdc++%{libstdcxx_sover}@variant@
%if %{suse_version} < 1500
Recommends: libstdc++%{libstdcxx_sover}-pp@variant@ = %{version}-%{release}
%endif
# The std::chrono timezone database is provided by timezone
# (/usr/share/zoneinfo/tzdata.zi), without that the tzdb is empty and
# will only provide UTC
Recommends: timezone
%description -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix}@variant@
The standard C++ library, needed for dynamically linked C++ programs.
@ -948,17 +950,6 @@ The runtime library needed to run programs compiled with the
%postun -n libvtv%{libvtv_sover}%{libvtv_suffix}@variant@ -p /sbin/ldconfig
# PACKAGE-END
%package -n libstdc++%{libstdcxx_sover}%{libdevel_suffix}-doc
Summary: Documentation for the GNU C++ standard library
License: GPL-3.0-or-later
Group: Documentation/HTML
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description -n libstdc++%{libstdcxx_sover}%{libdevel_suffix}-doc
Extensive HTML documentation for the GNU C++ standard library.
# PACKAGE-BEGIN
%package go@variant@
Summary: GNU Go Compiler
@ -1213,6 +1204,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -1355,6 +1347,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
@ -2269,6 +2262,9 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%ifarch %hwasan_arch
%versmainlib libhwasan.so
%versmainlib libhwasan.a
%ifarch x86_64
%versmainlib libhwasan_preinit.o
%endif
%endif
%ifarch %asan_arch %ubsan_arch %tsan_arch %lsan_arch %hwasan_arch
%versmainlib libsanitizer.spec

113
gcc13-pr107678.patch Normal file
View File

@ -0,0 +1,113 @@
A recent change only initializes the regs.how[] during Dwarf unwinding
which resulted in an uninitialized offset used in return address signing
and random failures during unwinding. The fix is to encode the return
address signing state in REG_UNSAVED and REG_UNDEFINED.
2023-01-10 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
PR target/107678
* unwind-dw2.c (RA_SIGNED_BIT): Remove.
* unwind-dw2-execute_cfa.h: Use REG_UNSAVED/UNDEFINED
to encode return address signing state.
* config/aarch64/aarch64-unwind.h (aarch64_demangle_return_addr)
Check current return address signing state.
(aarch64_frob_update_contex): Remove.
--- libgcc/config/aarch64/aarch64-unwind.h
+++ libgcc/config/aarch64/aarch64-unwind.h
@@ -29,8 +29,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define MD_DEMANGLE_RETURN_ADDR(context, fs, addr) \
aarch64_demangle_return_addr (context, fs, addr)
-#define MD_FROB_UPDATE_CONTEXT(context, fs) \
- aarch64_frob_update_context (context, fs)
static inline int
aarch64_cie_signed_with_b_key (struct _Unwind_Context *context)
@@ -55,42 +53,27 @@ aarch64_cie_signed_with_b_key (struct _Unwind_Context *context)
static inline void *
aarch64_demangle_return_addr (struct _Unwind_Context *context,
- _Unwind_FrameState *fs ATTRIBUTE_UNUSED,
+ _Unwind_FrameState *fs,
_Unwind_Word addr_word)
{
void *addr = (void *)addr_word;
- if (context->flags & RA_SIGNED_BIT)
+ const int reg = DWARF_REGNUM_AARCH64_RA_STATE;
+
+ if (fs->regs.how[reg] == REG_UNSAVED)
+ return addr;
+
+ /* Return-address signing state is toggled by DW_CFA_GNU_window_save (where
+ REG_UNDEFINED means enabled), or set by a DW_CFA_expression. */
+ if (fs->regs.how[reg] == REG_UNDEFINED
+ || (_Unwind_GetGR (context, reg) & 0x1) != 0)
{
_Unwind_Word salt = (_Unwind_Word) context->cfa;
if (aarch64_cie_signed_with_b_key (context) != 0)
return __builtin_aarch64_autib1716 (addr, salt);
return __builtin_aarch64_autia1716 (addr, salt);
}
- else
- return addr;
-}
-
-/* Do AArch64 private initialization on CONTEXT based on frame info FS. Mark
- CONTEXT as return address signed if bit 0 of DWARF_REGNUM_AARCH64_RA_STATE is
- set. */
-
-static inline void
-aarch64_frob_update_context (struct _Unwind_Context *context,
- _Unwind_FrameState *fs)
-{
- const int reg = DWARF_REGNUM_AARCH64_RA_STATE;
- int ra_signed;
- if (fs->regs.how[reg] == REG_UNSAVED)
- ra_signed = fs->regs.reg[reg].loc.offset & 0x1;
- else
- ra_signed = _Unwind_GetGR (context, reg) & 0x1;
- if (ra_signed)
- /* The flag is used for re-authenticating EH handler's address. */
- context->flags |= RA_SIGNED_BIT;
- else
- context->flags &= ~RA_SIGNED_BIT;
- return;
+ return addr;
}
#endif /* defined AARCH64_UNWIND_H && defined __ILP32__ */
--- libgcc/unwind-dw2.c
+++ libgcc/unwind-dw2.c
@@ -137,9 +137,6 @@ struct _Unwind_Context
#define SIGNAL_FRAME_BIT ((~(_Unwind_Word) 0 >> 1) + 1)
/* Context which has version/args_size/by_value fields. */
#define EXTENDED_CONTEXT_BIT ((~(_Unwind_Word) 0 >> 2) + 1)
- /* Bit reserved on AArch64, return address has been signed with A or B
- key. */
-#define RA_SIGNED_BIT ((~(_Unwind_Word) 0 >> 3) + 1)
_Unwind_Word flags;
/* 0 for now, can be increased when further fields are added to
struct _Unwind_Context. */
--- libgcc/unwind-dw2-execute_cfa.h 2023-01-02 17:53:56.003021412 +0100
+++ libgcc/unwind-dw2-execute_cfa.h 2023-01-12 19:52:05.456327742 +0100
@@ -278,10 +278,15 @@
case DW_CFA_GNU_window_save:
#if defined (__aarch64__) && !defined (__ILP32__)
/* This CFA is multiplexed with Sparc. On AArch64 it's used to toggle
- return address signing status. */
+ return address signing status. The REG_UNDEFINED/UNSAVED states
+ mean RA signing is enabled/disabled. */
reg = DWARF_REGNUM_AARCH64_RA_STATE;
- gcc_assert (fs->regs.how[reg] == REG_UNSAVED);
- fs->regs.reg[reg].loc.offset ^= 1;
+ gcc_assert (fs->regs.how[reg] == REG_UNSAVED
+ || fs->regs.how[reg] == REG_UNDEFINED);
+ if (fs->regs.how[reg] == REG_UNSAVED)
+ fs->regs.how[reg] = REG_UNDEFINED;
+ else
+ fs->regs.how[reg] = REG_UNSAVED;
#else
/* ??? Hardcoded for SPARC register window configuration. */
if (__LIBGCC_DWARF_FRAME_REGISTERS__ >= 32)

View File

@ -1,7 +1,7 @@
#
# spec file for package gcc13-testresults
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -37,7 +37,7 @@
# nospeccleaner
%if !0%{?usrmerged}
%if 0%{?suse_version} < 1550
%define _slibdir /%{_lib}
%define slibdir /lib
%define slibdir64 /lib64
@ -45,6 +45,7 @@
%define _slibdir %{_libdir}
%define slibdir %{_prefix}/lib
%define slibdir64 %{_prefix}/lib64
%define usrmerged 1
%endif
# Ada currently fails to build on a few platforms, enable it only
@ -207,7 +208,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -271,11 +272,6 @@ BuildRequires: gcc-d
%define hostsuffix -4.8
BuildRequires: gcc48-c++
%endif
%if 0%{?building_testsuite:1}
# For building the libstdc++ API reference
BuildRequires: doxygen
BuildRequires: graphviz
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
@ -283,6 +279,7 @@ BuildRequires: libunwind-devel
BuildRequires: dejagnu
BuildRequires: expect
BuildRequires: gdb
BuildRequires: timezone
%if %{build_go}
BuildRequires: netcfg
BuildRequires: procps
@ -388,6 +385,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -526,6 +524,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -668,6 +667,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}

View File

@ -1,3 +1,36 @@
-------------------------------------------------------------------
Tue Jan 17 09:30:14 UTC 2023 - Richard Biener <rguenther@suse.com>
- Configure external timezone database provided by the timezone
package. Make libstdc++6 recommend timezone to get a fully
working std::chrono. Install timezone when running the testsuite.
- Remove dependence on doxygen and graphviz when building the
testsuite. Those were used to build the libstdc++ API html
documentation but we stopped shipping that when Java support
was removed and nobody noticed. Purge traces of the built
libstdc++6-gccN-doc package.
- Package libhwasan_preinit.o on x86_64.
-------------------------------------------------------------------
Mon Jan 16 11:59:43 UTC 2023 - Richard Biener <rguenther@suse.com>
- Update to GCC trunk head (r13-5199-g2f81164255bf0d)
* pulls changes up to the start of Stage 4
- Change version numbering to match the commit count from
the git gcc-descr alias
- Add gcc13-pr107678.patch to fix unwinding on aarch64 with
pointer signing. [bsc#1206684]
-------------------------------------------------------------------
Tue Dec 27 11:13:16 UTC 2022 - Ludwig Nussel <lnussel@suse.com>
- Don't rely on %usrmerged, set it based on standard %suse_version
-------------------------------------------------------------------
Thu Dec 22 08:31:14 UTC 2022 - Matwey Kornilov <matwey.kornilov@gmail.com>
- Enable PRU flavour for gcc13
-------------------------------------------------------------------
Mon Dec 19 14:59:32 UTC 2022 - Dirk Müller <dmueller@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package gcc13
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,7 +16,7 @@
#
%if !0%{?usrmerged}
%if 0%{?suse_version} < 1550
%define _slibdir /%{_lib}
%define slibdir /lib
%define slibdir64 /lib64
@ -24,6 +24,7 @@
%define _slibdir %{_libdir}
%define slibdir %{_prefix}/lib
%define slibdir64 %{_prefix}/lib64
%define usrmerged 1
%endif
# Ada currently fails to build on a few platforms, enable it only
@ -186,7 +187,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 13.0.0+git197351
Version: 13.0.1+git5199
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/+/-/')
@ -250,11 +251,6 @@ BuildRequires: gcc-d
%define hostsuffix -4.8
BuildRequires: gcc48-c++
%endif
%if 0%{?building_testsuite:1}
# For building the libstdc++ API reference
BuildRequires: doxygen
BuildRequires: graphviz
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
@ -262,6 +258,7 @@ BuildRequires: libunwind-devel
BuildRequires: dejagnu
BuildRequires: expect
BuildRequires: gdb
BuildRequires: timezone
%if %{build_go}
BuildRequires: netcfg
BuildRequires: procps
@ -367,6 +364,7 @@ Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch18: gcc10-amdgcn-llvm-as.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc11-amdgcn-disable-hot-cold-partitioning.patch
Patch21: gcc13-pr107678.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@ -760,6 +758,10 @@ Conflicts: %selfconflict libstdc++%{libstdcxx_sover}
%if %{suse_version} < 1500
Recommends: libstdc++%{libstdcxx_sover}-pp = %{version}-%{release}
%endif
# The std::chrono timezone database is provided by timezone
# (/usr/share/zoneinfo/tzdata.zi), without that the tzdb is empty and
# will only provide UTC
Recommends: timezone
%description -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix}
The standard C++ library, needed for dynamically linked C++ programs.
@ -782,6 +784,10 @@ Conflicts: %selfconflict libstdc++%{libstdcxx_sover}-32bit
%if %{suse_version} < 1500
Recommends: libstdc++%{libstdcxx_sover}-pp-32bit = %{version}-%{release}
%endif
# The std::chrono timezone database is provided by timezone
# (/usr/share/zoneinfo/tzdata.zi), without that the tzdb is empty and
# will only provide UTC
Recommends: timezone
%description -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix}-32bit
The standard C++ library, needed for dynamically linked C++ programs.
@ -804,6 +810,10 @@ Conflicts: %selfconflict libstdc++%{libstdcxx_sover}-64bit
%if %{suse_version} < 1500
Recommends: libstdc++%{libstdcxx_sover}-pp-64bit = %{version}-%{release}
%endif
# The std::chrono timezone database is provided by timezone
# (/usr/share/zoneinfo/tzdata.zi), without that the tzdb is empty and
# will only provide UTC
Recommends: timezone
%description -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix}-64bit
The standard C++ library, needed for dynamically linked C++ programs.
@ -1633,17 +1643,6 @@ The runtime library needed to run programs compiled with the
%postun -n libvtv%{libvtv_sover}%{libvtv_suffix}-64bit -p /sbin/ldconfig
%package -n libstdc++%{libstdcxx_sover}%{libdevel_suffix}-doc
Summary: Documentation for the GNU C++ standard library
License: GPL-3.0-or-later
Group: Documentation/HTML
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description -n libstdc++%{libstdcxx_sover}%{libdevel_suffix}-doc
Extensive HTML documentation for the GNU C++ standard library.
%package go
Summary: GNU Go Compiler
License: GPL-3.0-or-later
@ -2026,6 +2025,7 @@ ln -s newlib-4.2.0.20211231/newlib .
%if %{suse_version} < 1550
%patch19 -p1
%endif
%patch21 -p0
%patch51
%patch60 -p1
%patch61
@ -2168,6 +2168,7 @@ amdgcn-amdhsa,\
$ENABLE_CHECKING \
--disable-werror \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
@ -3074,6 +3075,9 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc13-locale.lang
%ifarch %hwasan_arch
%versmainlib libhwasan.so
%versmainlib libhwasan.a
%ifarch x86_64
%versmainlib libhwasan_preinit.o
%endif
%endif
%ifarch %asan_arch %ubsan_arch %tsan_arch %lsan_arch %hwasan_arch
%versmainlib libsanitizer.spec