public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/gcc] rhel-f41-base: 11.0.1-0.2
Date: Mon, 29 Jun 2026 12:29:12 GMT	[thread overview]
Message-ID: <178273615249.1.2581581136622505919.rpms-gcc-eb3f14c7132d@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : eb3f14c7132dcf33d1dd58e5e363f785b573ad16
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2021-03-19T18:42:46+01:00
Stats  : +178/-0 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/eb3f14c7132dcf33d1dd58e5e363f785b573ad16?branch=rhel-f41-base

Log:
11.0.1-0.2

---
diff --git a/gcc.spec b/gcc.spec
index 48d9672..3c432b2 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -271,6 +271,7 @@ Patch16: gcc11-pr99230.patch
 Patch17: gcc11-pr99490.patch
 Patch18: gcc11-pr99562.patch
 Patch19: gcc11-pr99650.patch
+Patch20: gcc11-pr99341-revert.patch
 
 Patch100: gcc11-fortran-fdec-duplicates.patch
 Patch101: gcc11-fortran-flogical-as-integer.patch
@@ -800,6 +801,7 @@ to NVidia PTX capable devices if available.
 %patch17 -p0 -b .pr99490~
 %patch18 -p0 -b .pr99562~
 %patch19 -p0 -b .pr99650~
+%patch20 -p0 -b .pr99341-revert~
 
 %if 0%{?rhel} >= 9
 %patch100 -p1 -b .fortran-fdec-duplicates~

