Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gcc15 for openSUSE:Factory checked 
in at 2025-04-14 12:55:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gcc15 (Old)
 and      /work/SRC/openSUSE:Factory/.gcc15.new.1907 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gcc15"

Mon Apr 14 12:55:41 2025 rev:5 rq:1268364 version:15.0.1+git9352

Changes:
--------
--- /work/SRC/openSUSE:Factory/gcc15/gcc15.changes      2025-03-31 
11:39:06.438034483 +0200
+++ /work/SRC/openSUSE:Factory/.gcc15.new.1907/gcc15.changes    2025-04-14 
12:56:18.431020623 +0200
@@ -1,0 +2,9 @@
+Thu Apr 10 06:17:49 UTC 2025 - Richard Biener <rguent...@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.
+
+-------------------------------------------------------------------

Old:
----
  gcc-15.0.1+git9001.tar.xz

New:
----
  gcc-15.0.1+git9352.tar.xz
  newlib-gcn-libm-fix.patch

BETA DEBUG BEGIN:
  New:  copy rather than the installed system runtime.  [bsc#1240788]
- Add newlib-gcn-libm-fix.patch to fix newlib libm miscompilation
  for GCN offloading.
BETA DEBUG END:

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

Other differences:
------------------
++++++ cross-aarch64-gcc15-bootstrap.spec ++++++
--- /var/tmp/diff_new_pack.6LwOH2/_old  2025-04-14 12:56:20.155093024 +0200
+++ /var/tmp/diff_new_pack.6LwOH2/_new  2025-04-14 12:56:20.155093024 +0200
@@ -102,7 +102,7 @@
 %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
 
 URL:            https://gcc.gnu.org/
-Version:        15.0.1+git9001
+Version:        15.0.1+git9352
 Release:        0
 %define gcc_dir_version %(echo %version |  sed 's/+.*//' | cut -d '.' -f 1)
 %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' 
| sed 's/+/-/')
@@ -128,6 +128,8 @@
 # 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
@@ -310,6 +312,7 @@
 %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
@@ -807,7 +810,7 @@
 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.

cross-aarch64-gcc15.spec: same change
cross-amdgcn-gcc15.spec: same change
cross-arm-gcc15.spec: same change
cross-arm-none-gcc15-bootstrap.spec: same change
cross-arm-none-gcc15.spec: same change
cross-avr-gcc15-bootstrap.spec: same change
cross-avr-gcc15.spec: same change
cross-bpf-gcc15.spec: same change
cross-hppa-gcc15-bootstrap.spec: same change
cross-hppa-gcc15.spec: same change
cross-loongarch64-gcc15-bootstrap.spec: same change
cross-loongarch64-gcc15.spec: same change
cross-m68k-gcc15.spec: same change
cross-mips-gcc15.spec: same change
cross-nvptx-gcc15.spec: same change
cross-ppc64-gcc15.spec: same change
cross-ppc64le-gcc15-bootstrap.spec: same change
cross-ppc64le-gcc15.spec: same change
cross-pru-gcc15-bootstrap.spec: same change
cross-pru-gcc15.spec: same change
cross-riscv64-elf-gcc15-bootstrap.spec: same change
cross-riscv64-elf-gcc15.spec: same change
cross-riscv64-gcc15-bootstrap.spec: same change
cross-riscv64-gcc15.spec: same change
cross-rx-gcc15-bootstrap.spec: same change
cross-rx-gcc15.spec: same change
cross-s390x-gcc15-bootstrap.spec: same change
cross-s390x-gcc15.spec: same change
cross-sparc-gcc15.spec: same change
cross-sparc64-gcc15.spec: same change
cross-x86_64-gcc15.spec: same change
++++++ gcc15-testresults.spec ++++++
--- /var/tmp/diff_new_pack.6LwOH2/_old  2025-04-14 12:56:21.083131996 +0200
+++ /var/tmp/diff_new_pack.6LwOH2/_new  2025-04-14 12:56:21.083131996 +0200
@@ -238,7 +238,7 @@
 %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
 
 URL:            https://gcc.gnu.org/
-Version:        15.0.1+git9001
+Version:        15.0.1+git9352
 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/+/-/')
