Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gcc16 for openSUSE:Factory checked 
in at 2026-09-04 12:37:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gcc16 (Old)
 and      /work/SRC/openSUSE:Factory/.gcc16.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gcc16"

Fri Sep  4 12:37:53 2026 rev:11 rq:1375370 version:16.2.0+git9497

Changes:
--------
--- /work/SRC/openSUSE:Factory/gcc16/gcc16.changes      2026-08-14 
22:04:53.324521931 +0200
+++ /work/SRC/openSUSE:Factory/.gcc16.new.1265/gcc16.changes    2026-09-04 
12:38:31.612615694 +0200
@@ -1,0 +2,15 @@
+Wed Sep  2 11:50:38 UTC 2026 - Richard Biener <[email protected]>
+
+- Add gcc16-pr124811.patch to fix build reproducability when PCH
+  is used
+- Add gcc16-znver6-cpuid.patch to fix auto-detection of Zen6
+  [bsc#1277919]
+
+-------------------------------------------------------------------
+Mon Aug 31 12:30:08 UTC 2026 - Richard Biener <[email protected]>
+
+- Remove support for s390, make sure to configure s390x with
+  --disable-multilib to avoid configury error without explicit
+  disable of multilibs.  Support for s390 is officially deprecated.
+
+-------------------------------------------------------------------

New:
----
  gcc16-pr124811.patch
  gcc16-znver6-cpuid.patch

----------(New B)----------
  New:
- Add gcc16-pr124811.patch to fix build reproducability when PCH
  is used
  New:  is used
- Add gcc16-znver6-cpuid.patch to fix auto-detection of Zen6
  [bsc#1277919]
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cross-aarch64-gcc16-bootstrap.spec ++++++
--- /var/tmp/diff_new_pack.6iOZhB/_old  2026-09-04 12:38:33.428679490 +0200
+++ /var/tmp/diff_new_pack.6iOZhB/_new  2026-09-04 12:38:33.430679560 +0200
@@ -99,7 +99,7 @@
 %endif
 
 Name:           %{pkgname}
-%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
+%define biarch_targets x86_64 powerpc64 powerpc sparc sparc64
 
 URL:            https://gcc.gnu.org/
 Version:        16.2.0+git9497
@@ -130,6 +130,9 @@
 # Some patches taken from Debian
 Patch60:        gcc44-textdomain.patch
 Patch61:        gcc44-rename-info-files.patch
+# Patches picked from upstream branch
+Patch100:       gcc16-pr124811.patch
+Patch101:       gcc16-znver6-cpuid.patch
 
 # Define the canonical target and host architecture
 #   %%gcc_target_arch  is supposed to be the full target triple
@@ -336,6 +339,7 @@
 %patch -p1 -P 22
 %patch -P 51
 %patch -p1 -P 60 -P 61
+%patch -p1 -P 100 -P 101
 
 #test patching end
 
@@ -367,7 +371,7 @@
     # default compiler settings now.
     -mcpu=i?86|-march=i?86|-mtune=i?86) ;;
 %endif
-%ifarch s390 s390x
+%ifarch s390x
     -fsigned-char) ;;
     -O1) add_flag=-O2 ;;
 %endif
@@ -556,7 +560,7 @@
 %endif
 %endif
        --enable-linux-futex \
-%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
+%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390x %sparc
        --enable-gnu-indirect-function \
 %endif
 %ifarch %{disable_multilib_arch}
@@ -728,7 +732,7 @@
 %endif
        --with-tune=generic \
 %endif
-%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
+%if "%{TARGET_ARCH}" == "s390x"
 %if %{suse_version} >= 1600 && !0%{?is_opensuse}
         --with-tune=z15 --with-arch=z14 \
 %else

