SHA256
7
0
forked from pool/gcc15

56 Commits

Author SHA256 Message Date
7dd45961ca Accepting request 1291470 from devel:gcc
- 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/request/show/1291470
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=13
2025-07-10 20:10:13 +00:00
51935c6c62 - 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/gcc15?expand=0&rev=58
2025-07-09 11:28:44 +00:00
5d278918ea Accepting request 1290115 from devel:gcc
- 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/1290115
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=12
2025-07-06 14:59:15 +00:00
7c08c1321a - 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/gcc15?expand=0&rev=56
2025-07-03 07:28:11 +00:00
587a1ce451 Accepting request 1289221 from devel:gcc
- Update to GCC 15 branch head, 15.1.1+git9866
- Fix PR120827, ICE due to splitter emitting constant loads directly (forwarded request 1288652 from Andreas_Schwab)

OBS-URL: https://build.opensuse.org/request/show/1289221
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=11
2025-07-01 09:33:03 +00:00
b917f5c210 - Update to GCC 15 branch head, 15.1.1+git9866
- Fix PR120827, ICE due to splitter emitting constant loads directly

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=54
2025-06-30 09:06:35 +00:00
22344762ee Accepting request 1288189 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).

OBS-URL: https://build.opensuse.org/request/show/1288189
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=10
2025-06-26 09:34:14 +00:00
64904bc0f1 - 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).

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=52
2025-06-23 11:06:18 +00:00
e6d7929ba4 Accepting request 1283660 from devel:gcc
- Revert pruning the set of cross-compilers that conflict with different
  versions from the set using update-alternatives.  This causes
  endless headache with file conflicts with older GCC releases.

OBS-URL: https://build.opensuse.org/request/show/1283660
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=9
2025-06-10 06:55:58 +00:00
1b135d7b0c - Revert pruning the set of cross-compilers that conflict with different
versions from the set using update-alternatives.  This causes
  endless headache with file conflicts with older GCC releases.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=50
2025-06-06 12:52:53 +00:00
d95bf34ba9 Accepting request 1282740 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-*-gcc15-bootstrap package conflict with the non-bootstrap
  variant conflict with the unversioned cross-*-gcc package.