@@ -411,6 +411,8 @@
 # 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
@@ -521,6 +523,7 @@
 %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

++++++ gcc15.spec ++++++
--- /var/tmp/diff_new_pack.6LwOH2/_old  2025-04-14 12:56:21.115133339 +0200
+++ /var/tmp/diff_new_pack.6LwOH2/_new  2025-04-14 12:56:21.115133339 +0200
@@ -217,7 +217,7 @@
 %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
 
 URL:            https://gcc.gnu.org/
-Version:        15.0.1+git9001
+Version:        15.0.1+git9352
 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/+/-/')
@@ -390,6 +390,8 @@
 # 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
@@ -2448,6 +2450,7 @@
 %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
@@ -2992,7 +2995,8 @@
 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 \
@@ -3059,8 +3063,16 @@
     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
@@ -3068,8 +3080,16 @@
       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
@@ -3089,40 +3109,50 @@
 %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
@@ -3176,7 +3206,7 @@
 %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/
@@ -3577,7 +3607,7 @@
 %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
@@ -3643,7 +3673,7 @@
 %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
@@ -4302,6 +4332,7 @@
 %{libsubdir}/cobol1
 %versmainlib libgcobol.a
 %versmainlib libgcobol.so
+%versmainlib libgcobol.spec
 %doc %{_mandir}/man1/gcobol%{binsuffix}.1.gz
 %doc %{_mandir}/man3/gcobol%{binsuffix}.3.gz
 

++++++ cross.spec.in ++++++
--- /var/tmp/diff_new_pack.6LwOH2/_old  2025-04-14 12:56:21.283140395 +0200
+++ /var/tmp/diff_new_pack.6LwOH2/_new  2025-04-14 12:56:21.287140562 +0200
@@ -291,7 +291,7 @@
 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.

++++++ gcc-15.0.1+git9001.tar.xz -> gcc-15.0.1+git9352.tar.xz ++++++
/work/SRC/openSUSE:Factory/gcc15/gcc-15.0.1+git9001.tar.xz 
/work/SRC/openSUSE:Factory/.gcc15.new.1907/gcc-15.0.1+git9352.tar.xz differ: 
char 15, line 1

++++++ gcc.obsinfo ++++++
--- /var/tmp/diff_new_pack.6LwOH2/_old  2025-04-14 12:56:21.335142578 +0200
+++ /var/tmp/diff_new_pack.6LwOH2/_new  2025-04-14 12:56:21.335142578 +0200
@@ -1,5 +1,5 @@
 name: gcc
-version: 15.0.1+git9001
-mtime: 1743148447
-commit: 9ac0ff5ea5f5a2c96f1599d271a42e226929d30b
+version: 15.0.1+git9352
+mtime: 1744244286
+commit: 6284f555e877c75ddecc776286ec4b8c20007de2
 

++++++ gcc.spec.in ++++++
--- /var/tmp/diff_new_pack.6LwOH2/_old  2025-04-14 12:56:21.363143754 +0200
+++ /var/tmp/diff_new_pack.6LwOH2/_new  2025-04-14 12:56:21.367143922 +0200
@@ -395,6 +395,8 @@
 # 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
@@ -1375,6 +1377,7 @@
 %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
@@ -1922,7 +1925,8 @@
 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 \
@@ -1989,8 +1993,16 @@
     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
@@ -1998,8 +2010,16 @@
       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
@@ -2019,40 +2039,50 @@
 %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
@@ -2108,7 +2138,7 @@
 # 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/
@@ -2510,7 +2540,7 @@
 %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
@@ -2576,7 +2606,7 @@
 %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
@@ -3247,6 +3277,7 @@
 %{libsubdir}/cobol1
 %versmainlib libgcobol.a
 %versmainlib libgcobol.so
+%versmainlib libgcobol.spec
 %doc %{_mandir}/man1/gcobol%{binsuffix}.1.gz
 %doc %{_mandir}/man3/gcobol%{binsuffix}.3.gz
 

++++++ newlib-gcn-libm-fix.patch ++++++
>From 2ef1a37e7823b21eda524972c006e0e8c26f97b3 Mon Sep 17 00:00:00 2001
From: Andrew Stubbs <a...@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

Reply via email to