From 5ea11700e5c25d5213d80104a402c8fd427cda76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Dumont?= <fdumont@gcc.gnu.org>
Date: Mon, 30 Oct 2023 19:35:35 +0100
Subject: libstdc++: [_GLIBCXX_INLINE_VERSION] Un-weak
 handle_contract_violation

libstdc++-v3/ChangeLog:

	* src/experimental/contract.cc
	[_GLIBCXX_INLINE_VERSION](handle_contract_violation): Rework comment.
	Remove weak attribute.
---
 libstdc++-v3/src/experimental/contract.cc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

(limited to 'libstdc++-v3/src/experimental/contract.cc')

diff --git a/libstdc++-v3/src/experimental/contract.cc b/libstdc++-v3/src/experimental/contract.cc
index d550b49..39ad4bd 100644
--- a/libstdc++-v3/src/experimental/contract.cc
+++ b/libstdc++-v3/src/experimental/contract.cc
@@ -69,8 +69,9 @@ handle_contract_violation (const std::experimental::contract_violation &violatio
 }
 
 #if _GLIBCXX_INLINE_VERSION
-// Provide symbol without version namespace decoration for gcc.
-extern "C" __attribute__ ((weak)) void
+// The compiler expects the contract_violation class to be in an unversioned
+// namespace, so provide a forwarding function with the expected symbol name.
+extern "C" void
 _Z25handle_contract_violationRKNSt12experimental18contract_violationE
 (const std::experimental::contract_violation &violation)
 { handle_contract_violation(violation); }
-- 
cgit v1.1