cross-aarch64-gcc16.spec: same change
cross-amdgcn-gcc16.spec: same change
cross-arm-gcc16.spec: same change
cross-arm-none-gcc16-bootstrap.spec: same change
cross-arm-none-gcc16.spec: same change
cross-avr-gcc16-bootstrap.spec: same change
cross-avr-gcc16.spec: same change
cross-bpf-gcc16.spec: same change
cross-hppa-gcc16-bootstrap.spec: same change
cross-hppa-gcc16.spec: same change
cross-loongarch64-gcc16-bootstrap.spec: same change
cross-loongarch64-gcc16.spec: same change
cross-nvptx-gcc16.spec: same change
cross-ppc64-gcc16.spec: same change
cross-ppc64le-gcc16-bootstrap.spec: same change
cross-ppc64le-gcc16.spec: same change
cross-pru-gcc16-bootstrap.spec: same change
cross-pru-gcc16.spec: same change
cross-riscv64-elf-gcc16-bootstrap.spec: same change
cross-riscv64-elf-gcc16.spec: same change
cross-riscv64-gcc16-bootstrap.spec: same change
cross-riscv64-gcc16.spec: same change
cross-rx-gcc16-bootstrap.spec: same change
cross-rx-gcc16.spec: same change
cross-s390x-gcc16-bootstrap.spec: same change
cross-s390x-gcc16.spec: same change
cross-x86_64-gcc16-bootstrap.spec: same change
cross-x86_64-gcc16.spec: same change
++++++ gcc16-testresults.spec ++++++
--- /var/tmp/diff_new_pack.6iOZhB/_old  2026-09-04 12:38:34.572719678 +0200
+++ /var/tmp/diff_new_pack.6iOZhB/_new  2026-09-04 12:38:34.574719749 +0200
@@ -54,9 +54,9 @@
 # Ada currently fails to build on a few platforms, enable it only
 # on those that work
 %if %{suse_version} >= 1330
-%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390 s390x ia64 aarch64 riscv64
+%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390x ia64 aarch64 riscv64
 %else
-%define ada_arch %ix86 x86_64 ppc ppc64 s390 ia64
+%define ada_arch %ix86 x86_64 ppc ppc64 ia64
 %endif
 
 %ifarch %ada_arch
@@ -66,13 +66,13 @@
 %endif
 
 %define quadmath_arch %ix86 x86_64 ia64 ppc64le
-%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 tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390x riscv64 loongarch64
+%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390x %sparc %arm aarch64 
riscv64 loongarch64
 %define hwasan_arch aarch64 x86_64
-%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 
s390x %sparc loongarch64
-%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x 
%sparc m68k ia64 riscv64 loongarch64
-%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 
loongarch64
-%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 
riscv64 loongarch64
+%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390x 
%sparc loongarch64
+%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390x %sparc 
m68k ia64 riscv64 loongarch64
+%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390x riscv64 loongarch64
+%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390x %arm aarch64 riscv64 
loongarch64
 %if 0%{?build_libvtv:1}
 %define vtv_arch x86_64 %ix86
 %endif
@@ -242,7 +242,7 @@
 # libFOO-devel package suffix
 %define libdevel_suffix -gcc16
 
-%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
+%define biarch_targets x86_64 powerpc64 powerpc sparc sparc64
 
 URL:            https://gcc.gnu.org/
 Version:        16.2.0+git9497
@@ -337,10 +337,10 @@
 %ifarch ppc sparcv9
 %define separate_bi64 1
 %endif
-%ifarch x86_64 s390x ppc64 sparc64
+%ifarch x86_64 ppc64 sparc64
 %define separate_bi32 1
 %endif
-%define disable_multilib_arch %{nil}
+%define disable_multilib_arch s390x
 %else
 %define disable_multilib_arch ppc sparcv9 x86_64 s390x ppc64 sparc64
 %endif
@@ -423,6 +423,9 @@
 # Some patches taken from Debian
 Patch60:        gcc44-textdomain.patch
 Patch61:        gcc44-rename-info-files.patch
+# Patches picked from upstream branch
+Patch100:       gcc16-pr124811.patch
+Patch101:       gcc16-znver6-cpuid.patch
 
 Summary:        Testsuite results
 License:        LicenseRef-SUSE-Public-Domain
@@ -553,6 +556,7 @@
 %patch -p1 -P 22
 %patch -P 51
 %patch -p1 -P 60 -P 61
+%patch -p1 -P 100 -P 101
 
 #test patching end
 
@@ -584,7 +588,7 @@
     # default compiler settings now.
     -mcpu=i?86|-march=i?86|-mtune=i?86) ;;
 %endif
-%ifarch s390 s390x
+%ifarch s390x
     -fsigned-char) ;;
     -O1) add_flag=-O2 ;;
 %endif
@@ -773,7 +777,7 @@
 %endif
 %endif
        --enable-linux-futex \
-%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
+%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390x %sparc
        --enable-gnu-indirect-function \
 %endif
 %ifarch %{disable_multilib_arch}
@@ -945,7 +949,7 @@
 %endif
        --with-tune=generic \
 %endif
-%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
+%if "%{TARGET_ARCH}" == "s390x"
 %if %{suse_version} >= 1600 && !0%{?is_opensuse}
         --with-tune=z15 --with-arch=z14 \
 %else

++++++ gcc16.spec ++++++
--- /var/tmp/diff_new_pack.6iOZhB/_old  2026-09-04 12:38:34.629721681 +0200
+++ /var/tmp/diff_new_pack.6iOZhB/_new  2026-09-04 12:38:34.632721786 +0200
@@ -33,9 +33,9 @@
 # Ada currently fails to build on a few platforms, enable it only
 # on those that work
 %if %{suse_version} >= 1330
-%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390 s390x ia64 aarch64 riscv64
+%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390x ia64 aarch64 riscv64
 %else
-%define ada_arch %ix86 x86_64 ppc ppc64 s390 ia64
+%define ada_arch %ix86 x86_64 ppc ppc64 ia64
 %endif
 
 %ifarch %ada_arch
@@ -45,13 +45,13 @@
 %endif
 
 %define quadmath_arch %ix86 x86_64 ia64 ppc64le
-%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 
loongarch64
-%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %sparc %arm 
aarch64 riscv64 loongarch64
+%define tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390x riscv64 loongarch64
+%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390x %sparc %arm aarch64 
riscv64 loongarch64
 %define hwasan_arch aarch64 x86_64
-%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 
s390x %sparc loongarch64
-%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x 
%sparc m68k ia64 riscv64 loongarch64
-%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 
loongarch64
-%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 
riscv64 loongarch64
+%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390x 
%sparc loongarch64
+%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390x %sparc 
m68k ia64 riscv64 loongarch64
+%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390x riscv64 loongarch64
+%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390x %arm aarch64 riscv64 
loongarch64
 %if 0%{?build_libvtv:1}
 %define vtv_arch x86_64 %ix86
 %endif
@@ -221,7 +221,7 @@
 # libFOO-devel package suffix
 %define libdevel_suffix -gcc16
 
-%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
+%define biarch_targets x86_64 powerpc64 powerpc sparc sparc64
 
 URL:            https://gcc.gnu.org/
 Version:        16.2.0+git9497
@@ -316,10 +316,10 @@
 %ifarch ppc sparcv9
 %define separate_bi64 1
 %endif
-%ifarch x86_64 s390x ppc64 sparc64
+%ifarch x86_64 ppc64 sparc64
 %define separate_bi32 1
 %endif
-%define disable_multilib_arch %{nil}
+%define disable_multilib_arch s390x
 %else
 %define disable_multilib_arch ppc sparcv9 x86_64 s390x ppc64 sparc64
 %endif
@@ -402,6 +402,9 @@
 # Some patches taken from Debian
 Patch60:        gcc44-textdomain.patch
 Patch61:        gcc44-rename-info-files.patch
+# Patches picked from upstream branch
+Patch100:       gcc16-pr124811.patch
+Patch101:       gcc16-znver6-cpuid.patch
 
 License:        GPL-3.0-or-later
 Summary:        The GNU C Compiler and Support Files
@@ -2573,6 +2576,7 @@
 %patch -p1 -P 22
 %patch -P 51
 %patch -p1 -P 60 -P 61
