Resolves: RHEL-169581
This commit is contained in:
Marek Polacek 2026-07-06 15:40:48 -04:00
parent 7ff936cf55
commit 6994e6cffa
2 changed files with 45 additions and 164 deletions

View File

@ -15,13 +15,13 @@ BuildRequires: gcc-toolset-%{gts_ver}-devel
%{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
%{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
%{?scl:%scl_package gcc}
%global DATE 20260515
%global gitrev d776f42bb910ebccf652b010b80c22bcca736f7f
%global DATE 20260703
%global gitrev aac23a76ffc9b3a5bd8fcf07ead7c5249f91c457
%global gcc_version 16.1.1
%global gcc_major 16
# Note, gcc_release must be integer, if you want to add suffixes to
# %%{release}, append them after %%{gcc_release} on Release: line.
%global gcc_release 3
%global gcc_release 4
%global nvptx_tools_gitrev 212da2e781ed0f9423824e85eb04819958513f7a
%global newlib_cygwin_gitrev d35cc82b5ec15bb8a5fe0fe11e183d1887992e99
%global isl_version 0.24
@ -260,12 +260,10 @@ BuildRequires: libzstd-devel
BuildRequires: glibc >= 2.3.90-35
%endif
%ifarch %{multilib_64_archs}
# Ensure glibc{,-devel} is installed for both multilib arches
%if 0%{?rhel} < 10
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
%else
BuildRequires: /usr/lib/libc.so /usr/lib64/libc.so
BuildRequires: (glibc32 or glibc-devel(%{__isa_name}-32))
%endif
%ifarch sparcv9 ppc
BuildRequires: (glibc64 or glibc-devel(%{__isa_name}-64))
%endif
%ifarch ia64
BuildRequires: libunwind >= 0.98
@ -369,7 +367,6 @@ Patch9: gcc16-Wno-format-security.patch
Patch10: gcc16-rh1574936.patch
Patch11: gcc16-d-shared-libphobos.patch
Patch12: gcc16-pr119006.patch
Patch13: gcc16-pr125312.patch
Patch50: isl-rh2155127.patch
@ -733,7 +730,6 @@ so that there cannot be any synchronization problems.
%patch -P10 -p0 -b .rh1574936~
%patch -P11 -p0 -b .d-shared-libphobos~
%patch -P12 -p0 -b .pr119006~
%patch -P13 -p1 -b .pr125312~
%patch -P100 -p1 -b .fortran-fdec-duplicates~
@ -816,8 +812,8 @@ rm -f gcc/testsuite/go.test/test/chan/goroutines.go
# These tests get stuck and don't timeout.
%ifarch ppc ppc64 ppc64le s390x
rm -f libgomp/testsuite/libgomp.c/target-*.c
rm -rf libgomp/testsuite/libgomp.oacc*
#rm -f libgomp/testsuite/libgomp.c/target-*.c
#rm -rf libgomp/testsuite/libgomp.oacc*
rm -rf libgomp/testsuite/libgomp.graphite*
# This uses a removed file (#2093997).
rm -rf libgomp/testsuite/libgomp.fortran/pr90030.f90
@ -2932,6 +2928,43 @@ fi
%endif
%changelog
* Mon Jul 6 2026 Marek Polacek <polacek@redhat.com> 16.1.1-4
- update from releases/gcc-16 branch
- PRs ada/18205, ada/125695, c/124303, c/124532, c/124985, c/125252,
c++/65271, c++/113563, c++/115314, c++/117259, c++/121094, c++/123536,
c++/124584, c++/124978, c++/125007, c++/125123, c++/125135,
c++/125284, c++/125333, c++/125334, c++/125376, c++/125378,
c++/125384, c++/125408, c++/125412, c++/125423, c++/125454,
c++/125490, c++/125498, c++/125745, c++/125759, c++/125764,
c++/125768, c++/125770, c++/125889, c++/125900, c++/125939,
fortran/60576, fortran/105582, fortran/106546, fortran/115260,
fortran/125021, fortran/125051, fortran/125391, fortran/125393,
fortran/125416, fortran/125430, fortran/125481, fortran/125527,
fortran/125528, fortran/125529, fortran/125530, fortran/125531,
fortran/125534, fortran/125535, fortran/125606, fortran/125650,
fortran/125669, fortran/125902, fortran/126018, ipa/125699,
libstdc++/71301, libstdc++/78302, libstdc++/118158, libstdc++/125228,
libstdc++/125312, libstdc++/125369, libstdc++/125374,
libstdc++/125450, libstdc++/125890, libstdc++/125956,
middle-end/125156, middle-end/125621, middle-end/125977, other/125348,
rtl-optimization/125173, rtl-optimization/125375, target/106895,
target/120144, target/120870, target/122665, target/122827,
target/124870, target/124895, target/124908, target/125148,
target/125215, target/125320, target/125351, target/125355,
target/125362, target/125373, target/125409, target/125448,
target/125469, target/125478, target/125611, target/125628,
target/125670, target/125751, target/125752, target/125795,
target/125818, target/125838, target/125883, target/125949,
target/125972, target/125992, tree-optimization/124151,
tree-optimization/125250, tree-optimization/125291,
tree-optimization/125419, tree-optimization/125431,
tree-optimization/125477, tree-optimization/125501,
tree-optimization/125502, tree-optimization/125545,
tree-optimization/125553, tree-optimization/125646,
tree-optimization/125652, tree-optimization/125686,
tree-optimization/125774, tree-optimization/125776
- don't remove openacc tests for s390x and ppc64le (RHEL-181820)
* Wed Jun 17 2026 Marek Polacek <polacek@redhat.com> 16.1.1-3
- new package (RHEL-169581)

View File

@ -1,152 +0,0 @@
commit 0fba51e8f39b245a3c0c2b75dad2619ed749f320
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Fri May 15 10:41:33 2026 +0100
libstdc++: Make configure check for atomics work on Windows [PR125312]
The changes in r16-427-g86627faec10da5 do not work for native mingw-w64
builds because the #include with a hardcoded unix-style path doesn't
work for a native mingw-w64 compiler. This results in configure
detecting that native mingw builds do not support atomic builtins for
the _Atomic_word type, causing non-inline atomics to be used for
__gnu_cxx::__exchange_and_add and __gnu_cxx::__atomic_add, which is an
unintented ABI change (and inconsistent with mingw cross-compilers where
the configure test passes and so enables the inline functions using
atomic builtins).
This attempts to solve the problem by copying the atomic_word.h header
to the current working directory, so it can be included without using an
absolute path.
libstdc++-v3/ChangeLog:
PR libstdc++/125312
* acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Copy header
into cwd instead of including it via an absolute path.
* configure: Regenerate.
(cherry picked from commit 1b191d0a23f3b82f6543913f8c3c2e46942af859)
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 8dc9e17b214..e6e4f7b394a 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -3755,6 +3755,15 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [
esac
fi
+ # The $glibcxx_builddir/include/$target/bits/atomic_word.h header is created
+ # by include/Makefile so isn't available during configure. Copy it from the
+ # source dir to $PWD so that we don't include it using an absolute path,
+ # which does not work for win32 native builds (PR libstdc++/125312).
+ if ! $LN_S "${glibcxx_srcdir}/config/${atomic_word_dir}/atomic_word.h" ./
+ then
+ AC_MSG_ERROR([cannot create ./atomic_word.h])
+ fi
+
if test "$atomic_builtins_link_tests" = yes; then
# Do link tests.
@@ -3763,7 +3772,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [
AC_CACHE_CHECK([for atomic builtins for _Atomic_word],
glibcxx_cv_atomic_word,
- [AC_TRY_LINK([#include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"],
+ [AC_TRY_LINK([#include "atomic_word.h"],
[_Atomic_word a = 0, b;
b = __atomic_fetch_add(&a, 1, __ATOMIC_ACQ_REL);],
[glibcxx_cv_atomic_word=yes],
@@ -3779,7 +3788,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [
cat > conftest.$ac_ext << EOF
[#]line __oline__ "configure"
-[#]include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"
+[#]include "atomic_word.h"
int main()
{
_Atomic_word a = 0, b;
@@ -3799,6 +3808,8 @@ EOF
rm -f conftest*
fi
+ rm -f ./atomic_word.h
+
CXXFLAGS="$old_CXXFLAGS"
AC_LANG_RESTORE
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 6713e4504b1..359545c4bce 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -16422,6 +16422,15 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
esac
fi
+ # The $glibcxx_builddir/include/$target/bits/atomic_word.h header is created
+ # by include/Makefile so isn't available during configure. Copy it from the
+ # source dir to $PWD so that we don't include it using an absolute path,
+ # which does not work for win32 native builds (PR libstdc++/125312).
+ if ! $LN_S "${glibcxx_srcdir}/config/${atomic_word_dir}/atomic_word.h" ./
+ then
+ as_fn_error $? "cannot create ./atomic_word.h" "$LINENO" 5
+ fi
+
if test "$atomic_builtins_link_tests" = yes; then
# Do link tests.
@@ -16438,7 +16447,7 @@ else
fi
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"
+#include "atomic_word.h"
int
main ()
{
@@ -16468,8 +16477,8 @@ $as_echo "$glibcxx_cv_atomic_word" >&6; }
# Fake what AC_TRY_COMPILE does.
cat > conftest.$ac_ext << EOF
-#line 16471 "configure"
-#include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"
+#line 16480 "configure"
+#include "atomic_word.h"
int main()
{
_Atomic_word a = 0, b;
@@ -16495,6 +16504,8 @@ $as_echo "$glibcxx_cv_atomic_word" >&6; }
rm -f conftest*
fi
+ rm -f ./atomic_word.h
+
CXXFLAGS="$old_CXXFLAGS"
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -16614,7 +16625,7 @@ $as_echo "mutex" >&6; }
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 16617 "configure"
+#line 16628 "configure"
int main()
{
_Decimal32 d1;
@@ -16656,7 +16667,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 16659 "configure"
+#line 16670 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -54145,7 +54156,7 @@ $as_echo "$glibcxx_cv_libbacktrace_atomics" >&6; }
CXXFLAGS='-O0 -S'
cat > conftest.$ac_ext << EOF
-#line 54148 "configure"
+#line 54159 "configure"
#include <stddef.h>
int main()
{