- Enable C++ for offload compilers.  [bsc#1243794]

- Update to GCC 15 branch head, 15.1.1+git9739
- Do not build any loongarch64 compiler for distros where we do
  not have cross-binutils.

- Prune set of cross-compilers that conflict with different
  versions from the set using update-alternatives.

OBS-URL: https://build.opensuse.org/request/show/1282740
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=8
2025-06-05 18:31:25 +00:00
8e9dcc6119 - 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/gcc15?expand=0&rev=48
2025-06-04 12:51:34 +00:00
b78807102f - 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/gcc15?expand=0&rev=47
2025-06-03 12:38:18 +00:00
5b5f71f751 - Enable C++ for offload compilers. [bsc#1243794]
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=46
2025-05-30 08:17:13 +00:00
9571696f4c - Update to GCC 15 branch head, 15.1.1+git9739
- Do not build any loongarch64 compiler for distros where we do
  not have cross-binutils.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=45
2025-05-28 09:43:27 +00:00
ae4ef93729 - Prune set of cross-compilers that conflict with different
versions from the set using update-alternatives.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=44
2025-05-13 12:37:23 +00:00
52f9284e3c Accepting request 1275527 from devel:gcc
- Update to GCC 15 branch head, 15.1.1+git9642
  * includes fix for libgfortran.so.5 ABI regression [gcc#120152]
- Add libgcobol and libquadmath-devel dependence to the cobol frontend
  package.

OBS-URL: https://build.opensuse.org/request/show/1275527
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=7
2025-05-09 16:39:04 +00:00
306ae4bf92 - Update to GCC 15 branch head, 15.1.1+git9642
* includes fix for libgfortran.so.5 ABI regression [gcc#120152]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=42
2025-05-08 10:50:14 +00:00
3c6282cec5 - Add libgcobol and libquadmath-devel dependence to the cobol frontend
package.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=41
2025-05-07 11:40:30 +00:00
a8dda4566b Accepting request 1273075 from devel:gcc
- Update to GCC 15 branch head, 15.1.1+git9595
  * includes GCC 15.1 release
- Enable gfx9-generic, gfx10-3-generic and gfx11-generic multilibs
  for the AMD GCN offload compiler when llvm is new enough.
- Build the COBOL frontend also for risc-v

- Add loongarch64 to quadmath_arch

OBS-URL: https://build.opensuse.org/request/show/1273075
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=6
2025-04-29 14:39:48 +00:00
fafa6a5b35 - Update to GCC 15 branch head, 15.1.1+git9595
* includes GCC 15.1 release

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=39
2025-04-28 06:14:07 +00:00
f129282d6c - Update to GCC 15 branch head, 15.0.1+git9575
- Enable gfx9-generic, gfx10-3-generic and gfx11-generic multilibs
  for the AMD GCN offload compiler when llvm is new enough.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=38
2025-04-23 10:36:53 +00:00
1b123a6f7b - Update to GCC 15 branch head, 15.0.1+git9553
- Build the COBOL frontend also for risc-v

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=37
2025-04-17 11:21:10 +00:00
60e813581c Accepting request 1268778 from home:glaubitz:branches:devel:gcc
- Add loongarch64 to quadmath_arch

OBS-URL: https://build.opensuse.org/request/show/1268778
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=36
2025-04-14 10:59:08 +00:00
9bd6296c5c Accepting request 1268364 from devel:gcc
- Update to GCC trunk head, 15.0.1+git9352
- Make sure link editing is done against our own shared library
  copy rather than the installed system runtime.  [bsc#1240788]
- Add newlib-gcn-libm-fix.patch to fix newlib libm miscompilation
  for GCN offloading.

OBS-URL: https://build.opensuse.org/request/show/1268364
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=5
2025-04-14 10:55:41 +00:00
4dc752eda8 - Update to GCC trunk head, 15.0.1+git9352
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=34
2025-04-10 06:19:09 +00:00
080ad5ad18 - Update to GCC trunk head, 15.0.1+git9334
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=33
2025-04-09 13:32:48 +00:00
90a54921fc OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=32 2025-04-08 13:40:05 +00:00
7206eb18e5 - Add gcc15-pr119680.patch to fix cross-compiler builds with
--enable-host-pie.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=31
2025-04-08 13:03:18 +00:00
470132c5bd OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=30 2025-04-08 11:56:51 +00:00
9afbf78cb8 - Update to GCC trunk head, 15.0.1+git9305
- Make sure link editing is done against our own shared library
  copy rather than the installed system runtime.  [bsc#1240788]
- Add newlib-gcn-libm-fix.patch to fix newlib libm miscompilation
  for GCN offloading.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=29
2025-04-08 09:36:43 +00:00
6d67549777 Accepting request 1265224 from devel:gcc
- Update to GCC trunk head, 15.0.1+git9001
  * includes -msplit-patch-nops required for user-space livepatching
    on powerpc
  * includes fix for Ada build with --enable-host-pie
- Adjust for removed avx10_2roundingintrin.h intrinsic header.
- Build GCC executables PIE on SLE.  [bsc#1239938]

OBS-URL: https://build.opensuse.org/request/show/1265224
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=4
2025-03-31 09:37:53 +00:00
297912ef23 - Adjust for removed avx10_2roundingintrin.h intrinsic header.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=27
2025-03-28 11:43:18 +00:00
11545aa5bc - Update to GCC trunk head, 15.0.1+git9001
* includes -msplit-patch-nops required for user-space livepatching
    on powerpc
  * includes fix for Ada build with --enable-host-pie
- Build GCC executables PIE on SLE.  [bsc#1239938]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=26
2025-03-28 09:00:25 +00:00
409dd0d72a Accepting request 1255621 from devel:gcc
- Disable build of glibc cross to loongarch64 and hppa in SLFO.

OBS-URL: https://build.opensuse.org/request/show/1255621
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=3
2025-03-25 22:09:55 +00:00
44bd88ce35 - Disable build of glibc cross to loongarch64 and hppa in SLFO.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=24
2025-03-24 12:05:33 +00:00
eefd08b8e2 Accepting request 1253653 from devel:gcc
- Update to GCC trunk head, 15.0.1+git8082
- Includes change to also record -D_FORTIFY_SOURCE=2 in the DWARF
  debug info DW_AT_producer string.  [bsc#1239566]
- Package GCC COBOL compiler for openSUSE Factory for supported
  targets which are x86_64, aarch64 and ppc64le.

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

OBS-URL: https://build.opensuse.org/request/show/1253653
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=2
2025-03-18 16:37:21 +00:00
78f0992801 - Update to GCC trunk head, 15.0.1+git8082
- Package GCC COBOL compiler for openSUSE Factory for supported
  targets which are x86_64, aarch64 and ppc64le.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=22
2025-03-17 07:52:15 +00:00
41aa3321a1 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=21 2025-03-16 18:48:29 +00:00
051899bb88 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=20 2025-03-16 08:57:15 +00:00
491a1ef46c OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=19 2025-03-15 19:29:01 +00:00
d717235e10 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=18 2025-03-15 14:29:31 +00:00
0611d3a503 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=17 2025-03-14 14:50:50 +00:00
3e3ac5622c - Update to GCC trunk head, 15.0.1+git8055
- Includes change to also record -D_FORTIFY_SOURCE=2 in the DWARF
  debug info DW_AT_producer string.  [bsc#1239566]
- Package GCC COBOL compiler for openSUSE Factory and x86_64.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=16
2025-03-14 14:30:40 +00:00
919588990e - 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/gcc15?expand=0&rev=15
2025-03-13 14:13:44 +00:00
e9e66f04ff - Disable profiling during build when %want_reproducible_builds is set
[bsc#1238491]

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=14
2025-03-10 13:25:06 +00:00
07fc7c5f65 Accepting request 1250398 from devel:gcc
Now needs additional

%product_libs_gcc_ver_libgo23 14

since we bumped libgo SONAME as well for 15

OBS-URL: https://build.opensuse.org/request/show/1250398
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gcc15?expand=0&rev=1
2025-03-07 15:39:42 +00:00
cbb7307500 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=13 2025-03-05 10:03:21 +00:00
13c9e5e14a - Update to GCC trunk head, 15.0.1+git7827
- Bumps libgo SONAME to libgo24 which should fix go1.9 build

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=12
2025-03-05 09:48:05 +00:00
263a99aa55 - Update to GCC trunk head, 15.0.1+git7788
- Includes fix for emacs JIT use

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=11
2025-03-03 08:05:04 +00:00
f233da913e - Update to GCC trunk head, 15.0.1+git7715
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=10
2025-02-26 13:53:01 +00:00
6f129d4e13 - Enable cross compilers on loongarch64
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=9
2025-02-25 13:10:30 +00:00
54321e2dca - Update to GCC trunk head, 15.0.1+git7452
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=8
2025-02-10 07:41:18 +00:00
b4a9a2a51e OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=7 2025-02-07 13:06:04 +00:00
aff96e3978 is_opensuse and suse_version instead.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=6
2025-02-07 09:35:58 +00:00
47a0ad4db2 - Remove SPU-specific sections
* SPU target was dropped upstream in GCC 10

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc15?expand=0&rev=5
2025-02-07 09:34:24 +00:00
44 changed files with 2291 additions and 4899 deletions

View File

@@ -18,11 +18,7 @@
<flavor>cross-pru-gcc15-bootstrap</flavor>
<flavor>cross-pru-gcc15</flavor>
<flavor>cross-x86_64-gcc15</flavor>
<flavor>cross-sparc-gcc15</flavor>
<flavor>cross-sparc64-gcc15</flavor>
<flavor>cross-ppc64-gcc15</flavor>
<flavor>cross-m68k-gcc15</flavor>
<flavor>cross-mips-gcc15</flavor>
<flavor>cross-arm-none-gcc15-bootstrap</flavor>
<flavor>cross-arm-none-gcc15</flavor>
<flavor>cross-riscv64-elf-gcc15-bootstrap</flavor>

View File

@@ -1,16 +1,19 @@
<services>
<service name="obs_scm" mode="manual">
<param name="versionformat">@PARENT_TAG@.0.1+git@TAG_OFFSET@</param>
<param name="versionformat">@PARENT_TAG@.1.1+git@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">basepoints/gcc-(.*)</param>
<param name="versionrewrite-replacement">\1</param>
<param name="match-tag">basepoints/gcc-*</param>
<param name="url">git://gcc.gnu.org/git/gcc.git</param>
<param name="scm">git</param>
<param name="revision">releases/gcc-15</param>
</service>
<service name="tar" mode="manual"/>
<service name="recompress" mode="manual">
<param name="compression">xz</param>
<param name="file">*.tar</param>
</service>
<service name="set_version" mode="manual"/>
<service name="set_version" mode="manual">
<param name="basename">gcc</param>
</service>
</services>

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
#
@@ -105,16 +111,16 @@ add_glibc_cross cross-s390x-gcc$base_ver s390x s390x-suse-linux
add_glibc_cross cross-ppc64le-gcc$base_ver ppc64le powerpc64le-suse-linux
add_glibc_cross cross-hppa-gcc$base_ver hppa hppa-suse-linux
add_cross cross-arm-gcc$base_ver arm arm-suse-linux-gnueabi %define gcc_icecream 1
add_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_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,5 +1,5 @@
#
# spec file
# spec file for package cross-aarch64-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -19,10 +19,11 @@
%define pkgname cross-aarch64-gcc15-bootstrap
%define cross_arch aarch64
%define gcc_target_arch aarch64-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +649,7 @@ 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 \
@@ -690,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +821,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.
@@ -823,6 +846,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
@@ -830,6 +854,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
@@ -894,7 +920,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}
@@ -950,15 +976,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
@@ -969,6 +999,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
@@ -980,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-aarch64-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_glibc 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x riscv64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-amdgcn-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_accel 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-arm-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -19,10 +19,11 @@
%define pkgname cross-arm-gcc15
%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}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +649,7 @@ 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 \
@@ -690,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +821,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.
@@ -823,6 +846,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
@@ -830,6 +854,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
@@ -894,7 +920,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}
@@ -950,15 +976,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
@@ -969,6 +999,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
@@ -980,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-arm-none-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -23,7 +23,7 @@
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -40,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -65,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -102,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -128,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -208,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -249,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -257,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -304,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -402,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -463,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -528,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -540,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -572,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -584,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -627,7 +649,7 @@ 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 \
@@ -691,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -799,7 +821,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.
@@ -824,6 +846,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
@@ -831,6 +854,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
@@ -895,7 +920,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}
@@ -951,15 +976,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
@@ -970,6 +999,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
@@ -981,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-arm-none-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_newlib 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-avr-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-avr-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-bpf-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-hppa-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -19,10 +19,11 @@
%define pkgname cross-hppa-gcc15-bootstrap
%define cross_arch hppa
%define gcc_target_arch hppa-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +649,7 @@ 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 \
@@ -690,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +821,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.
@@ -823,6 +846,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
@@ -830,6 +854,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
@@ -894,7 +920,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}
@@ -950,15 +976,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
@@ -969,6 +999,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
@@ -980,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-hppa-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_glibc 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-loongarch64-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -19,10 +19,11 @@
%define pkgname cross-loongarch64-gcc15-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}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,37 +258,41 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
%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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +649,7 @@ 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 \
@@ -690,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +821,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.
@@ -823,6 +846,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
@@ -830,6 +854,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
@@ -894,7 +920,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}
@@ -950,15 +976,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
@@ -969,6 +999,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
@@ -980,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-loongarch64-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_glibc 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,37 +257,41 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 riscv64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
%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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-nvptx-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_accel 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-ppc64-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -19,10 +19,11 @@
%define pkgname cross-ppc64-gcc15
%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}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +649,7 @@ 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 \
@@ -690,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +821,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.
@@ -823,6 +846,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
@@ -830,6 +854,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
@@ -894,7 +920,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}
@@ -950,15 +976,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
@@ -969,6 +999,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
@@ -980,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-ppc64le-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -19,10 +19,11 @@
%define pkgname cross-ppc64le-gcc15-bootstrap
%define cross_arch ppc64le
%define gcc_target_arch powerpc64le-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +649,7 @@ 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 \
@@ -690,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +821,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.
@@ -823,6 +846,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
@@ -830,6 +854,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
@@ -894,7 +920,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}
@@ -950,15 +976,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
@@ -969,6 +999,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
@@ -980,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-ppc64le-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_glibc 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 x86_64 s390x aarch64 riscv64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-pru-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -23,7 +23,7 @@
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -40,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -65,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -102,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -128,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -208,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -249,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -257,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -304,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -402,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -463,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -528,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -540,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -572,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -584,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -627,7 +649,7 @@ 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 \
@@ -691,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -799,7 +821,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.
@@ -824,6 +846,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
@@ -831,6 +854,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
@@ -895,7 +920,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}
@@ -951,15 +976,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
@@ -970,6 +999,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
@@ -981,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-pru-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_newlib 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-riscv64-elf-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -23,7 +23,7 @@
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -40,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -65,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -102,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -128,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -208,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -249,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -257,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -304,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -402,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -463,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -528,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -540,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -572,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -584,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -627,7 +649,7 @@ 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 \
@@ -691,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -799,7 +821,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.
@@ -824,6 +846,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
@@ -831,6 +854,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
@@ -895,7 +920,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}
@@ -951,15 +976,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
@@ -970,6 +999,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
@@ -981,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-riscv64-elf-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_newlib 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-riscv64-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -19,10 +19,11 @@
%define pkgname cross-riscv64-gcc15-bootstrap
%define cross_arch riscv64
%define gcc_target_arch riscv64-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +649,7 @@ 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 \
@@ -690,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +821,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.
@@ -823,6 +846,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
@@ -830,6 +854,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
@@ -894,7 +920,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}
@@ -950,15 +976,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
@@ -969,6 +999,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
@@ -980,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-riscv64-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_glibc 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 s390x aarch64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-rx-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -23,7 +23,7 @@
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -40,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -65,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -102,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -128,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -208,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -249,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -257,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -304,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -402,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -463,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -528,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -540,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -572,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -584,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -627,7 +649,7 @@ 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 \
@@ -691,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -799,7 +821,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.
@@ -824,6 +846,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
@@ -831,6 +854,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
@@ -895,7 +920,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}
@@ -951,15 +976,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
@@ -970,6 +999,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
@@ -981,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-rx-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_newlib 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-s390x-gcc15-bootstrap
#
# Copyright (c) 2025 SUSE LLC
#
@@ -19,10 +19,11 @@
%define pkgname cross-s390x-gcc15-bootstrap
%define cross_arch s390x
%define gcc_target_arch s390x-suse-linux
%define gcc_target_glibc 1
%define gcc_libc_bootstrap 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +649,7 @@ 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 \
@@ -690,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +821,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.
@@ -823,6 +846,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
@@ -830,6 +854,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
@@ -894,7 +920,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}
@@ -950,15 +976,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
@@ -969,6 +999,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
@@ -980,13 +1011,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,5 +1,5 @@
#
# spec file
# spec file for package cross-s390x-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -22,7 +22,7 @@
%define gcc_target_glibc 1
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +39,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +65,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +102,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +128,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +210,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +257,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le x86_64 aarch64 riscv64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +269,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +316,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +415,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +479,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +547,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +559,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +594,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +602,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +648,7 @@ 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 \
@@ -690,7 +712,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +820,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.
@@ -823,6 +845,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
@@ -830,6 +853,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
@@ -894,7 +919,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}
@@ -950,15 +975,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
@@ -969,6 +998,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
@@ -980,13 +1010,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,5 +1,5 @@
#
# spec file
# spec file for package cross-x86_64-gcc15
#
# Copyright (c) 2025 SUSE LLC
#
@@ -19,10 +19,11 @@
%define pkgname cross-x86_64-gcc15
%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}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -39,6 +40,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -64,7 +66,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -101,7 +103,7 @@ Name: %{pkgname}
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
Release: 0
%define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
@@ -127,6 +129,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# Define the canonical target and host architecture
# %%gcc_target_arch is supposed to be the full target triple
@@ -207,6 +211,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -248,7 +258,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le s390x aarch64 riscv64
%if %{suse_version} < 1699 && "%{cross_arch}" == "loongarch64"
ExclusiveArch: do-not-build
%else
ExclusiveArch: i586 ppc64le s390x aarch64 riscv64 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -256,29 +270,29 @@ ExclusiveArch: i586 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: %{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}-gcc15
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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-gcc15
%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
@@ -303,6 +317,7 @@ only, it is not intended for any other use.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -401,6 +416,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -462,6 +480,9 @@ export GDC=gdc-11
--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}
@@ -527,11 +548,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -539,6 +560,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -571,10 +595,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -583,6 +603,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -626,7 +649,7 @@ 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 \
@@ -690,7 +713,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -798,7 +821,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.
@@ -823,6 +846,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
@@ -830,6 +854,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
@@ -894,7 +920,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}
@@ -950,15 +976,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
@@ -969,6 +999,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
@@ -980,13 +1011,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,6 +1,6 @@
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%define build_cp 1
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
@@ -17,6 +17,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%define enable_plugins 0
%define build_jit 0
@@ -42,7 +43,7 @@
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
@@ -123,6 +124,12 @@ 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_ge cross-%cross_arch-glibc-devel
@@ -164,7 +171,11 @@ ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 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 loongarch64
%endif
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
@@ -172,26 +183,26 @@ ExclusiveArch: i586 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: %{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@
%if 0%{!?gcc_libc_bootstrap:1}
Provides: %{gcc_target_arch}-gcc
Conflicts: %{pkgname}-bootstrap
%endif
Conflicts: %{gcc_target_arch}-gcc
%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
@@ -284,7 +295,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.
@@ -309,6 +320,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
@@ -316,6 +328,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
@@ -380,7 +394,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}
@@ -436,15 +450,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
@@ -455,6 +473,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
@@ -466,13 +485,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++
@@ -506,4 +528,4 @@ fi
%exclude %{_prefix}/%{gcc_target_arch}/bin
%endif
%changelog -n cross-%{pkgname}-gcc@base_ver@
%changelog -n %{pkgname}

View File

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

BIN
gcc-15.1.1+git9866.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -1,4 +1,4 @@
name: gcc
version: 15.0.1+git7330
mtime: 1738562380
commit: 75ab30f77f6d8a555aa78472b45a75a508544c68
version: 15.1.1+git9866
mtime: 1750920781
commit: 8d600e98004b63e788614fc8958cbafbc1bb52c0

View File

@@ -44,7 +44,7 @@
%define build_ada 0
%endif
%define quadmath_arch %ix86 x86_64 ia64 ppc64le
%define quadmath_arch %ix86 x86_64 ia64 ppc64le loongarch64
%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
@@ -87,6 +87,14 @@
%endif
%endif
%define build_cobol 0
%if %{suse_version} >= 1699
# build cobol for factory and x86_64 for now
%ifarch x86_64 aarch64 ppc64le riscv64
%define build_cobol 1
%endif
%endif
# For optional compilers only build C, C++, Fortran, Ada and Go
%if 0%{?build_optional_compiler_languages:1}
%define build_objc 0
@@ -94,6 +102,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%endif
%ifarch x86_64
@@ -124,9 +133,14 @@
# Enable plugins just for Tumbleweed, not for SLES
%if 0%{?is_opensuse:%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
@@ -156,11 +170,12 @@
%define libubsan_sover 1
%define liblsan_sover 0
%define libvtv_sover 0
%define libgo_sover 23
%define libgo_sover 24
%define libgphobos_sover 6
%define libgdruntime_sover 6
%define libgccjit_sover 0
%define libm2_sover 20
%define libgcobol_sover 1
# Shared library package suffix
# This is used for the "non-standard" set of libraries, the standard
@@ -195,6 +210,7 @@
%define libgdruntime_suffix %{plv libgdruntime %{libgdruntime_sover}}
%define libgccjit_suffix %{plv libgccjit %{libgccjit_sover}}
%define libm2_suffix %{plv libm2 %{libm2_sover}}
%define libgcobol_suffix %{plv libgcobol %{libgcobol_sover}}
# libFOO-devel package suffix
@@ -379,6 +395,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
# GCC-TESTSUITE-DELETE-BEGIN
# SRC-COMMON-END
@@ -1211,6 +1229,41 @@ Runtime library for the GNU Modula-2 language.
# PACKAGE-END
# PACKAGE-BEGIN
%package cobol@variant@
Summary: GNU GCC COBOL Compiler
License: GPL-3.0-or-later
Group: Development/Languages/Other
Requires: gcc@base_ver@@variant@ = %{version}-%{release}
Requires: gcc@base_ver@-cobol = %{version}-%{release}
Requires: libgcobol%{libgcobol_sover}@variant@ >= %{version}-%{release}
%ifarch %quadmath_arch
Requires: libquadmath%{libquadmath_sover}-devel%{libdevel_suffix}@variant@ = %{version}-%{release}
%endif
%description cobol@variant@
This package contains a COBOL compiler.
# PACKAGE-END
# PACKAGE-BEGIN
%package -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}@variant@
Summary: GNU GCC COBOL compiler runtime library
License: BSD-3-Clause
Group: Development/Languages/Other
Provides: libgcobol%{libgcobol_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: libgcobol%{libgcobol_sover}@variant@
%description -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}@variant@
Runtime library for the GNU GCC COBOL language.
%post -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}@variant@ -p /sbin/ldconfig
%postun -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}@variant@ -p /sbin/ldconfig
# PACKAGE-END
%package -n gcc@base_ver@-testresults
# GCC-TESTSUITE-DELETE-END
Summary: Testsuite results
@@ -1328,6 +1381,7 @@ Results from running the gcc and target library testsuites.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -1426,6 +1480,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -1487,6 +1544,9 @@ export GDC=gdc-11
--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}
@@ -1552,11 +1612,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -1564,6 +1624,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -1596,10 +1659,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -1608,6 +1667,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -1651,7 +1713,7 @@ 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 \
@@ -1715,7 +1777,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -1759,7 +1821,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
@@ -1783,6 +1845,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
@@ -1810,7 +1874,8 @@ for lib in libobjc libgfortran libquadmath libcaf_single \
libgo libasan libhwasan libatomic libitm libtsan liblsan libubsan libvtv \
libstdc++fs libgomp-plugin-nvptx libgomp-plugin-gcn \
libgdruntime libgphobos libstdc++exp \
libm2cor libm2iso libm2log libm2min libm2pim; do
libm2cor libm2iso libm2log libm2min libm2pim \
libgcobol; do
rm -f %{buildroot}/%{versmainlibdir}/$lib.la
%if %{biarch}
rm -f %{buildroot}/%{versmainlibdirbi}/$lib.la
@@ -1872,7 +1937,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 \
@@ -1907,6 +1973,9 @@ for libname in \
libm2pim \
libm2min \
%endif
%if %{build_cobol}
libgcobol \
%endif
%ifarch %atomic_arch
libatomic \
%endif
@@ -1936,8 +2005,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
@@ -1945,8 +2022,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
@@ -1966,40 +2051,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
@@ -2055,7 +2150,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/
@@ -2422,7 +2517,6 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%{libsubdir}/include/sm4intrin.h
%{libsubdir}/include/avx512bitalgvlintrin.h
%{libsubdir}/include/usermsrintrin.h
%{libsubdir}/include/avx10_2roundingintrin.h
%{libsubdir}/include/avx10_2-512bf16intrin.h
%{libsubdir}/include/avx10_2-512convertintrin.h
%{libsubdir}/include/avx10_2-512mediaintrin.h
@@ -2453,7 +2547,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
@@ -2519,7 +2613,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
@@ -3179,6 +3273,35 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc@base_ver@-locale.lang
%endif
%endif
%if %{build_cobol}
%files cobol
%defattr(-,root,root)
%dir %{_datadir}/gcobol
%dir %{_datadir}/gcobol/udf
%{_datadir}/gcobol/udf/stored-char-length.cbl
%{_prefix}/bin/gcobol%{binsuffix}
%{_prefix}/bin/gcobc%{binsuffix}
%{libsubdir}/cobol1
%versmainlib libgcobol.a
%versmainlib libgcobol.so
%versmainlib libgcobol.spec
%doc %{_mandir}/man1/gcobol%{binsuffix}.1.gz
%doc %{_mandir}/man3/gcobol-io%{binsuffix}.3.gz
%if %{separate_biarch}
# 32bit not supported sofar
%endif
%files -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}
%defattr(-,root,root)
%mainlib libgcobol.so.%{libgcobol_sover}*
%if %{separate_biarch}
# 32bit not supported sofar
%endif
%endif
# GCC-TESTSUITE-DELETE-END
%if 0%{?run_tests:1}