diff --git a/gcc11-pr99341-revert.patch b/gcc11-pr99341-revert.patch
new file mode 100644
index 0000000..c7419cb
--- /dev/null
+++ b/gcc11-pr99341-revert.patch
@@ -0,0 +1,176 @@
+libstdc++: Remove symbols for new std::call_once implementation [PR 99341]
+    
+This removes the new symbols added for the new futex-based
+std::call_once implementation. These symbols were new on trunk, so not
+in any released version. However, they are already present in some
+beta distro releases (Fedora Linux 34) and in Fedora Linux rawhide. This
+change can be locally reverted by distros that need to keep the symbols
+present until affected packages have been rebuilt.
+
+Revert:
+2021-03-12  Jonathan Wakely  <jwakely@redhat.com>
+    
+	PR libstdc++/99341
+	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
+	std::once_flag symbols.
+	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
+	* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
+	* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
+	Likewise.
+	* config/abi/pre/gnu.ver: Likewise.
+	* src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
+	(struct __once_flag_compat): Remove.
+	(_ZNSt9once_flag11_M_activateEv): Remove.
+	(_ZNSt9once_flag9_M_finishEb): Remove.
+
+--- libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
++++ libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
+@@ -4086,6 +4086,8 @@ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCXX
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
++FUNC:_ZNSt9once_flag11_M_activateEv@@GLIBCXX_3.4.29
++FUNC:_ZNSt9once_flag9_M_finishEb@@GLIBCXX_3.4.29
+ FUNC:_ZNSt9strstream3strEv@@GLIBCXX_3.4
+ FUNC:_ZNSt9strstream6freezeEb@@GLIBCXX_3.4
+ FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+--- libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
++++ libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
+@@ -4086,6 +4086,8 @@ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCXX
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
++FUNC:_ZNSt9once_flag11_M_activateEv@@GLIBCXX_3.4.29
++FUNC:_ZNSt9once_flag9_M_finishEb@@GLIBCXX_3.4.29
+ FUNC:_ZNSt9strstream3strEv@@GLIBCXX_3.4
+ FUNC:_ZNSt9strstream6freezeEb@@GLIBCXX_3.4
+ FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+--- libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt
++++ libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt
+@@ -4086,6 +4086,8 @@ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
++FUNC:_ZNSt9once_flag11_M_activateEv@@GLIBCXX_3.4.29
++FUNC:_ZNSt9once_flag9_M_finishEb@@GLIBCXX_3.4.29
+ FUNC:_ZNSt9strstream3strEv@@GLIBCXX_3.4
+ FUNC:_ZNSt9strstream6freezeEb@@GLIBCXX_3.4
+ FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+--- libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt
++++ libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt
+@@ -4086,6 +4086,8 @@ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCXX
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
++FUNC:_ZNSt9once_flag11_M_activateEv@@GLIBCXX_3.4.29
++FUNC:_ZNSt9once_flag9_M_finishEb@@GLIBCXX_3.4.29
+ FUNC:_ZNSt9strstream3strEv@@GLIBCXX_3.4
+ FUNC:_ZNSt9strstream6freezeEb@@GLIBCXX_3.4
+ FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
+--- libstdc++-v3/config/abi/pre/gnu.ver
++++ libstdc++-v3/config/abi/pre/gnu.ver
+@@ -2388,6 +2388,11 @@ GLIBCXX_3.4.29 {
+     _ZNKRSt7__cxx1118basic_stringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EE3strEv;
+     _ZNSt7__cxx1118basic_stringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EE3strEONS_12basic_stringI[cw]S2_S3_EE;
+ 
++    # std::once_flag::_M_activate()
++    _ZNSt9once_flag11_M_activateEv;
++    # std::once_flag::_M_finish(bool)
++    _ZNSt9once_flag9_M_finishEb;
++
+     # std::to_chars(char*, char*, [float|double|long double])
+     _ZSt8to_charsPcS_[def];
+     # std::to_chars(char*, char*, [float|double|long double], chars_format)
+--- libstdc++-v3/src/c++11/mutex.cc
++++ libstdc++-v3/src/c++11/mutex.cc
+@@ -26,6 +26,90 @@
+ 
+ #ifdef _GLIBCXX_HAS_GTHREADS
+ 
++#if defined _GLIBCXX_SHARED && ! _GLIBCXX_INLINE_VERSION
++
++#ifdef _GLIBCXX_HAVE_LINUX_FUTEX
++# include <syscall.h>
++# include <unistd.h>
++# include <limits.h>
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++_GLIBCXX_BEGIN_NAMESPACE_VERSION
++
++struct __once_flag_compat
++{
++  enum _Bits : int { _Init = 0, _Active = 1, _Done = 2 };
++  int _M_once = 0;
++  bool _M_activate();
++  void _M_finish(bool returning) noexcept;
++};
++
++bool
++__once_flag_compat::_M_activate()
++{
++  if (__gnu_cxx::__is_single_threaded())
++    {
++      if (_M_once == _Bits::_Done)
++	return false;
++      _M_once = _Bits::_Active;
++      return true;
++    }
++
++  while (true)
++    {
++      int expected = _Bits::_Init;
++      constexpr int active = _Bits::_Active;
++      if (__atomic_compare_exchange_n(&_M_once, &expected, active, false,
++					    __ATOMIC_ACQ_REL,
++					    __ATOMIC_ACQUIRE))
++	{
++	  // This thread is now doing an active execution.
++	  return true;
++	}
++
++      if (expected == _Bits::_Done)
++	return false; // A returning execution happened, this is passive.
++
++      // Otherwise, an active execution is happening. Wait for it to finish.
++      constexpr int futex_wait = 128; // FUTEX_WAIT_PRIVATE
++      syscall (SYS_futex, &_M_once, futex_wait, expected, 0);
++    }
++}
++
++void
++std::__once_flag_compat::_M_finish(bool returning) noexcept
++{
++  const int newval = returning ? _Bits::_Done : _Bits::_Init;
++  if (__gnu_cxx::__is_single_threaded())
++    {
++      __glibcxx_assert(_M_once == _Bits::_Active);
++      _M_once = newval;
++    }
++  else
++    {
++      int prev [[maybe_unused]]
++	= __atomic_exchange_n(&_M_once, newval, __ATOMIC_RELEASE);
++      __glibcxx_assert(prev & _Bits::_Active);
++      // Wake any other threads waiting for this execution to finish.
++      constexpr int futex_wake = 129; // FUTEX_WAKE_PRIVATE
++      syscall (SYS_futex, &_M_once, futex_wake, INT_MAX);
++    }
++}
++
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wattribute-alias"
++extern "C" bool _ZNSt9once_flag11_M_activateEv()
++  __attribute__((alias ("_ZNSt18__once_flag_compat11_M_activateEv")));
++extern "C" void _ZNSt9once_flag9_M_finishEb() noexcept
++  __attribute__((alias ("_ZNSt18__once_flag_compat9_M_finishEb")));
++#pragma GCC diagnostic pop
++
++_GLIBCXX_END_NAMESPACE_VERSION
++} // namespace std
++#endif // FUTEX
++#endif // ONCE_FLAG_COMPAT && SHARED && ! INLINE_VERSION
++
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION

             reply	other threads:[~2026-06-29 12:29 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-29 12:29 Jakub Jelinek [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-06-29 12:29 [rpms/gcc] rhel-f41-base: 11.0.1-0.2 Jakub Jelinek
2026-06-29 12:29 Jakub Jelinek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178273615249.1.2581581136622505919.rpms-gcc-eb3f14c7132d@fedoraproject.org \
    --to=jakub@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox