From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp001-out.apm-internet.net (smtp001-out.apm-internet.net [85.119.248.222]) by sourceware.org (Postfix) with ESMTPS id 191FA3858D32 for ; Mon, 9 Oct 2023 09:23:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 191FA3858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=sandoe.co.uk Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=sandoe.co.uk Received: (qmail 9624 invoked from network); 9 Oct 2023 09:23:04 -0000 X-APM-Out-ID: 16968433840960 X-APM-Authkey: 257869/1(257869/1) 4 Received: from unknown (HELO smtpclient.apple) (81.138.1.83) by smtp001.apm-internet.net with SMTP; 9 Oct 2023 09:23:04 -0000 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.4\)) Subject: Re: [PATCH][_GLIBCXX_INLINE_VERSION] Fix From: Iain Sandoe In-Reply-To: Date: Mon, 9 Oct 2023 10:23:04 +0100 Cc: Jonathan Wakely , libstdc++ , GCC Patches Content-Transfer-Encoding: quoted-printable Message-Id: References: <55f0212a-f8d3-aa9e-8788-f5165484ac6c@gmail.com> <520bd324-39e8-45e0-a367-3d1195c1807f@gmail.com> <9C6DC8AF-8F62-41F7-B3A5-A2D1B2E201FC@googlemail.com> To: =?utf-8?Q?Fran=C3=A7ois_Dumont?= X-Mailer: Apple Mail (2.3696.120.41.1.4) X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,KAM_COUK,KAM_DMARC_STATUS,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: > On 9 Oct 2023, at 06:06, Fran=C3=A7ois Dumont = wrote: >=20 > I think we can do the same without the symbol alias feature. It's even = simpler cause do not require any maintenance when version symbol bump. >=20 > Here is what I'm testing, at least exported symbol is fine. Thanks; works for me, (g++ tests with your patches + a local one to = enable versioned-namespace on Darwin). Iain >=20 > Fran=C3=A7ois >=20 >=20 > On 08/10/2023 16:06, Iain Sandoe wrote: >> Hi Fran=C3=A7ois, >>=20 >>> On 21 Sep 2023, at 05:41, Fran=C3=A7ois Dumont = wrote: >>>=20 >>> Tests were successful, ok to commit ? >>>=20 >>> On 20/09/2023 19:51, Fran=C3=A7ois Dumont wrote: >>>> libstdc++: [_GLIBCXX_INLINE_VERSION] Add handle_contract_violation = symbol alias >>>>=20 >>>> libstdc++-v3/ChangeLog: >>>>=20 >>>> * src/experimental/contract.cc >>>> [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide = symbol alias >>>> without version namespace decoration for gcc. >> This does not work in the source on targets without support for = symbol aliases (Darwin is one) >> =E2=80=9C../experimental/contract.cc:79:8: warning: alias definitions = not supported in Mach-O; ignored=E2=80=9D >>=20 >> - there might be a way to do it at link-time (for one symbol not too = bad); I will have to poke at >> it a bit. >> Iain >>=20 >>>> Here is what I'm testing eventually, ok to commit if successful ? >>>>=20 >>>> Fran=C3=A7ois >>>>=20 >>>> On 20/09/2023 11:32, Jonathan Wakely wrote: >>>>> On Wed, 20 Sept 2023 at 05:51, Fran=C3=A7ois Dumont via Libstdc++ >>>>> wrote: >>>>>> libstdc++: Remove std::constract_violation from versioned = namespace >>>>> Spelling mistake in contract_violation, and it's not >>>>> std::contract_violation, it's = std::experimental::contract_violation >>>>>=20 >>>>>> GCC expects this type to be in std namespace directly. >>>>> Again, it's in std::experimental not in std directly. >>>>>=20 >>>>> Will this change cause problems when including another = experimental >>>>> header, which does put experimental below std::__8? >>>>>=20 >>>>> I think std::__8::experimental and std::experimental will become = ambiguous. >>>>>=20 >>>>> Maybe we do want to remove the inline __8 namespace from all >>>>> experimental headers. That needs a bit more thought though. >>>>>=20 >>>>>> libstdc++-v3/ChangeLog: >>>>>>=20 >>>>>> * include/experimental/contract: >>>>>> Remove = _GLIBCXX_BEGIN_NAMESPACE_VERSION/_GLIBCXX_END_NAMESPACE_VERSION. >>>>> This line is too long for the changelog. >>>>>=20 >>>>>> It does fix 29 g++.dg/contracts in gcc testsuite. >>>>>>=20 >>>>>> Ok to commit ? >>>>>>=20 >>>>>> Fran=C3=A7ois >