Compare commits

51 Commits

Author SHA256 Message Date
115e572184 Accepting request 1294098 from devel:gcc
- Remove all %gcc_icecream mode cross-compilers and the corresponding
  icecream backend subpackages.  Instead use glibc-bootstrap only
  configs for cross-x86_64-gcc (ipxe,ovmf,qemu), cross-ppc64-gcc (qemu)
  and cross-arm-gcc (ovmf).
- Prune the use of update-alternatives from openSUSE Factory and
  SLFO.
- Adjust crosses to conflict consistently where they did not
  already and make them use unsuffixed binaries.

- Tune for power10 for SLES 16.  [jsc#PED-12029]
- Tune for z15 for SLES 16.  [jsc#PED-253]

OBS-URL: https://build.opensuse.org/request/show/1294098
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=20
2025-07-18 13:58:34 +00:00
d4e9688b4b OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=88 2025-07-17 09:40:19 +00:00
afe98ab4eb - Fixup conflicts again.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=87
2025-07-17 09:25:57 +00:00
e1b8bd1c7b - Remove all %gcc_icecream mode cross-compilers and the corresponding
icecream backend subpackages.  Instead use glibc-bootstrap only
  configs for cross-x86_64-gcc (ipxe,ovmf,qemu), cross-ppc64-gcc (qemu)
  and cross-arm-gcc (ovmf).
- Prune the use of update-alternatives from openSUSE Factory and
  SLFO.
- Adjust crosses to conflict consistently where they did not
  already and make them use unsuffixed binaries.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=86
2025-07-16 07:32:38 +00:00
24438c6c01 - Tune for power10 for SLES 16. [jsc#PED-12029]
- Tune for z15 for SLES 16.  [jsc#PED-253]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=85
2025-07-03 07:29:23 +00:00
d25750b216 Accepting request 1282742 from devel:gcc
- Exclude shared objects present for link editing in the GCC specific
  subdirectory from provides processing via __provides_exclude_from.
  [bsc#1244050][bsc#1243991]

- Make cross-*-gcc14-bootstrap package conflict with the non-bootstrap
  variant conflict with the unversioned cross-*-gcc package.

OBS-URL: https://build.opensuse.org/request/show/1282742
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=19
2025-06-05 18:31:29 +00:00
e9fdb7101d - Exclude shared objects present for link editing in the GCC specific
subdirectory from provides processing via __provides_exclude_from.
  [bsc#1244050][bsc#1243991]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=83
2025-06-04 12:49:34 +00:00
9d6851d579 - Make cross-*-gcc14-bootstrap package conflict with the non-bootstrap
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=82
2025-06-03 12:43:58 +00:00
784dbd1c1d - Make cross-*-gcc15-bootstrap package conflict with the non-bootstrap
variant conflict with the unversioned cross-*-gcc package.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=81
2025-06-03 12:41:12 +00:00
13cd62ffd0 Accepting request 1280776 from devel:gcc
- Disable build of glibc cross to loongarch64 and hppa in SLFO
  and SLE15.

OBS-URL: https://build.opensuse.org/request/show/1280776
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=18
2025-05-30 12:20:35 +00:00
7d309d9983 Accepting request 1280088 from devel:gcc
- Update to GCC 14.3 release, bb24b4c804f3d95b0ba95b7496, git11799
- Remove gcc14-pr120061.patch which is now included upstream.

- Add gcc14-pr120061.patch to fix the PR108900 fix instead of
  reverting it.
- Remove gcc14-pr108900.patch

OBS-URL: https://build.opensuse.org/request/show/1280088
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=17
2025-05-27 16:48:46 +00:00
355175bd5c - Disable build of glibc cross to loongarch64 and hppa in SLFO
and SLE15.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=78
2025-05-27 14:49:02 +00:00
a8735e6767 - Update to GCC 14.3 release, bb24b4c804f3d95b0ba95b7496, git11799
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=77
2025-05-26 08:45:10 +00:00
14a94530ce - Update to GCCC 14.3 release, bb24b4c804f3d95b0ba95b7496, git11799
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=76
2025-05-23 11:21:52 +00:00
e909bd814e - Update to gcc-14 branch head, aa4cd614456de65ee3417acb8, git11789
* Release Candidate for GCC 14.3
- Remove gcc14-pr120061.patch which is now included upstream.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=75
2025-05-15 15:12:35 +00:00
1d9d07b0bd - Add gcc14-pr120061.patch to fix the PR108900 fix instead of
reverting it.
- Remove gcc14-pr108900.patch

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=74
2025-05-06 13:41:55 +00:00
fecd43d7b6 Accepting request 1273971 from devel:gcc
- Add gcc14-pr108900.patch to revert it, fixing libqt6webengine build.

- Update to gcc-14 branch head, 3418d740b344e0ba38022f3be, git11702
  * Remove gcc14-pr118780.patch now on the upstream branch
- Fix build on s390x [bsc#1241549]

OBS-URL: https://build.opensuse.org/request/show/1273971
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=16
2025-05-03 18:57:49 +00:00
47e062e697 - Add gcc14-pr108900.patch to revert it, fixing libqt6webengine build.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=72
2025-05-02 09:03:28 +00:00
d50075c6c8 - Update to gcc-14 branch head, 3418d740b344e0ba38022f3be, git11702
* Remove gcc14-pr118780.patch now on the upstream branch
- Fix build on s390x [bsc#1241549]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=71
2025-04-30 07:35:27 +00:00
ebc97bcaf4 Accepting request 1267950 from devel:gcc
- Make sure link editing is done against our own shared library
  copy rather than the installed system runtime.  [bsc#1240788]
- Add gcc14-pr119680.patch to fix cross-compiler builds with
  --enable-host-pie.

OBS-URL: https://build.opensuse.org/request/show/1267950
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=15
2025-04-10 19:57:08 +00:00
50903de6d4 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=69 2025-04-09 09:34:20 +00:00
f6174ee005 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=68 2025-04-08 13:40:36 +00:00
54d0c494c7 - Make sure link editing is done against our own shared library
copy rather than the installed system runtime.  [bsc#1240788]
- Add gcc14-pr119680.patch to fix cross-compiler builds with
  --enable-host-pie.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=67
2025-04-08 13:39:16 +00:00
e4869d91b8 Accepting request 1260501 from devel:gcc
- Add gcc14-bsc1239938.patch to allow GCC executables to be
  built PIE.  [bsc#1239938]
- Add gcc14-rs6000-msplit-patch-nops.patch to backport -msplit-patch-nops
  required for user-space livepatching on powerpc.

OBS-URL: https://build.opensuse.org/request/show/1260501
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=14
2025-03-31 09:37:02 +00:00
3855c9878c - Add gcc14-bsc1239938.patch to allow GCC executables to be
built PIE.  [bsc#1239938]
- Add gcc14-rs6000-msplit-patch-nops.patch to backport -msplit-patch-nops
  required for user-space livepatching on powerpc.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=65
2025-03-27 09:59:35 +00:00
8f8caff0e7 Accepting request 1253651 from devel:gcc
- Add gcc13-bsc1239566.patch to also record -D_FORTIFY_SOURCE=2
  in the DWARF debug info DW_AT_producer string.  [bsc#1239566]

- Disable profiling during build when %want_reproducible_builds is set
  [bsc#1238491]

OBS-URL: https://build.opensuse.org/request/show/1253651
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=13
2025-03-18 16:37:22 +00:00
a379eee627 - Add gcc13-bsc1239566.patch to also record -D_FORTIFY_SOURCE=2
in the DWARF debug info DW_AT_producer string.  [bsc#1239566]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=63
2025-03-13 14:12:23 +00:00
541d7b9b5d - Disable profiling during build when %want_reproducible_builds is set
[bsc#1238491]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=62
2025-03-10 13:32:49 +00:00
1c666ab48a Accepting request 1247615 from devel:gcc
- Update to gcc-14 branch head, 9ffecde121af883b60bbe60d0, git11321
  * fixes reported ICE in [bsc#1237442]
- Drop gcc14-pr116629.patch now backported to the branch.

- Adjust cross compiler requirements to use %requires_ge
- Fix condition on whether to enable plugins or JIT support to
  not check sle_version which is not defined in SLFO but to check
  is_opensuse and suse_version instead.
- Add gcc14-pr118780.patch to make the SLFO config work.

- For cross compilers require the same or newer binutils, newlib
  or cross-glibc that was used at build time.  [bsc#1232526]

- Define ALT_CC_UNDER_TEST and ALT_CXX_UNDER_TEST for compat tests

- Switch to glibc based cross-compiler for target hppa

- disable go on loongarch64 for now

- Add loongarch64 to asan_arch, atomic_arch,
  itm_arch, lsan_arch, tsan_arch and ubsan_arch
- Add larchintrin.h, lasxintrin.h and lsxintrin.h
  headers to gccXY main package in %files section
- Set build_primary_64bit to 1 for loongarch64

- Add loongarch64 as new target

OBS-URL: https://build.opensuse.org/request/show/1247615
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=12
2025-03-02 11:17:23 +00:00
a545663528 - Drop gcc14-pr116629.patch now backported to the branch.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=60
2025-02-21 09:29:44 +00:00
b59f76b9ea - Update to gcc-14 branch head, 9ffecde121af883b60bbe60d0, git11321
* fixes reported ICE in [bsc#1237442]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=59
2025-02-20 15:45:07 +00:00
15a3ae0f41 - Add gcc14-pr118780.patch to make the SLFO config work.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=58
2025-02-07 15:06:57 +00:00
1c828f702a OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=57 2025-02-07 13:05:24 +00:00
6f91367d90 is_opensuse and suse_version instead.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=56
2025-02-07 09:14:57 +00:00
87bff4fc7d - Adjust cross compiler requirements to use %requires_ge
- Fix condition on whether to enable plugins or JIT support to
  not check sle_version which is not defined in SLFO but to check
  is_opensuse instead.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=55
2025-02-06 10:30:00 +00:00
162cd0f738 - For cross compilers require the same or newer binutils, newlib
or cross-glibc that was used at build time.  [bsc#1232526]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=54
2025-01-29 13:13:56 +00:00
a7d89063ce Accepting request 1235912 from home:Andreas_Schwab:Factory
- Define ALT_CC_UNDER_TEST and ALT_CXX_UNDER_TEST for compat tests

OBS-URL: https://build.opensuse.org/request/show/1235912
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=53
2025-01-08 13:31:50 +00:00
d2475ece25 Accepting request 1235411 from home:mnhauke:hppa
- Switch to glibc based cross-compiler for target hppa

OBS-URL: https://build.opensuse.org/request/show/1235411
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=52
2025-01-07 07:55:36 +00:00
a0be16d67b Accepting request 1229000 from devel:LoongArch:Factory
- disable go on loongarch64, no support exists

OBS-URL: https://build.opensuse.org/request/show/1229000
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=51
2024-12-09 09:17:55 +00:00
8a8e1ab174 Accepting request 1227529 from home:glaubitz:loongarch64
- Add loongarch64 to asan_arch, atomic_arch,
  itm_arch, lsan_arch, tsan_arch and ubsan_arch
- Add larchintrin.h, lasxintrin.h and lsxintrin.h
  headers to gccXY main package in %files section
- Set build_primary_64bit to 1 for loongarch64

OBS-URL: https://build.opensuse.org/request/show/1227529
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=50
2024-12-02 08:10:32 +00:00
63b9109598 Accepting request 1226469 from home:glaubitz:loongarch64
- Add loongarch64 as new target

OBS-URL: https://build.opensuse.org/request/show/1226469
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=49
2024-11-26 10:30:16 +00:00
e09b600cd0 Accepting request 1206541 from devel:gcc
- Update to gcc-14 branch head, 4af44f2cf7d281f3e4f3957ef, git10750
  * includes libstdc++6 fix for parsing tzdata 2024b [gcc#116657]
- Add gcc14-pr116629.patch to fix ICE with LTO building openvino
  on aarch64 [boo#1230262]

OBS-URL: https://build.opensuse.org/request/show/1206541
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=11
2024-10-10 20:10:46 +00:00
abae842d28 - Add gcc14-pr116629.patch to fix ICE with LTO building openvino
on aarch64 [boo#1230262]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=47
2024-10-09 13:06:53 +00:00
e9f89c8344 - Update to gcc-14 branch head, 4af44f2cf7d281f3e4f3957ef, git10750
* includes libstdc++6 fix for parsing tzdata 2024b [gcc#116657]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=46
2024-10-07 08:47:30 +00:00
d986615d42 Accepting request 1195282 from devel:gcc
- Re-enable cross compiler builds on i586.

OBS-URL: https://build.opensuse.org/request/show/1195282
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=10
2024-08-27 17:38:39 +00:00
774325f602 - Re-enable cross compiler builds on i586.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=44
2024-08-22 10:40:19 +00:00
572ec32e0e Accepting request 1190981 from devel:gcc
This can go to Factory given I intend to push it to SLFO from there
next week.  Gcc7 can pick it up from there.

---

- Update to GCC 14.2.0 release, c035a7c30c310ff928988cbcf, git10526 
- Add libquadmath0-devel-gcc14 sub-package to allow installing
  quadmath.h and SO link without installing the fortran frontend
- Drop SLE11 compatibility %selfconflict wrapper, drop various
  conditions gating SLE11 build support

- Update to gcc-14 branch head, a544898f6dd6a1689bb25abfd, git10504
  * GCC 14.2 release candidate.

OBS-URL: https://build.opensuse.org/request/show/1190981
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc14?expand=0&rev=9
2024-08-02 15:26:12 +00:00
d256a31391 - Add libquadmath0-devel-gcc14 sub-package to allow installing
quadmath.h and SO link without installing the fortran frontend
- Drop SLE11 compatibility %selfconflict wrapper, drop various
  conditions gating SLE11 build support

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=42
2024-08-01 12:57:42 +00:00
a551e12b1e - Update to GCC 14.2.0 release, c035a7c30c310ff928988cbcf, git10526
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=41
2024-08-01 09:38:04 +00:00
12e183330b - Update to gcc-14 branch head, 7c688e026a6446067e97a391d, git10522
* GCC 14.2 release candidate two.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=40
2024-07-30 06:35:28 +00:00
0519ee92cd - Update to gcc-14 branch head, a544898f6dd6a1689bb25abfd, git10504
* GCC 14.2 release candidate.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc14?expand=0&rev=39
2024-07-25 05:53:42 +00:00
43 changed files with 2934 additions and 4282 deletions

View File

@@ -2,25 +2,23 @@
<flavor>gcc14-testresults</flavor>
<flavor>cross-aarch64-gcc14-bootstrap</flavor>
<flavor>cross-aarch64-gcc14</flavor>
<flavor>cross-loongarch64-gcc14-bootstrap</flavor>
<flavor>cross-loongarch64-gcc14</flavor>
<flavor>cross-riscv64-gcc14-bootstrap</flavor>
<flavor>cross-riscv64-gcc14</flavor>
<flavor>cross-s390x-gcc14-bootstrap</flavor>
<flavor>cross-s390x-gcc14</flavor>
<flavor>cross-ppc64le-gcc14-bootstrap</flavor>
<flavor>cross-ppc64le-gcc14</flavor>
<flavor>cross-hppa-gcc14-bootstrap</flavor>
<flavor>cross-hppa-gcc14</flavor>
<flavor>cross-arm-gcc14</flavor>
<flavor>cross-avr-gcc14-bootstrap</flavor>
<flavor>cross-avr-gcc14</flavor>
<flavor>cross-pru-gcc14-bootstrap</flavor>
<flavor>cross-pru-gcc14</flavor>
<flavor>cross-x86_64-gcc14</flavor>
<flavor>cross-sparc-gcc14</flavor>
<flavor>cross-sparc64-gcc14</flavor>
<flavor>cross-ppc64-gcc14</flavor>
<flavor>cross-m68k-gcc14</flavor>
<flavor>cross-mips-gcc14</flavor>
<flavor>cross-hppa-gcc14-bootstrap</flavor>
<flavor>cross-hppa-gcc14</flavor>
<flavor>cross-arm-none-gcc14-bootstrap</flavor>
<flavor>cross-arm-none-gcc14</flavor>
<flavor>cross-riscv64-elf-gcc14-bootstrap</flavor>

View File

@@ -87,10 +87,16 @@ add_newlib_cross() {
}
add_glibc_cross() {
add_cross $1-bootstrap $2 $3 "%define gcc_libc_bootstrap 1"
add_cross $1-bootstrap $2 $3 "%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1"
add_cross $1 $2 $3 "%define gcc_target_glibc 1"
}
add_glibc_bootstrap_cross() {
add_cross $1 $2 $3 "%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1"
}
# We now support "proper" cross-compilers to suse targets via a
# cross-glibc package, enable that via for example
#
@@ -99,21 +105,22 @@ add_glibc_cross() {
# For now keep the old way of doing things
if test "$do_crosses" = 1 ; then
add_glibc_cross cross-aarch64-gcc$base_ver aarch64 aarch64-suse-linux
add_glibc_cross cross-loongarch64-gcc$base_ver loongarch64 loongarch64-suse-linux
add_glibc_cross cross-riscv64-gcc$base_ver riscv64 riscv64-suse-linux
add_glibc_cross cross-s390x-gcc$base_ver s390x s390x-suse-linux
add_glibc_cross cross-ppc64le-gcc$base_ver ppc64le powerpc64le-suse-linux
add_cross cross-arm-gcc$base_ver arm arm-suse-linux-gnueabi %define gcc_icecream 1
add_glibc_cross cross-hppa-gcc$base_ver hppa hppa-suse-linux
add_glibc_bootstrap_cross cross-arm-gcc$base_ver arm arm-suse-linux-gnueabi
add_cross cross-avr-gcc$base_ver-bootstrap avr avr "%define gcc_libc_bootstrap 1"
add_cross cross-avr-gcc$base_ver avr avr
add_newlib_cross cross-pru-gcc$base_ver pru pru
add_cross cross-x86_64-gcc$base_ver x86_64 x86_64-suse-linux %define gcc_icecream 1
add_cross cross-sparc-gcc$base_ver sparcv9 sparc-suse-linux %define gcc_icecream 1
add_cross cross-sparc64-gcc$base_ver sparc64 sparc64-suse-linux %define gcc_icecream 1
add_cross cross-ppc64-gcc$base_ver ppc64 powerpc64-suse-linux %define gcc_icecream 1
add_cross cross-m68k-gcc$base_ver m68k m68k-suse-linux %define gcc_icecream 1
add_cross cross-mips-gcc$base_ver mips mips-suse-linux %define gcc_icecream 1
add_cross cross-hppa-gcc$base_ver-bootstrap hppa hppa-suse-linux %define gcc_libc_bootstrap 1
add_cross cross-hppa-gcc$base_ver hppa hppa-suse-linux %define gcc_icecream 1
add_glibc_bootstrap_cross cross-x86_64-gcc$base_ver x86_64 x86_64-suse-linux
#add_cross cross-sparc-gcc$base_ver sparcv9 sparc-suse-linux %define gcc_icecream 1
#add_cross cross-sparc64-gcc$base_ver sparc64 sparc64-suse-linux %define gcc_icecream 1
add_glibc_bootstrap_cross cross-ppc64-gcc$base_ver ppc64 powerpc64-suse-linux %define
#add_cross cross-m68k-gcc$base_ver m68k m68k-suse-linux %define gcc_icecream 1
#add_cross cross-mips-gcc$base_ver mips mips-suse-linux %define gcc_icecream 1
add_newlib_cross cross-arm-none-gcc$base_ver arm-none arm-none-eabi
#add_newlib_cross cross-epiphany-gcc$base_ver epiphany epiphany-elf
#add_newlib_cross cross-nds32le-gcc$base_ver nds32le nds32le-elf

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-aarch64-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,6 +19,7 @@
%define pkgname cross-aarch64-gcc14-bootstrap
%define cross_arch aarch64
%define gcc_target_arch aarch64-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
@@ -97,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 s390x riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +852,7 @@ 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}/f951
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
@@ -876,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-aarch64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-amdgcn-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-arm-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,8 @@
%define pkgname cross-arm-gcc14
%define cross_arch arm
%define gcc_target_arch arm-suse-linux-gnueabi
%define gcc_icecream 1
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
@@ -97,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +852,7 @@ 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}/f951
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
@@ -876,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-arm-none-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -98,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -133,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -178,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -198,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -220,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -231,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -272,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -280,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -341,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -359,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -498,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -560,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -577,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -664,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -733,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -845,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -870,6 +852,7 @@ 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}/f951
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
@@ -877,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -941,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -997,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1016,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1027,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-arm-none-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-avr-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-avr-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-bpf-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-hppa-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,6 +19,7 @@
%define pkgname cross-hppa-gcc14-bootstrap
%define cross_arch hppa
%define gcc_target_arch hppa-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
@@ -97,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +852,7 @@ 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}/f951
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
@@ -876,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-hppa-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%define pkgname cross-hppa-gcc14
%define cross_arch hppa
%define gcc_target_arch hppa-suse-linux
%define gcc_icecream 1
%define gcc_target_glibc 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-loongarch64-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,10 +16,11 @@
#
%define pkgname cross-mips-gcc14
%define cross_arch mips
%define gcc_target_arch mips-suse-linux
%define gcc_icecream 1
%define pkgname cross-loongarch64-gcc14-bootstrap
%define cross_arch loongarch64
%define gcc_target_arch loongarch64-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
@@ -97,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +852,7 @@ 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}/f951
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
@@ -876,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-loongarch64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,10 +16,10 @@
#
%define pkgname cross-m68k-gcc14
%define cross_arch m68k
%define gcc_target_arch m68k-suse-linux
%define gcc_icecream 1
%define pkgname cross-loongarch64-gcc14
%define cross_arch loongarch64
%define gcc_target_arch loongarch64-suse-linux
%define gcc_target_glibc 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-nvptx-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-ppc64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,8 @@
%define pkgname cross-ppc64-gcc14
%define cross_arch ppc64
%define gcc_target_arch powerpc64-suse-linux
%define gcc_icecream 1
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
@@ -97,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +274,27 @@ ExclusiveArch: x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +852,7 @@ 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}/f951
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
@@ -876,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-ppc64le-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,6 +19,7 @@
%define pkgname cross-ppc64le-gcc14-bootstrap
%define cross_arch ppc64le
%define gcc_target_arch powerpc64le-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
@@ -97,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +274,27 @@ ExclusiveArch: x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +852,7 @@ 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}/f951
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
@@ -876,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-ppc64le-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-pru-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -98,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -133,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -178,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -198,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -220,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -231,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -272,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -280,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -341,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -359,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -498,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -560,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -577,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -664,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -733,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -845,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -870,6 +852,7 @@ 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}/f951
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
@@ -877,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -941,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -997,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1016,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1027,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-pru-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-riscv64-elf-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -98,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -133,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -178,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -198,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -220,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -231,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -272,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -280,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -341,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -359,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -498,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -560,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -577,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -664,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -733,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -845,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -870,6 +852,7 @@ 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}/f951
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
@@ -877,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -941,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -997,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1016,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1027,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-riscv64-elf-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-riscv64-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,6 +19,7 @@
%define pkgname cross-riscv64-gcc14-bootstrap
%define cross_arch riscv64
%define gcc_target_arch riscv64-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
@@ -97,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +852,7 @@ 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}/f951
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
@@ -876,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-riscv64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-rx-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -98,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -133,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -178,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -198,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -220,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -231,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -272,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -280,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -341,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -359,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -498,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -560,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -577,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -664,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -733,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -845,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -870,6 +852,7 @@ 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}/f951
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
@@ -877,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -941,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -997,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1016,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1027,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-rx-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-s390x-gcc14-bootstrap
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,6 +19,7 @@
%define pkgname cross-s390x-gcc14-bootstrap
%define cross_arch s390x
%define gcc_target_arch s390x-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
@@ -97,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +274,27 @@ ExclusiveArch: ppc64le x86_64 aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +852,7 @@ 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}/f951
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
@@ -876,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-s390x-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -97,24 +97,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +123,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +172,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +187,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +203,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +214,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +261,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +273,27 @@ ExclusiveArch: ppc64le x86_64 aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +332,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +350,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +484,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +549,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +564,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +654,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +718,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +826,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +851,7 @@ 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}/f951
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
@@ -876,6 +859,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +925,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +981,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1004,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1016,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package cross-x86_64-gcc14
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,8 @@
%define pkgname cross-x86_64-gcc14
%define cross_arch x86_64
%define gcc_target_arch x86_64-suse-linux
%define gcc_icecream 1
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
@@ -97,24 +98,15 @@
%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: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -14
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -132,6 +124,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -177,16 +173,11 @@ Patch100: newlib-gcn-iolock.diff
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -197,18 +188,12 @@ BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: isl-devel
BuildRequires: makeinfo
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
@@ -219,7 +204,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -230,9 +215,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -271,7 +262,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -279,29 +274,27 @@ ExclusiveArch: ppc64le s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc14
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc14
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun):update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
@@ -340,7 +333,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -358,11 +351,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -497,6 +485,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -559,16 +550,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -576,6 +565,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -663,19 +655,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -732,13 +719,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -844,7 +827,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -869,6 +852,7 @@ 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}/f951
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
@@ -876,6 +860,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -940,7 +926,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -996,15 +982,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -1015,6 +1005,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -1026,13 +1017,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++

View File

@@ -75,28 +75,17 @@
%endif
%endif
%if %{suse_version} >= 1220
%define selfconflict() %1
%else
%define selfconflict() otherproviders(%1)
%endif
Name: %{pkgname}
# SRC-COMMON-BEGIN
# SRC-COMMON-END
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%requires_ge cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%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
@@ -110,15 +99,9 @@ BuildRequires: memory-constraints
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
@@ -129,7 +112,7 @@ BuildRequires: libunwind-devel
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%requires_ge cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
@@ -140,9 +123,15 @@ BuildRequires: avr-libc
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%else
%if %{suse_version} < 1699
%if "%{cross_arch}" == "hppa" || "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%endif
%endif
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%requires_ge cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
@@ -181,7 +170,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -189,26 +182,24 @@ ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
%if 0%{!?gcc_accel: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}-gcc@base_ver@
Provides: %{gcc_target_arch}-gcc
Conflicts: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
%if %{build_cp}
# 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-gcc@base_ver@
%endif
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun): update-alternatives
@@ -301,7 +292,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# So we installed libstdc++ headers into %%prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
@@ -326,6 +317,7 @@ 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}/f951
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
@@ -333,6 +325,8 @@ rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# 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}
# also remove installed libstdc++ headers
rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
@@ -397,7 +391,7 @@ rm -r env
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
%if 0%{!?gcc_accel:1} && %{suse_version} < 1600
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
@@ -453,15 +447,19 @@ fi
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%if %{suse_version} < 1600
%{_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}
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
@@ -472,6 +470,7 @@ fi
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%if %{suse_version} < 1600
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
@@ -483,13 +482,16 @@ fi
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%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++
%if %{suse_version} < 1600
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%endif
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++
@@ -523,4 +525,4 @@ fi
%exclude %{_prefix}/%{gcc_target_arch}/bin
%endif
%changelog -n cross-%{pkgname}-gcc@base_ver@
%changelog -n %{pkgname}

BIN
gcc-14.1.1+git10335.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
gcc-14.3.0+git11799.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -32,15 +32,11 @@
# Ada currently fails to build on a few platforms, enable it only
# on those that work
%if %{suse_version} >= 1310
%if %{suse_version} >= 1330
%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390 s390x ia64 aarch64 riscv64
%else
%define ada_arch %ix86 x86_64 ppc ppc64 s390 ia64
%endif
%else
%define ada_arch %ix86 x86_64 ppc s390 ia64
%endif
%ifarch %ada_arch
%define build_ada 1
@@ -49,13 +45,13 @@
%endif
%define quadmath_arch %ix86 x86_64 ia64 ppc64le
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64 loongarch64
%define hwasan_arch aarch64 x86_64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc loongarch64
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64 loongarch64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64 loongarch64
%if 0%{?build_libvtv:1}
%define vtv_arch x86_64 %ix86
%endif
@@ -64,7 +60,11 @@
%define build_fortran 1
%define build_objc 1
%define build_objcp 1
%ifarch loongarch64 hppa hppa64
%define build_go 0
%else
%define build_go 1
%endif
%ifarch x86_64 %ix86 %arm aarch64 riscv64 s390x
%define build_d 1
%else
@@ -121,11 +121,16 @@
%endif
# Enable plugins just for Tumbleweed, not for SLES
%if 0%{!?sle_version:1}
%if 0%{?is_opensuse}
%define enable_plugins 1
%define build_jit 1
%else
%define enable_plugins 0
%endif
# Do not enable JIT support on SLE15
%if %{suse_version} >= 1600
%define build_jit 1
%else
%define build_jit 0
%endif
@@ -200,17 +205,11 @@
%define libdevel_suffix -gcc@base_ver@
%if %{suse_version} >= 1220
%define selfconflict() %1
%else
%define selfconflict() otherproviders(%1)
%endif
# SRC-COMMON-BEGIN
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 1
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -226,11 +225,7 @@ BuildRequires: libzstd-devel
BuildRequires: bison
BuildRequires: flex
BuildRequires: gettext-devel
%if %{suse_version} > 1220
BuildRequires: makeinfo
%else
BuildRequires: texinfo
%endif
# until here, but at least renaming and patching info files breaks this
BuildRequires: gcc-c++
BuildRequires: glibc-devel-32bit
@@ -245,9 +240,7 @@ BuildRequires: zlib-devel
# for SDT markers in the C++ unwinder and gdb breakpoints on exceptions
BuildRequires: systemtap-headers
%endif
%if %{suse_version} >= 1230
BuildRequires: isl-devel
%endif
%define hostsuffix %{nil}
%if %{build_ada}
%if 0%{?gcc_version:%{gcc_version}} > @base_ver@
@@ -273,11 +266,6 @@ BuildRequires: libstdc++6-devel-gcc11
BuildRequires: gcc-d
%endif
%endif
# We now require a C++ 11 capable compiler for bootstrapping
%if %{suse_version} < 1220
%define hostsuffix -4.8
BuildRequires: gcc48-c++
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
@@ -326,7 +314,7 @@ BuildRequires: cross-amdgcn-newlib@base_ver@-devel
%define separate_biarch_suffix -64bit
%endif
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64 loongarch64
# 64-bit is primary build target
%define build_primary_64bit 1
%else
@@ -370,9 +358,6 @@ Suggests: gcc@base_ver@-info gcc@base_ver@-locale
%endif
# SRC-COMMON-BEGIN
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -390,6 +375,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -559,7 +548,7 @@ Provides: libstdc++6-pp-gcc9@variant@ libstdc++6-pp-gcc10@variant@
Provides: libstdc++6-pp-gcc11@variant@
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libstdc++%{libstdcxx_sover}-pp@variant@
Conflicts: libstdc++%{libstdcxx_sover}-pp@variant@
# packageand() does not work with versioned specifications so the fallback
# is a Requires from libstdc++-devel to preserve previous behavior.
%if %{suse_version} >= 1500
@@ -580,7 +569,7 @@ Group: System/Base
Provides: libgcc_s%{libgcc_s}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libgcc_s%{libgcc_s}@variant@
Conflicts: libgcc_s%{libgcc_s}@variant@
%description -n libgcc_s%{libgcc_s}%{libgcc_s_suffix}@variant@
Libgcc is needed for dynamically linked C programs.
@@ -598,7 +587,7 @@ Group: System/Base
Provides: libgomp%{libgomp_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libgomp%{libgomp_sover}@variant@
Conflicts: libgomp%{libgomp_sover}@variant@
%description -n libgomp%{libgomp_sover}%{libgomp_suffix}@variant@
This is the OpenMP runtime library needed by OpenMP enabled programs
@@ -621,7 +610,7 @@ Suggests: libstdc++%{libstdcxx_sover}-locale
Provides: libstdc++%{libstdcxx_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libstdc++%{libstdcxx_sover}@variant@
Conflicts: libstdc++%{libstdcxx_sover}@variant@
# Fallback for non-existing Supplements support
%if %{suse_version} < 1500
Recommends: libstdc++%{libstdcxx_sover}-pp@variant@ = %{version}-%{release}
@@ -647,7 +636,7 @@ Group: System/Libraries
Provides: libstdc++%{libstdcxx_sover}-locale = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libstdc++%{libstdcxx_sover}-locale
Conflicts: libstdc++%{libstdcxx_sover}-locale
%description -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix}-locale
The standard C++ library locale data.
@@ -658,9 +647,7 @@ Summary: Documentation for the GNU compiler collection
License: GFDL-1.2-only
Group: Documentation/Other
PreReq: %{install_info_prereq}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description info
GNU info-pages for the GNU compiler collection covering both user-level
@@ -690,7 +677,7 @@ Group: Development/Libraries/Other
Provides: libobjc%{libobjc_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libobjc%{libobjc_sover}@variant@
Conflicts: libobjc%{libobjc_sover}@variant@
%description -n libobjc%{libobjc_sover}%{libobjc_suffix}@variant@
The library for the GNU Objective C compiler.
@@ -746,9 +733,9 @@ Summary: GNU Ada Runtime Libraries
License: GPL-3.0-or-later WITH GCC-exception-3.1
Group: System/Libraries
Provides: libgnarl-@base_ver@@variant@ = %{version}-%{release}
Conflicts: %selfconflict libgnarl-@base_ver@@variant@
Conflicts: libgnarl-@base_ver@@variant@
Provides: libgnat-@base_ver@@variant@ = %{version}-%{release}
Conflicts: %selfconflict libgnat-@base_ver@@variant@
Conflicts: libgnat-@base_ver@@variant@
%description -n libada@base_ver@@variant@
This package contains the shared libraries required to run programs
@@ -772,7 +759,7 @@ Requires: gcc@base_ver@@variant@ = %{version}-%{release}
Requires: gcc@base_ver@-fortran = %{version}-%{release}
Requires: libgfortran%{libgfortran_sover}@variant@ >= %{version}-%{release}
%ifarch %quadmath_arch
Requires: libquadmath%{libquadmath_sover}@variant@ >= %{version}-%{release}
Requires: libquadmath%{libquadmath_sover}-devel%{libdevel_suffix}@variant@ = %{version}-%{release}
%endif
%description fortran@variant@
@@ -790,7 +777,7 @@ Requires: libquadmath%{libquadmath_sover}@variant@ >= %{version}-%{release}
Provides: libgfortran%{libgfortran_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libgfortran%{libgfortran_sover}@variant@
Conflicts: libgfortran%{libgfortran_sover}@variant@
%description -n libgfortran%{libgfortran_sover}%{libgfortran_suffix}@variant@
The runtime library needed to run programs compiled with the Fortran compiler
@@ -809,7 +796,7 @@ Group: Development/Languages/Fortran
Provides: libquadmath%{libquadmath_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libquadmath%{libquadmath_sover}@variant@
Conflicts: libquadmath%{libquadmath_sover}@variant@
%description -n libquadmath%{libquadmath_sover}%{libquadmath_suffix}@variant@
The runtime library needed to run programs compiled with the Fortran compiler
@@ -821,6 +808,17 @@ operations.
%postun -n libquadmath%{libquadmath_sover}%{libquadmath_suffix}@variant@ -p /sbin/ldconfig
# PACKAGE-END
# PACKAGE-BEGIN
%package -n libquadmath%{libquadmath_sover}-devel%{libdevel_suffix}@variant@
Summary: The GNU Fortran Compiler Quadmath Runtime Library Development Files
License: LGPL-2.1-only
Group: Development/Languages/Fortran
Requires: libquadmath%{libquadmath_sover}@variant@ >= %{version}-%{release}
%description -n libquadmath%{libquadmath_sover}-devel%{libdevel_suffix}@variant@
The libquadmatah runtime library development files.
# PACKAGE-END
# PACKAGE-BEGIN
%package -n libitm%{libitm_sover}%{libitm_suffix}@variant@
Summary: The GNU Compiler Transactional Memory Runtime Library
@@ -829,7 +827,7 @@ Group: Development/Languages/C and C++
Provides: libitm%{libitm_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libitm%{libitm_sover}@variant@
Conflicts: libitm%{libitm_sover}@variant@
%description -n libitm%{libitm_sover}%{libitm_suffix}@variant@
The runtime library needed to run programs compiled with the
@@ -848,7 +846,7 @@ Group: Development/Languages/C and C++
Provides: libasan%{libasan_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libasan%{libasan_sover}@variant@
Conflicts: libasan%{libasan_sover}@variant@
%description -n libasan%{libasan_sover}%{libasan_suffix}@variant@
The runtime library needed to run programs compiled with the
@@ -867,7 +865,7 @@ Group: Development/Languages/C and C++
Provides: libtsan%{libtsan_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libtsan%{libtsan_sover}@variant@
Conflicts: libtsan%{libtsan_sover}@variant@
%description -n libtsan%{libtsan_sover}%{libtsan_suffix}@variant@
The runtime library needed to run programs compiled with the
@@ -886,7 +884,7 @@ Group: Development/Languages/C and C++
Provides: libhwasan%{libhwasan_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libhwasan%{libhwasan_sover}@variant@
Conflicts: libhwasan%{libhwasan_sover}@variant@
%description -n libhwasan%{libhwasan_sover}%{libhwasan_suffix}@variant@
The runtime library needed to run programs compiled with the
@@ -906,7 +904,7 @@ Group: Development/Languages/C and C++
Provides: libatomic%{libatomic_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libatomic%{libatomic_sover}@variant@
Conflicts: libatomic%{libatomic_sover}@variant@
%description -n libatomic%{libatomic_sover}%{libatomic_suffix}@variant@
The runtime library for atomic operations of the GNU Compiler Collection (GCC).
@@ -924,7 +922,7 @@ Group: Development/Languages/C and C++
Provides: liblsan%{liblsan_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict liblsan%{liblsan_sover}@variant@
Conflicts: liblsan%{liblsan_sover}@variant@
%description -n liblsan%{liblsan_sover}%{liblsan_suffix}@variant@
The runtime library needed to run programs compiled with the
@@ -943,7 +941,7 @@ Group: Development/Languages/C and C++
Provides: libubsan%{libubsan_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libubsan%{libubsan_sover}@variant@
Conflicts: libubsan%{libubsan_sover}@variant@
%description -n libubsan%{libubsan_sover}%{libubsan_suffix}@variant@
The runtime library needed to run programs compiled with the
@@ -962,7 +960,7 @@ Group: Development/Languages/C and C++
Provides: libvtv%{libvtv_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libvtv%{libvtv_sover}@variant@
Conflicts: libvtv%{libvtv_sover}@variant@
%description -n libvtv%{libvtv_sover}%{libvtv_suffix}@variant@
The runtime library needed to run programs compiled with the
@@ -995,7 +993,7 @@ Group: Development/Languages/Other
Provides: libgo%{libgo_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libgo%{libgo_sover}@variant@
Conflicts: libgo%{libgo_sover}@variant@
%description -n libgo%{libgo_sover}%{libgo_suffix}@variant@
Runtime library for the GNU Go language.
@@ -1029,7 +1027,7 @@ Group: Development/Languages/Other
Provides: libgphobos%{libgphobos_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libgphobos%{libgphobos_sover}@variant@
Conflicts: libgphobos%{libgphobos_sover}@variant@
%description -n libgphobos%{libgphobos_sover}%{libgphobos_suffix}@variant@
Runtime library for the GNU D language.
@@ -1047,7 +1045,7 @@ Group: Development/Languages/Other
Provides: libgdruntime%{libgdruntime_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libgdruntime%{libgdruntime_sover}@variant@
Conflicts: libgdruntime%{libgdruntime_sover}@variant@
%description -n libgdruntime%{libgdruntime_sover}%{libgdruntime_suffix}@variant@
Runtime library for the GNU D language.
@@ -1064,7 +1062,7 @@ Group: Development/Languages/C and C++
Provides: libgccjit%{libgccjit_sover} = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libgccjit%{libgccjit_sover}
Conflicts: libgccjit%{libgccjit_sover}
# At runtime the JIT needs to be able to invoke the assembler and
# linker and find startfiles and libgcc. The built-in driver knows
# the compilers version install directory only so we require the
@@ -1085,7 +1083,7 @@ Group: Development/Languages/C and C++
Provides: libgccjit%{libgccjit_sover}-devel = %{version}-%{release}
# Only one gccjit package can be installed at the same time since
# header files conflict
Conflicts: %selfconflict libgccjit%{libgccjit_sover}-devel
Conflicts: libgccjit%{libgccjit_sover}-devel
Requires: libgccjit%{libgccjit_sover} >= %{version}-%{release}
%description -n libgccjit%{libgccjit_sover}-devel%{libdevel_suffix}
@@ -1133,7 +1131,7 @@ Group: Development/Languages/Other
Provides: libm2log%{libm2_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libm2log%{libm2_sover}@variant@
Conflicts: libm2log%{libm2_sover}@variant@
%description -n libm2log%{libm2_sover}%{libm2_suffix}@variant@
Runtime library for the GNU Modula-2 language.
@@ -1152,7 +1150,7 @@ Group: Development/Languages/Other
Provides: libm2cor%{libm2_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libm2cor%{libm2_sover}@variant@
Conflicts: libm2cor%{libm2_sover}@variant@
%description -n libm2cor%{libm2_sover}%{libm2_suffix}@variant@
Runtime library for the GNU Modula-2 language.
@@ -1171,7 +1169,7 @@ Group: Development/Languages/Other
Provides: libm2iso%{libm2_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libm2iso%{libm2_sover}@variant@
Conflicts: libm2iso%{libm2_sover}@variant@
%description -n libm2iso%{libm2_sover}%{libm2_suffix}@variant@
Runtime library for the GNU Modula-2 language.
@@ -1190,7 +1188,7 @@ Group: Development/Languages/Other
Provides: libm2pim%{libm2_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libm2pim%{libm2_sover}@variant@
Conflicts: libm2pim%{libm2_sover}@variant@
%description -n libm2pim%{libm2_sover}%{libm2_suffix}@variant@
Runtime library for the GNU Modula-2 language.
@@ -1209,7 +1207,7 @@ Group: Development/Languages/Other
Provides: libm2min%{libm2_sover}@variant@ = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: %selfconflict libm2min%{libm2_sover}@variant@
Conflicts: libm2min%{libm2_sover}@variant@
%description -n libm2min%{libm2_sover}%{libm2_suffix}@variant@
Runtime library for the GNU Modula-2 language.
@@ -1351,7 +1349,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -1369,11 +1367,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -1508,6 +1501,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -1570,16 +1566,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -1587,6 +1581,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -1674,19 +1671,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -1743,13 +1735,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -1791,7 +1779,7 @@ export QEMU_STACK_SIZE=64M
# BUILD-COMMON-END
STAGE1_FLAGS="-g -O2"
%if 0%{?do_profiling} && !0%{?building_testsuite:1}
%if 0%{?do_profiling} && !0%{?building_testsuite:1} && !0%{?want_reproducible_builds}
%ifarch x86_64 %ix86 ppc64le s390x aarch64
%if %{with bootstrap}
%define use_pgo_bootstrap 1
@@ -1802,6 +1790,8 @@ STAGE1_FLAGS="-g -O2"
make info
%if 0%{?run_tests:1}
echo "Run testsuite"
# Use the bootstrap compiler for compat tests
export ALT_CC_UNDER_TEST=/usr/bin/gcc ALT_CXX_UNDER_TEST=/usr/bin/g++
(make -C %{GCCDIST}/libstdc++-v3 check-abi || true)
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.log %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.log
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.sum %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.sum
@@ -1812,6 +1802,8 @@ mkdir ../testresults
../contrib/test_summary | tee ../testresults/test_summary.txt
%endif
%define __provides_exclude_from ^%{libsubdir}/.*\.so.*$
%install
# Make sure libtool re-linking libasan at install time doesn't drop the
# libstdc++ reference to make asan of C++ modules in python work
@@ -1901,7 +1893,8 @@ if ! test -z "$dir_ml"; then
fi
%endif
# move shared libs from versionspecific dir to main libdir
# move shared libs from versionspecific dir to main libdir, keep a copy
# for link-editing in the .so
for libname in \
%if %{build_fortran}
libgfortran \
@@ -1965,8 +1958,16 @@ for libname in \
mv $lib %{buildroot}/%{mainlibdir}/
done
if test -L %{buildroot}/%{versmainlibdir}/$libname.so; then
ln -sf %{mainlibdir}/`readlink %{buildroot}/%{versmainlibdir}/$libname.so | sed -e 's/\(.*\.so\.[^\.]*\).*/\1/'` \
%{buildroot}/%{versmainlibdir}/$libname.so
cp %{buildroot}/%{mainlibdir}/`readlink %{buildroot}/%{versmainlibdir}/$libname.so` \
%{buildroot}/%{versmainlibdir}/$libname.so.tem
rm %{buildroot}/%{versmainlibdir}/$libname.so
mv %{buildroot}/%{versmainlibdir}/$libname.so.tem %{buildroot}/%{versmainlibdir}/$libname.so
strip -g %{buildroot}/%{versmainlibdir}/$libname.so
else
if test -e %{buildroot}/%{versmainlibdir}/$libname.so; then
echo ERROR: unexpected linker script for $libname.so
exit 1
fi
fi
%if %{biarch}
if test -d %{buildroot}/%{versmainlibdirbi}; then
@@ -1974,8 +1975,16 @@ for libname in \
mv $lib %{buildroot}/%{mainlibdirbi}/
done
if test -L %{buildroot}/%{versmainlibdirbi}/$libname.so; then
ln -sf %{mainlibdirbi}/`readlink %{buildroot}/%{versmainlibdirbi}/$libname.so | sed -e 's/\(.*\.so\.[^\.]*\).*/\1/'` \
%{buildroot}/%{versmainlibdirbi}/$libname.so
cp %{buildroot}/%{mainlibdirbi}/`readlink %{buildroot}/%{versmainlibdirbi}/$libname.so` \
%{buildroot}/%{versmainlibdirbi}/$libname.so.tem
rm %{buildroot}/%{versmainlibdirbi}/$libname.so
mv %{buildroot}/%{versmainlibdirbi}/$libname.so.tem %{buildroot}/%{versmainlibdirbi}/$libname.so
strip -g %{buildroot}/%{versmainlibdirbi}/$libname.so
else
if test -e %{buildroot}/%{versmainlibdirbi}/$libname.so; then
echo ERROR: unexpected linker script for $libname.so
exit 1
fi
fi
fi
%endif
@@ -1995,40 +2004,50 @@ sed -i -e '/^libdir/s/\/gcc\/%{GCCDIST}\/%{gcc_dir_version}//g' %{buildroot}/%{_
%endif
%endif
# Move libgcc_s around
# Move libgcc_s around, make sure a version specific copy is available
# for link editing
chmod a+x %{buildroot}/%{_lib}/libgcc_s.so.%{libgcc_s}
if test -L %{buildroot}/%{_lib}/libgcc_s.so; then
rm -f %{buildroot}/%{_lib}/libgcc_s.so
ln -sf /%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdir}/libgcc_s.so
cp %{buildroot}//%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdir}/libgcc_s.so
strip -g %{buildroot}/%{versmainlibdir}/libgcc_s.so
else
mv %{buildroot}/%{_lib}/libgcc_s.so %{buildroot}/%{versmainlibdir}/
cp %{buildroot}//%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdir}/libgcc_s.so.%{libgcc_s}
strip -g %{buildroot}/%{versmainlibdir}/libgcc_s.so.%{libgcc_s}
fi
chmod a+x %{buildroot}/%{_lib}/libgcc_s.so.%{libgcc_s}
%if 0%{?usrmerged}
mv %{buildroot}/%{_lib}/libgcc_s.so.%{libgcc_s} %{buildroot}/%{_slibdir}/libgcc_s.so.%{libgcc_s}
%endif
%if %{biarch}
chmod a+x %{buildroot}/lib/libgcc_s.so.%{libgcc_s}
%if %{build_primary_64bit}
if test -L %{buildroot}/lib/libgcc_s.so; then
rm -f %{buildroot}/lib/libgcc_s.so
ln -sf /lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so
cp %{buildroot}/lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so
strip -g %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so
else
mv %{buildroot}/lib/libgcc_s.so %{buildroot}/%{versmainlibdirbi32}/
cp %{buildroot}/lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so.%{libgcc_s}
strip -g %{buildroot}/%{versmainlibdirbi32}/libgcc_s.so.%{libgcc_s}
fi
ln -sf %{versmainlibdirbi32}/libgcc_s.so %{buildroot}/%{versmainlibdirbi32}/libgcc_s_32.so
chmod a+x %{buildroot}/lib/libgcc_s.so.%{libgcc_s}
%if 0%{?usrmerged}
mv %{buildroot}/lib/libgcc_s.so.%{libgcc_s} %{buildroot}/%{slibdir}/libgcc_s.so.%{libgcc_s}
%endif
%else
# 32-bit biarch systems
chmod a+x %{buildroot}/lib64/libgcc_s.so.%{libgcc_s}
if test -L %{buildroot}/lib64/libgcc_s.so; then
rm -f %{buildroot}/lib64/libgcc_s.so
ln -sf /lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so
cp %{buildroot}/lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so
strip -g %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so
else
mv %{buildroot}/lib64/libgcc_s.so %{buildroot}/%{versmainlibdirbi64}/
cp %{buildroot}/lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so.%{libgcc_s}
strip -g %{buildroot}/%{versmainlibdirbi64}/libgcc_s.so.%{libgcc_s}
fi
ln -sf %{versmainlibdirbi64}/libgcc_s.so %{buildroot}/%{versmainlibdirbi64}/libgcc_s_64.so
chmod a+x %{buildroot}/lib64/libgcc_s.so.%{libgcc_s}
%if 0%{?usrmerged}
mv %{buildroot}/lib64/libgcc_s.so.%{libgcc_s} %{buildroot}/%{slibdir64}/libgcc_s.so.%{libgcc_s}
%endif
@@ -2084,7 +2103,7 @@ chmod 644 ../testresults/*
# GCC-TESTSUITE-DELETE-BEGIN
# Remove files that we do not need to clean up filelist
# Preserve %{GCCDIST}-gcc%{binsuffix} binary for libgccjit as it is used as a driver
# Preserve %%{GCCDIST}-gcc%%{binsuffix} binary for libgccjit as it is used as a driver
mv %{buildroot}/%{_prefix}/bin/%{GCCDIST}-gcc%{binsuffix} %{buildroot}
rm -f %{buildroot}/%{_prefix}/bin/%{GCCDIST}-*
mv %{buildroot}/%{GCCDIST}-gcc%{binsuffix} %{buildroot}/%{_prefix}/bin/
@@ -2336,6 +2355,11 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%{libsubdir}/include/riscv_crypto.h
%{libsubdir}/include/riscv_th_vector.h
%endif
%ifarch loongarch64
%{libsubdir}/include/larchintrin.h
%{libsubdir}/include/lasxintrin.h
%{libsubdir}/include/lsxintrin.h
%endif
%ifarch %ix86 x86_64
%{libsubdir}/include/cross-stdarg.h
%{libsubdir}/include/cpuid.h
@@ -2460,7 +2484,7 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%versmainlib *crt*.o
%versmainlib libgcc*.a
%versmainlib libgcov.a
%versmainlib libgcc_s*.so
%versmainlib libgcc_s*.so*
%versmainlib libgomp.so
%versmainlib libgomp.a
%versmainlib libgomp.spec
@@ -2526,7 +2550,7 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%versbiarchlib *crt*.o
%versbiarchlib libgcc*.a
%versbiarchlib libgcov.a
%versbiarchlib libgcc_s*.so
%versbiarchlib libgcc_s*.so*
%versbiarchlib libgomp.so
%versbiarchlib libgomp.a
%versbiarchlib libgomp.spec
@@ -2607,9 +2631,6 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%files c++%{separate_biarch_suffix}
%defattr(-,root,root)
# empty - only for the dependency
%if %{suse_version} < 1310
%doc README
%endif
%endif
%files -n libstdc++%{libstdcxx_sover}%{libstdcxx_suffix}
@@ -2822,12 +2843,6 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%versmainlib libgfortran.so
%versmainlib libgfortran.spec
%versmainlib libcaf_single.a
%ifarch %quadmath_arch
%{libsubdir}/include/quadmath.h
%{libsubdir}/include/quadmath_weak.h
%versmainlib libquadmath.a
%versmainlib libquadmath.so
%endif
%doc %{_mandir}/man1/gfortran%{binsuffix}.1.gz
%if %{separate_biarch}
@@ -2839,10 +2854,6 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%versbiarchlib libgfortran.so
%versbiarchlib libgfortran.spec
%versbiarchlib libcaf_single.a
%ifarch %quadmath_arch
%versbiarchlib libquadmath.a
%versbiarchlib libquadmath.so
%endif
%endif
%files -n libgfortran%{libgfortran_sover}%{libgfortran_suffix}
@@ -2865,6 +2876,20 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%defattr(-,root,root)
%biarchlib libquadmath.so.%{libquadmath_sover}*
%endif
%files -n libquadmath%{libquadmath_sover}-devel%{libdevel_suffix}
%defattr(-,root,root)
%{libsubdir}/include/quadmath.h
%{libsubdir}/include/quadmath_weak.h
%versmainlib libquadmath.a
%versmainlib libquadmath.so
%if %{separate_biarch}
%files -n libquadmath%{libquadmath_sover}-devel%{libdevel_suffix}%{separate_biarch_suffix}
%defattr(-,root,root)
%versbiarchlib libquadmath.a
%versbiarchlib libquadmath.so
%endif
%endif
%endif
@@ -2942,9 +2967,6 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%files obj-c++%{separate_biarch_suffix}
%defattr(-,root,root)
# empty - only for the dependency
%if %{suse_version} < 1310
%doc README
%endif
%endif
%endif

50
gcc13-bsc1239566.patch Normal file
View File

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

426
gcc14-bsc1239938.patch Normal file
View File

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

81
gcc14-pr119680.patch Normal file
View File

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

View File

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

View File

@@ -1,7 +1,7 @@
#
# spec file for package gcc14-testresults
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -52,15 +52,11 @@
# Ada currently fails to build on a few platforms, enable it only
# on those that work
%if %{suse_version} >= 1310
%if %{suse_version} >= 1330
%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390 s390x ia64 aarch64 riscv64
%else
%define ada_arch %ix86 x86_64 ppc ppc64 s390 ia64
%endif
%else
%define ada_arch %ix86 x86_64 ppc s390 ia64
%endif
%ifarch %ada_arch
%define build_ada 1
@@ -69,13 +65,13 @@
%endif
%define quadmath_arch %ix86 x86_64 ia64 ppc64le
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64
%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm aarch64 riscv64 loongarch64
%define hwasan_arch aarch64 x86_64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 s390x %sparc loongarch64
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64 riscv64 loongarch64
%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 loongarch64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 riscv64 loongarch64
%if 0%{?build_libvtv:1}
%define vtv_arch x86_64 %ix86
%endif
@@ -84,7 +80,11 @@
%define build_fortran 1
%define build_objc 1
%define build_objcp 1
%ifarch loongarch64 hppa hppa64
%define build_go 0
%else
%define build_go 1
%endif
%ifarch x86_64 %ix86 %arm aarch64 riscv64 s390x
%define build_d 1
%else
@@ -141,11 +141,16 @@
%endif
# Enable plugins just for Tumbleweed, not for SLES
%if 0%{!?sle_version:1}
%if 0%{?is_opensuse}
%define enable_plugins 1
%define build_jit 1
%else
%define enable_plugins 0
%endif
# Do not enable JIT support on SLE15
%if %{suse_version} >= 1600
%define build_jit 1
%else
%define build_jit 0
%endif
@@ -218,16 +223,10 @@
# libFOO-devel package suffix
%define libdevel_suffix -gcc14
%if %{suse_version} >= 1220
%define selfconflict() %1
%else
%define selfconflict() otherproviders(%1)
%endif
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 14.1.1+git10335
Version: 14.3.0+git11799
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -242,11 +241,7 @@ BuildRequires: libzstd-devel
BuildRequires: bison
BuildRequires: flex
BuildRequires: gettext-devel
%if %{suse_version} > 1220
BuildRequires: makeinfo
%else
BuildRequires: texinfo
%endif
# until here, but at least renaming and patching info files breaks this
BuildRequires: gcc-c++
BuildRequires: glibc-devel-32bit
@@ -261,9 +256,7 @@ BuildRequires: zlib-devel
# for SDT markers in the C++ unwinder and gdb breakpoints on exceptions
BuildRequires: systemtap-headers
%endif
%if %{suse_version} >= 1230
BuildRequires: isl-devel
%endif
%define hostsuffix %{nil}
%if %{build_ada}
%if 0%{?gcc_version:%{gcc_version}} > 14
@@ -289,11 +282,6 @@ BuildRequires: libstdc++6-devel-gcc11
BuildRequires: gcc-d
%endif
%endif
# We now require a C++ 11 capable compiler for bootstrapping
%if %{suse_version} < 1220
%define hostsuffix -4.8
BuildRequires: gcc48-c++
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
@@ -342,7 +330,7 @@ BuildRequires: cross-amdgcn-newlib14-devel
%define separate_biarch_suffix -64bit
%endif
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64
%ifarch aarch64 x86_64 ia64 s390x alpha ppc64 ppc64le sparc64 riscv64 loongarch64
# 64-bit is primary build target
%define build_primary_64bit 1
%else
@@ -386,9 +374,6 @@ Requires: libvtv%{libvtv_sover} >= %{version}-%{release}
Suggests: gcc14-info gcc14-locale
%endif
%if %{suse_version} < 1310
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
Group: Development/Languages/C and C++
Source: gcc-%{version}.tar.xz
Source1: change_spec
@@ -406,6 +391,10 @@ Patch16: gcc9-reproducible-builds.patch
Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch
Patch19: gcc11-gdwarf-4-default.patch
Patch20: gcc13-pr101523.patch
Patch23: gcc13-bsc1239566.patch
Patch24: gcc14-bsc1239938.patch
Patch25: gcc14-rs6000-msplit-patch-nops.patch
Patch26: gcc14-pr119680.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
@@ -537,7 +526,7 @@ ln -s newlib-4.4.0.20231231/newlib .
%if %{suse_version} < 1550
%patch -p1 -P 19
%endif
%patch -p1 -P 20
%patch -p1 -P 20 -P 23 -P 24 -P 25 -P 26
%patch -P 51
%patch -p1 -P 60 -P 61
@@ -555,11 +544,6 @@ ln -s newlib-4.4.0.20231231/newlib .
# 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}
@@ -694,6 +678,9 @@ export CARGO=/bin/true
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if !0%{?is_opensuse}
--enable-host-pie \
%endif
%if %{build_nvptx} || %{build_gcn}
--enable-offload-targets=\
%if %{build_nvptx}
@@ -756,16 +743,14 @@ amdgcn-amdhsa,\
%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}
--program-suffix=%{binsuffix} \
%ifarch ia64
--with-system-libunwind \
%else
@@ -773,6 +758,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if 0%{?gcc_accel:1} || %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -860,19 +848,14 @@ amdgcn-amdhsa,\
%endif
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-cpu=power9 \
--with-tune=power9 \
--with-tune=power10 \
%else
%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
%endif
%if %{suse_version} > 1500
@@ -929,13 +912,9 @@ amdgcn-amdhsa,\
%endif
%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1600 && !0%{?is_opensuse}
--with-tune=z14 --with-arch=z14 \
--with-tune=z15 --with-arch=z14 \
%else
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
%endif
--with-long-double-128 \
--enable-decimal-float \
@@ -975,7 +954,7 @@ export QEMU_STACK_SIZE=64M
%endif
STAGE1_FLAGS="-g -O2"
%if 0%{?do_profiling} && !0%{?building_testsuite:1}
%if 0%{?do_profiling} && !0%{?building_testsuite:1} && !0%{?want_reproducible_builds}
%ifarch x86_64 %ix86 ppc64le s390x aarch64
%if %{with bootstrap}
%define use_pgo_bootstrap 1
@@ -986,6 +965,8 @@ STAGE1_FLAGS="-g -O2"
make info
%if 0%{?run_tests:1}
echo "Run testsuite"
# Use the bootstrap compiler for compat tests
export ALT_CC_UNDER_TEST=/usr/bin/gcc ALT_CXX_UNDER_TEST=/usr/bin/g++
(make -C %{GCCDIST}/libstdc++-v3 check-abi || true)
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.log %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.log
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.sum %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.sum
@@ -996,6 +977,8 @@ mkdir ../testresults
../contrib/test_summary | tee ../testresults/test_summary.txt
%endif
%define __provides_exclude_from ^%{libsubdir}/.*\.so.*$
%install
# Make sure libtool re-linking libasan at install time doesn't drop the
# libstdc++ reference to make asan of C++ modules in python work

View File

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

File diff suppressed because it is too large Load Diff