+%patch -p1 -P 100 -P 101
 
 #test patching end
 
@@ -2604,7 +2608,7 @@
     # default compiler settings now.
     -mcpu=i?86|-march=i?86|-mtune=i?86) ;;
 %endif
-%ifarch s390 s390x
+%ifarch s390x
     -fsigned-char) ;;
     -O1) add_flag=-O2 ;;
 %endif
@@ -2793,7 +2797,7 @@
 %endif
 %endif
        --enable-linux-futex \
-%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
+%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390x %sparc
        --enable-gnu-indirect-function \
 %endif
 %ifarch %{disable_multilib_arch}
@@ -2965,7 +2969,7 @@
 %endif
        --with-tune=generic \
 %endif
-%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
+%if "%{TARGET_ARCH}" == "s390x"
 %if %{suse_version} >= 1600 && !0%{?is_opensuse}
         --with-tune=z15 --with-arch=z14 \
 %else
@@ -3567,7 +3571,7 @@
 %{libsubdir}/include/nmmintrin.h
 %{libsubdir}/include/x86gprintrin.h
 %endif
-%ifarch s390 s390x
+%ifarch s390x
 %{libsubdir}/include/htmintrin.h
 %{libsubdir}/include/htmxlintrin.h
 %{libsubdir}/include/s390intrin.h

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.6iOZhB/_old  2026-09-04 12:38:34.763726388 +0200
+++ /var/tmp/diff_new_pack.6iOZhB/_new  2026-09-04 12:38:34.767726529 +0200
@@ -1,5 +1,5 @@
-mtime: 1786544707
-commit: f89f1da4e62e72a1ff3a0e286a58ed688e42b86406afddf25037c781731b80fc
+mtime: 1788349939
+commit: 2d836e3af5d06bd1e505c60cc4b860eb30295a721739db676e3623506aee5e4c
 url: https://src.opensuse.org/gcc/gcc16.git
 revision: main
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-09-02 13:52:19.000000000 +0200
@@ -0,0 +1,4 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pre_checkin.sh new/pre_checkin.sh
--- old/pre_checkin.sh  1970-01-01 01:00:00.000000000 +0100
+++ new/pre_checkin.sh  2026-09-02 13:52:19.000000000 +0200
@@ -0,0 +1,31 @@
+#!/bin/bash
+# This script is called automatically during autobuild checkin.
+
+case $0 in
+  \./*)
+    here=$PWD
+    ;;
+  */*)
+    here=${0%/*}
+    ;;
+  *)
+    here=$PWD
+    ;;
+esac
+case ${here##*/} in
+  gcc*.*)
+    # Handle maintainance projects with .$REPO suffix
+    suffix=${here##*/}
+    suffix=${suffix%%\.*}
+    set ${suffix#gcc}
+    ;;
+  gcc-*)
+    suffix=${here##*/}
+    set ${suffix#*-}-
+    ;;
+  gcc[0-9]*)
+    suffix=${here##*/}
+    set ${suffix#gcc}
+    ;;
+esac
+. ${here}/change_spec

++++++ gcc.spec.in ++++++
--- /var/tmp/diff_new_pack.6iOZhB/_old  2026-09-04 12:38:35.148739914 +0200
+++ /var/tmp/diff_new_pack.6iOZhB/_new  2026-09-04 12:38:35.153740089 +0200
@@ -34,9 +34,9 @@
 # Ada currently fails to build on a few platforms, enable it only
 # on those that work
 %if %{suse_version} >= 1330
-%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390 s390x ia64 aarch64 riscv64
+%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390x ia64 aarch64 riscv64
 %else
-%define ada_arch %ix86 x86_64 ppc ppc64 s390 ia64
+%define ada_arch %ix86 x86_64 ppc ppc64 ia64
 %endif
 
 %ifarch %ada_arch
@@ -46,13 +46,13 @@
 %endif
 
 %define quadmath_arch %ix86 x86_64 ia64 ppc64le
-%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 tsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390x riscv64 loongarch64
+%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le s390x %sparc %arm aarch64 
riscv64 loongarch64
 %define hwasan_arch aarch64 x86_64
-%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390 
s390x %sparc loongarch64
-%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x 
%sparc m68k ia64 riscv64 loongarch64
-%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390 s390x riscv64 
loongarch64
-%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390 s390x %arm aarch64 
riscv64 loongarch64
+%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le riscv64 s390x 
%sparc loongarch64
+%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390x %sparc 
m68k ia64 riscv64 loongarch64
+%define lsan_arch x86_64 aarch64 ppc ppc64 ppc64le s390x riscv64 loongarch64
+%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le s390x %arm aarch64 riscv64 
loongarch64
 %if 0%{?build_libvtv:1}
 %define vtv_arch x86_64 %ix86
 %endif
@@ -225,7 +225,7 @@
 
 
 # SRC-COMMON-BEGIN
-%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
+%define biarch_targets x86_64 powerpc64 powerpc sparc sparc64
 
 URL:          https://gcc.gnu.org/
 Version:      @[email protected]
@@ -321,10 +321,10 @@
 %ifarch ppc sparcv9
 %define separate_bi64 1
 %endif
-%ifarch x86_64 s390x ppc64 sparc64
+%ifarch x86_64 ppc64 sparc64
 %define separate_bi32 1
 %endif
-%define disable_multilib_arch %{nil}
+%define disable_multilib_arch s390x
 %else
 %define disable_multilib_arch ppc sparcv9 x86_64 s390x ppc64 sparc64
 %endif
@@ -407,6 +407,9 @@
 # Some patches taken from Debian
 Patch60:       gcc44-textdomain.patch
 Patch61:       gcc44-rename-info-files.patch
+# Patches picked from upstream branch
+Patch100:      gcc16-pr124811.patch
+Patch101:      gcc16-znver6-cpuid.patch
 
 # GCC-TESTSUITE-DELETE-BEGIN
 # SRC-COMMON-END
@@ -1442,6 +1445,7 @@
 %patch -p1 -P 22
 %patch -P 51
 %patch -p1 -P 60 -P 61
+%patch -p1 -P 100 -P 101
 
 #test patching end
 
@@ -1473,7 +1477,7 @@
     # default compiler settings now.
     -mcpu=i?86|-march=i?86|-mtune=i?86) ;;
 %endif
-%ifarch s390 s390x
+%ifarch s390x
     -fsigned-char) ;;
     -O1) add_flag=-O2 ;;
 %endif
@@ -1662,7 +1666,7 @@
 %endif
 %endif
        --enable-linux-futex \
-%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
+%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390x %sparc
        --enable-gnu-indirect-function \
 %endif
 %ifarch %{disable_multilib_arch}
@@ -1834,7 +1838,7 @@
 %endif
        --with-tune=generic \
 %endif
-%if "%{TARGET_ARCH}" == "s390" || "%{TARGET_ARCH}" == "s390x"
+%if "%{TARGET_ARCH}" == "s390x"
 %if %{suse_version} >= 1600 && !0%{?is_opensuse}
         --with-tune=z15 --with-arch=z14 \
 %else
@@ -2442,7 +2446,7 @@
 %{libsubdir}/include/nmmintrin.h
 %{libsubdir}/include/x86gprintrin.h
 %endif
-%ifarch s390 s390x
+%ifarch s390x
 %{libsubdir}/include/htmintrin.h
 %{libsubdir}/include/htmxlintrin.h
 %{libsubdir}/include/s390intrin.h

++++++ gcc16-pr124811.patch ++++++
>From 5e8bef95e4b4e3fc3fbf180405e26f9b3bdfe738 Mon Sep 17 00:00:00 2001
From: Richard Biener <[email protected]>
Date: Wed, 12 Aug 2026 15:58:39 -0400
Subject: [PATCH] c++: do not hash TYPENAME_TYPEs on pointers [PR124811]
To: [email protected]

From: Patrick Palka <[email protected]>

typename_htab is written to a precompiled header.  A hash table is
streamed out slot array and all: gt_pch_nx() relocates the pointers
inside the entries but leaves every entry in the slot it happened to
occupy.  typename_hasher hashed on the addresses of the scope and the
fullname, so the slots were chosen from addresses that ASLR randomises
in the process writing the header, and they no longer correspond to the
hash of anything once the header has been read back at a different
address.

Lookups then find a restored TYPENAME_TYPE only when it happens to lie
on the probe sequence of the slot the new hash points at, so most miss
and build a duplicate, and which ones miss depends on the layout the
writing process had.  That makes a compile using a PCH differ from the
same compile without one, and differ from itself between runs: the
duplicates consume DECL_UIDs, every later DECL_UID shifts, and
var-tracking hashes on DECL_UID, so .debug_loclists comes out different.

Hash on TYPE_UID instead, which the header preserves, and use
iterative_hash_template_arg to properly hash fullname which can be an
arbitrary TEMPLATE_ID_EXPR.  (It's important to hash the fullname instead
of just the name for sake of the PR c++/65328 compile-time-hog testcase.)

        PR c++/124811

gcc/cp/ChangeLog:

        * decl.cc (typename_hasher::hash): Instead of pointer hashing,
        hash TYPE_HASH of context and use iterative_hash_template_arg
        to hash fullname.

Co-authored-by: Bernhard M. Wiedemann <[email protected]>
Reviewed-by: Jason Merrill <[email protected]>
(cherry picked from commit cc08be7bf549072bf3699a57d3d37222e8c1087d)
---
 gcc/cp/decl.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc
index 095cef2f2e5..d6164fead61 100644
--- a/gcc/cp/decl.cc
+++ b/gcc/cp/decl.cc
@@ -4925,8 +4925,12 @@ struct typename_hasher : ggc_ptr_hash<tree_node>
   hash (tree context, tree fullname)
   {
     hashval_t hash = 0;
-    hash = iterative_hash_object (context, hash);
-    hash = iterative_hash_object (fullname, hash);
+    hash = iterative_hash_hashval_t (TYPE_HASH (context), hash);
+    /* FULLNAME could be a template-id, so use iterative_hash_template_arg 
here.
+       And might as well set comparing_specializations for stronger hashing.  
*/
+    ++comparing_specializations;
+    hash = iterative_hash_template_arg (fullname, hash);
+    --comparing_specializations;
     return hash;
   }
 
-- 
2.51.0


++++++ gcc16-znver6-cpuid.patch ++++++
>From 28bb548c8b87b4cf80c7df18c8de1950bed53222 Mon Sep 17 00:00:00 2001
From: Richard Biener <[email protected]>
Date: Tue, 25 Aug 2026 13:54:55 +0530
Subject: [PATCH] Fix zen6 AVX512BMM cpuid check.
To: [email protected]

From: Dipesh Sharma <[email protected]>

- Moved bit_AVX512BMM to extended features section.
- Added test for __builtin_cpu_supports ("avx512bmm") compile and runtime tests.

gcc/ChangeLog:

        * common/config/i386/cpuinfo.h (get_available_features): Detect 
AVX512BMM from
        extended features instead of standard leaf.
        * config/i386/cpuid.h (bit_AVX512BMM): Move to extended features
        section.

gcc/testsuite/ChangeLog:

        * gcc.target/i386/avx512bmm-check-1.c: New test.
        * gcc.target/i386/avx512bmm-check-2.c: New test.
        * gcc.target/i386/avx512bmm-check-3.c: New test.

(cherry picked from commit 33053605189f2b903b1a0d730a1feec166e89735)
---
 gcc/common/config/i386/cpuinfo.h              | 16 +++------------
 gcc/config/i386/cpuid.h                       |  4 +---
 .../gcc.target/i386/avx512bmm-check-1.c       |  6 ++++++
 .../gcc.target/i386/avx512bmm-check-2.c       | 20 +++++++++++++++++++
 .../gcc.target/i386/avx512bmm-check-3.c       |  6 ++++++
 5 files changed, 36 insertions(+), 16 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/i386/avx512bmm-check-1.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx512bmm-check-2.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx512bmm-check-3.c

diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
index f59090c8cde..e07d01991ca 100644
--- a/gcc/common/config/i386/cpuinfo.h
+++ b/gcc/common/config/i386/cpuinfo.h
@@ -1112,16 +1112,6 @@ get_available_features (struct __processor_model 
*cpu_model,
        }
     }
 