View File

@@ -64,7 +64,7 @@
%define build_ada 0
%endif
%define quadmath_arch %ix86 x86_64 ia64 ppc64le
%define quadmath_arch %ix86 x86_64 ia64 ppc64le loongarch64
%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
@@ -107,6 +107,14 @@
%endif
%endif
%define build_cobol 0
%if %{suse_version} >= 1699
# build cobol for factory and x86_64 for now
%ifarch x86_64 aarch64 ppc64le riscv64
%define build_cobol 1
%endif
%endif
# For optional compilers only build C, C++, Fortran, Ada and Go
%if 0%{?build_optional_compiler_languages:1}
%define build_objc 0
@@ -114,6 +122,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%endif
%ifarch x86_64
@@ -144,9 +153,14 @@
# Enable plugins just for Tumbleweed, not for SLES
%if 0%{?is_opensuse:%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
@@ -176,11 +190,12 @@
%define libubsan_sover 1
%define liblsan_sover 0
%define libvtv_sover 0
%define libgo_sover 23
%define libgo_sover 24
%define libgphobos_sover 6
%define libgdruntime_sover 6
%define libgccjit_sover 0
%define libm2_sover 20
%define libgcobol_sover 1
# Shared library package suffix
# This is used for the "non-standard" set of libraries, the standard
@@ -215,6 +230,7 @@
%define libgdruntime_suffix %{plv libgdruntime %{libgdruntime_sover}}
%define libgccjit_suffix %{plv libgccjit %{libgccjit_sover}}
%define libm2_suffix %{plv libm2 %{libm2_sover}}
%define libgcobol_suffix %{plv libgcobol %{libgcobol_sover}}
# libFOO-devel package suffix
%define libdevel_suffix -gcc15
@@ -222,7 +238,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
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/+/-/')
@@ -395,6 +411,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
Summary: Testsuite results
License: SUSE-Public-Domain
@@ -505,6 +523,7 @@ Results from running the gcc and target library testsuites.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -603,6 +622,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -664,6 +686,9 @@ export GDC=gdc-11
--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}
@@ -729,11 +754,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -741,6 +766,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -773,10 +801,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -785,6 +809,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -828,7 +855,7 @@ 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 \
@@ -892,7 +919,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -934,7 +961,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
@@ -958,6 +985,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,10 +1,160 @@
-------------------------------------------------------------------
Wed Jul 9 11:26:24 UTC 2025 - Richard Biener <rguenther@suse.com>
- 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]
-------------------------------------------------------------------
Thu Jun 26 07:46:54 UTC 2025 - Andreas Schwab <schwab@suse.de>
- Update to GCC 15 branch head, 15.1.1+git9866
- Fix PR120827, ICE due to splitter emitting constant loads directly
-------------------------------------------------------------------
Tue Jun 10 12:32:01 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).
-------------------------------------------------------------------
Fri Jun 6 12:18:16 UTC 2025 - Richard Biener <rguenther@suse.com>
- Revert pruning the set of cross-compilers that conflict with different
versions from the set using update-alternatives. This causes
endless headache with file conflicts with older GCC releases.
-------------------------------------------------------------------
Wed Jun 4 07:53:48 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-*-gcc15-bootstrap package conflict with the non-bootstrap
variant conflict with the unversioned cross-*-gcc package.
-------------------------------------------------------------------
Fri May 30 06:59:37 UTC 2025 - Richard Biener <rguenther@suse.com>
- Enable C++ for offload compilers. [bsc#1243794]
-------------------------------------------------------------------
Wed May 28 08:40:24 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to GCC 15 branch head, 15.1.1+git9739
- Do not build any loongarch64 compiler for distros where we do
not have cross-binutils.
-------------------------------------------------------------------
Tue May 13 11:20:45 UTC 2025 - Richard Biener <rguenther@suse.com>
- Prune set of cross-compilers that conflict with different
versions from the set using update-alternatives.
-------------------------------------------------------------------
Thu May 8 09:10:35 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to GCC 15 branch head, 15.1.1+git9642
* includes fix for libgfortran.so.5 ABI regression [gcc#120152]
- Add libgcobol and libquadmath-devel dependence to the cobol frontend
package.
-------------------------------------------------------------------
Mon Apr 28 06:12:42 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to GCC 15 branch head, 15.1.1+git9595
* includes GCC 15.1 release
- Enable gfx9-generic, gfx10-3-generic and gfx11-generic multilibs
for the AMD GCN offload compiler when llvm is new enough.
- Build the COBOL frontend also for risc-v
-------------------------------------------------------------------
Sat Apr 12 09:09:23 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Add loongarch64 to quadmath_arch
-------------------------------------------------------------------
Thu Apr 10 06:17:49 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to GCC trunk head, 15.0.1+git9352
- Make sure link editing is done against our own shared library
copy rather than the installed system runtime. [bsc#1240788]
- Add newlib-gcn-libm-fix.patch to fix newlib libm miscompilation
for GCN offloading.
-------------------------------------------------------------------
Fri Mar 28 08:54:41 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to GCC trunk head, 15.0.1+git9001
* includes -msplit-patch-nops required for user-space livepatching
on powerpc
* includes fix for Ada build with --enable-host-pie
- Adjust for removed avx10_2roundingintrin.h intrinsic header.
- Build GCC executables PIE on SLE. [bsc#1239938]
-------------------------------------------------------------------
Mon Mar 24 12:03:56 UTC 2025 - Richard Biener <rguenther@suse.com>
- Disable build of glibc cross to loongarch64 and hppa in SLFO.
-------------------------------------------------------------------
Mon Mar 17 07:50:20 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to GCC trunk head, 15.0.1+git8082
- Includes change to also record -D_FORTIFY_SOURCE=2 in the DWARF
debug info DW_AT_producer string. [bsc#1239566]
- Package GCC COBOL compiler for openSUSE Factory for supported
targets which are x86_64, aarch64 and ppc64le.
-------------------------------------------------------------------
Mon Mar 10 13:23:43 UTC 2025 - Richard Biener <rguenther@suse.com>
- Disable profiling during build when %want_reproducible_builds is set
[bsc#1238491]
-------------------------------------------------------------------
Wed Mar 5 09:42:44 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to GCC trunk head, 15.0.1+git7827
- Includes fix for emacs JIT use
- Bumps libgo SONAME to libgo24 which should fix go1.9 build
-------------------------------------------------------------------
Tue Feb 18 14:02:49 UTC 2025 - JS <obs.coke518@passinbox.com>
- Enable cross compilers on loongarch64
-------------------------------------------------------------------
Mon Feb 10 07:40:03 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to GCC trunk head, 15.0.1+git7452
-------------------------------------------------------------------
Fri Feb 7 08:26:35 UTC 2025 - JS <obs.coke518@passinbox.com>
- Remove SPU-specific sections
* SPU target was dropped upstream in GCC 10
-------------------------------------------------------------------
Thu Feb 6 10:29: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 instead.
is_opensuse and suse_version instead.
-------------------------------------------------------------------
Mon Feb 3 10:08:21 UTC 2025 - Richard Biener <rguenther@suse.com>

View File

@@ -43,7 +43,7 @@
%define build_ada 0
%endif
%define quadmath_arch %ix86 x86_64 ia64 ppc64le
%define quadmath_arch %ix86 x86_64 ia64 ppc64le loongarch64
%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
@@ -86,6 +86,14 @@
%endif
%endif
%define build_cobol 0
%if %{suse_version} >= 1699
# build cobol for factory and x86_64 for now
%ifarch x86_64 aarch64 ppc64le riscv64
%define build_cobol 1
%endif
%endif
# For optional compilers only build C, C++, Fortran, Ada and Go
%if 0%{?build_optional_compiler_languages:1}
%define build_objc 0
@@ -93,6 +101,7 @@
%define build_d 0
%define build_rust 0
%define build_m2 0
%define build_cobol 0
%endif
%ifarch x86_64
@@ -123,9 +132,14 @@
# Enable plugins just for Tumbleweed, not for SLES
%if 0%{?is_opensuse:%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
@@ -155,11 +169,12 @@
%define libubsan_sover 1
%define liblsan_sover 0
%define libvtv_sover 0
%define libgo_sover 23
%define libgo_sover 24
%define libgphobos_sover 6
%define libgdruntime_sover 6
%define libgccjit_sover 0
%define libm2_sover 20
%define libgcobol_sover 1
# Shared library package suffix
# This is used for the "non-standard" set of libraries, the standard
@@ -194,6 +209,7 @@
%define libgdruntime_suffix %{plv libgdruntime %{libgdruntime_sover}}
%define libgccjit_suffix %{plv libgccjit %{libgccjit_sover}}
%define libm2_suffix %{plv libm2 %{libm2_sover}}
%define libgcobol_suffix %{plv libgcobol %{libgcobol_sover}}
# libFOO-devel package suffix
%define libdevel_suffix -gcc15
@@ -201,7 +217,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
URL: https://gcc.gnu.org/
Version: 15.0.1+git7330
Version: 15.1.1+git9866
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/+/-/')
@@ -374,6 +390,8 @@ Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
# Patches for newlib
Patch70: newlib-gcn-libm-fix.patch
License: GPL-3.0-or-later
Summary: The GNU C Compiler and Support Files
@@ -2244,6 +2262,96 @@ Runtime library for the GNU Modula-2 language.
%postun -n libm2min%{libm2_sover}%{libm2_suffix}-64bit -p /sbin/ldconfig
%package cobol
Summary: GNU GCC COBOL Compiler
License: GPL-3.0-or-later
Group: Development/Languages/Other
Requires: gcc15 = %{version}-%{release}
Requires: gcc15-cobol = %{version}-%{release}
Requires: libgcobol%{libgcobol_sover} >= %{version}-%{release}
%ifarch %quadmath_arch
Requires: libquadmath%{libquadmath_sover}-devel%{libdevel_suffix} = %{version}-%{release}
%endif
%description cobol
This package contains a COBOL compiler.
%package cobol-32bit
Summary: GNU GCC COBOL Compiler
License: GPL-3.0-or-later
Group: Development/Languages/Other
Requires: gcc15-32bit = %{version}-%{release}
Requires: gcc15-cobol = %{version}-%{release}
Requires: libgcobol%{libgcobol_sover}-32bit >= %{version}-%{release}
%ifarch %quadmath_arch
Requires: libquadmath%{libquadmath_sover}-devel%{libdevel_suffix}-32bit = %{version}-%{release}
%endif
%description cobol-32bit
This package contains a COBOL compiler.
%package cobol-64bit
Summary: GNU GCC COBOL Compiler
License: GPL-3.0-or-later
Group: Development/Languages/Other
Requires: gcc15-64bit = %{version}-%{release}
Requires: gcc15-cobol = %{version}-%{release}
Requires: libgcobol%{libgcobol_sover}-64bit >= %{version}-%{release}
%ifarch %quadmath_arch
Requires: libquadmath%{libquadmath_sover}-devel%{libdevel_suffix}-64bit = %{version}-%{release}
%endif
%description cobol-64bit
This package contains a COBOL compiler.
%package -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}
Summary: GNU GCC COBOL compiler runtime library
License: BSD-3-Clause
Group: Development/Languages/Other
Provides: libgcobol%{libgcobol_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: libgcobol%{libgcobol_sover}
%description -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}
Runtime library for the GNU GCC COBOL language.
%post -n libgcobol%{libgcobol_sover}%{libgcobol_suffix} -p /sbin/ldconfig
%postun -n libgcobol%{libgcobol_sover}%{libgcobol_suffix} -p /sbin/ldconfig
%package -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}-32bit
Summary: GNU GCC COBOL compiler runtime library
License: BSD-3-Clause
Group: Development/Languages/Other
Provides: libgcobol%{libgcobol_sover}-32bit = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: libgcobol%{libgcobol_sover}-32bit
%description -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}-32bit
Runtime library for the GNU GCC COBOL language.
%post -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}-32bit -p /sbin/ldconfig
%postun -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}-32bit -p /sbin/ldconfig
%package -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}-64bit
Summary: GNU GCC COBOL compiler runtime library
License: BSD-3-Clause
Group: Development/Languages/Other
Provides: libgcobol%{libgcobol_sover}-64bit = %{version}-%{release}
# Only one package may provide this - allows multiple gcc versions
# to co-exist without an overly large list of provides/obsoletes
Conflicts: libgcobol%{libgcobol_sover}-64bit
%description -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}-64bit
Runtime library for the GNU GCC COBOL language.
%post -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}-64bit -p /sbin/ldconfig
%postun -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}-64bit -p /sbin/ldconfig
%package -n gcc15-testresults
Summary: Testsuite results
License: SUSE-Public-Domain
@@ -2354,6 +2462,7 @@ Results from running the gcc and target library testsuites.
%if 0%{?nvptx_newlib:1}%{?amdgcn_newlib:1}
%setup -q -n gcc-%{version} -a 5
ln -s newlib-4.5.0.20241231/newlib .
%patch -p1 -P 70
%else
%setup -q -n gcc-%{version}
%endif
@@ -2452,6 +2561,9 @@ languages=$languages,rust
%if %{build_m2}
languages=$languages,m2
%endif
%if %{build_cobol}
languages=$languages,cobol
%endif
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
@@ -2513,6 +2625,9 @@ export GDC=gdc-11
--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}
@@ -2578,11 +2693,11 @@ amdgcn-amdhsa,\
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%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
@@ -2590,6 +2705,9 @@ amdgcn-amdhsa,\
%endif
%endif
%if 0%{?gcc_target_arch:1}
%if %{suse_version} < 1600
--program-suffix=%{binsuffix} \
%endif
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
@@ -2622,10 +2740,6 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "bpf"
--disable-gcov \
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%if "%{TARGET_ARCH}" == "nvptx"
--enable-as-accelerator-for=%{GCCDIST} \
--disable-sjlj-exceptions \
@@ -2634,6 +2748,9 @@ amdgcn-amdhsa,\
%if "%{TARGET_ARCH}" == "amdgcn"
--enable-as-accelerator-for=%{GCCDIST} \
--enable-libgomp \
%if 0%{?product_libs_llvm_ver} >= 19
--with-multilib-list=gfx900,gfx906,gfx908,gfx90a,gfx90c,gfx1030,gfx1036,gfx1100,gfx1103,gfx9-generic,gfx10-3-generic,gfx11-generic \
%endif
%endif
%if "%{TARGET_ARCH}" == "avr"
--enable-lto \
@@ -2677,7 +2794,7 @@ 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 \
@@ -2741,7 +2858,7 @@ 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
--with-tune=zEC12 --with-arch=z196 \
%endif
@@ -2783,7 +2900,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
@@ -2807,6 +2924,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
@@ -2833,7 +2952,8 @@ for lib in libobjc libgfortran libquadmath libcaf_single \
libgo libasan libhwasan libatomic libitm libtsan liblsan libubsan libvtv \
libstdc++fs libgomp-plugin-nvptx libgomp-plugin-gcn \
libgdruntime libgphobos libstdc++exp \
libm2cor libm2iso libm2log libm2min libm2pim; do
libm2cor libm2iso libm2log libm2min libm2pim \
libgcobol; do
rm -f %{buildroot}/%{versmainlibdir}/$lib.la
%if %{biarch}
rm -f %{buildroot}/%{versmainlibdirbi}/$lib.la
@@ -2895,7 +3015,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 \
@@ -2930,6 +3051,9 @@ for libname in \
libm2pim \
libm2min \
%endif
%if %{build_cobol}
libgcobol \
%endif
%ifarch %atomic_arch
libatomic \
%endif
@@ -2959,8 +3083,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
@@ -2968,8 +3100,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
@@ -2989,40 +3129,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
@@ -3076,7 +3226,7 @@ chmod 644 ../testresults/*
%endif
# Remove files that we do not need to clean up filelist
# Preserve %{GCCDIST}-gcc%{binsuffix} binary for libgccjit as it is used as a driver
# Preserve %%{GCCDIST}-gcc%%{binsuffix} binary for libgccjit as it is used as a driver
mv %{buildroot}/%{_prefix}/bin/%{GCCDIST}-gcc%{binsuffix} %{buildroot}
rm -f %{buildroot}/%{_prefix}/bin/%{GCCDIST}-*
mv %{buildroot}/%{GCCDIST}-gcc%{binsuffix} %{buildroot}/%{_prefix}/bin/
@@ -3442,7 +3592,6 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc15-locale.lang
%{libsubdir}/include/sm4intrin.h
%{libsubdir}/include/avx512bitalgvlintrin.h
%{libsubdir}/include/usermsrintrin.h
%{libsubdir}/include/avx10_2roundingintrin.h
%{libsubdir}/include/avx10_2-512bf16intrin.h
%{libsubdir}/include/avx10_2-512convertintrin.h
%{libsubdir}/include/avx10_2-512mediaintrin.h
@@ -3473,7 +3622,7 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc15-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
@@ -3539,7 +3688,7 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc15-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
@@ -4187,6 +4336,34 @@ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang > gcc15-locale.lang
%endif
%endif
%if %{build_cobol}
%files cobol
%defattr(-,root,root)
%dir %{_datadir}/gcobol
%dir %{_datadir}/gcobol/udf
%{_datadir}/gcobol/udf/stored-char-length.cbl
%{_prefix}/bin/gcobol%{binsuffix}
%{_prefix}/bin/gcobc%{binsuffix}
%{libsubdir}/cobol1
%versmainlib libgcobol.a
%versmainlib libgcobol.so
%versmainlib libgcobol.spec
%doc %{_mandir}/man1/gcobol%{binsuffix}.1.gz
%doc %{_mandir}/man3/gcobol-io%{binsuffix}.3.gz
%if %{separate_biarch}
# 32bit not supported sofar
%endif
%files -n libgcobol%{libgcobol_sover}%{libgcobol_suffix}
%defattr(-,root,root)
%mainlib libgcobol.so.%{libgcobol_sover}*
%if %{separate_biarch}
# 32bit not supported sofar
%endif
%endif
%if 0%{?run_tests:1}
%files -n gcc15-testresults
%defattr(-,root,root)

45
newlib-gcn-libm-fix.patch Normal file
View File

@@ -0,0 +1,45 @@
From 2ef1a37e7823b21eda524972c006e0e8c26f97b3 Mon Sep 17 00:00:00 2001
From: Andrew Stubbs <ams@baylibre.com>
Date: Thu, 20 Mar 2025 09:32:31 +0000
Subject: [PATCH] Fix GCN SIMD libm bug
Since January, GCC has been miscompiling Newlib libm on AMD GCN due to
undefined behaviour in the RESIZE_VECTOR macro. It was "working" but expanding
the size of a vector would no longer zero the additional lanes, as it expected.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119325
---
newlib/libm/machine/amdgcn/amdgcn_veclib.h | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/newlib/libm/machine/amdgcn/amdgcn_veclib.h b/newlib/libm/machine/amdgcn/amdgcn_veclib.h
index bd67740ac..9e9d3ebf0 100644
--- a/newlib/libm/machine/amdgcn/amdgcn_veclib.h
+++ b/newlib/libm/machine/amdgcn/amdgcn_veclib.h
@@ -85,8 +85,21 @@ typedef union {
#define RESIZE_VECTOR(to_t, from) \
({ \
- __auto_type __from = (from); \
- *((to_t *) &__from); \
+ to_t __to; \
+ if (VECTOR_WIDTH (to_t) < VECTOR_WIDTH (__typeof (from))) \
+ asm ("; no-op cast %0" : "=v"(__to) : "0"(from)); \
+ else \
+ { \
+ unsigned long __mask = -1L; \
+ int lanes = VECTOR_WIDTH (__typeof (from)); \
+ __mask <<= lanes; \
+ __builtin_choose_expr ( \
+ V_SF_SI_P (to_t), \
+ ({asm ("v_mov_b32 %0, 0" : "=v"(__to) : "0"(from), "e"(__mask));}), \
+ ({asm ("v_mov_b32 %H0, 0\n\t" \
+ "v_mov_b32 %L0, 0" : "=v"(__to) : "0"(from), "e"(__mask));})); \
+ } \
+ __to; \
})
/* Bit-wise cast vector FROM to type TO_T. */
--
2.43.0