-  /* Get Advanced Features at level 0x21 (eax = 0x21).  */
-  if (max_cpuid_level >= 0x21)
-    {
-      __cpuid (0x21, eax, ebx, ecx, edx);
-      if (eax & bit_AVX512BMM)
-       {
-         set_feature (FEATURE_AVX512BMM);
-       }
-    }
-
   /* Get Advanced Features at level 0x24 (eax = 0x24, ecx = 0).  */
   if (avx10_set && max_cpuid_level >= 0x24)
     {
@@ -1196,9 +1186,9 @@ get_available_features (struct __processor_model 
*cpu_model,
     {
       __cpuid (0x80000021, eax, ebx, ecx, edx);
       if (eax & bit_AMD_PREFETCHI)
-       {
-         set_feature (FEATURE_PREFETCHI);
-       }
+       set_feature (FEATURE_PREFETCHI);
+      if (eax & bit_AVX512BMM)
+       set_feature (FEATURE_AVX512BMM);
     }
 
 #undef set_feature
diff --git a/gcc/config/i386/cpuid.h b/gcc/config/i386/cpuid.h
index c48556afa6e..0b5e6cc99a0 100644
--- a/gcc/config/i386/cpuid.h
+++ b/gcc/config/i386/cpuid.h
@@ -75,6 +75,7 @@
 /* Extended Features (%eax == 0x80000021) */
 /* %eax */
 #define bit_AMD_PREFETCHI (1 << 20)
+#define bit_AVX512BMM (1 << 23)
 
 /* Extended Features Leaf (%eax == 7, %ecx == 0) */
 /* %ebx */
@@ -167,9 +168,6 @@
 #define bit_AESKLE     ( 1<<0 )
 #define bit_WIDEKL     ( 1<<2 )
 
-/* Sub leaf (%eax == 0x21) */
-#define bit_AVX512BMM  ( 1<<23 )
-
 /* AMX sub leaf (%eax == 0x1e, %ecx == 1) */
 /* %eax */
 #define bit_AMX_FP8    (1 << 4)
diff --git a/gcc/testsuite/gcc.target/i386/avx512bmm-check-1.c 
b/gcc/testsuite/gcc.target/i386/avx512bmm-check-1.c
new file mode 100644
index 00000000000..176b06eb09a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx512bmm-check-1.c
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=znver6" } */
+
+#ifndef __AVX512BMM__
+# error AVX512BMM should be enabled for target znver6.
+#endif
diff --git a/gcc/testsuite/gcc.target/i386/avx512bmm-check-2.c 
b/gcc/testsuite/gcc.target/i386/avx512bmm-check-2.c
new file mode 100644
index 00000000000..956ae2d2acb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx512bmm-check-2.c
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -march=native" } */
+
+int
+main ()
+{
+  if (__builtin_cpu_supports ("avx512bmm"))
+    {
+#ifndef __AVX512BMM__
+      __builtin_abort ();
+#endif
+    }
+  else
+    {
+#ifdef __AVX512BMM__
+      __builtin_abort ();
+#endif
+    }
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.target/i386/avx512bmm-check-3.c 
b/gcc/testsuite/gcc.target/i386/avx512bmm-check-3.c
new file mode 100644
index 00000000000..25ffeb8c87b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx512bmm-check-3.c
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=native -mno-avx512bmm" } */
+
+#if defined(__ZNVER6__) && defined(__AVX512BMM__)
+# error AVX512BMM should be disabled for native detection of target znver6 
with -mno-avx512bmm.
+#endif
-- 
2.51.0

Reply via email to