public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Fix gnu versioned namespace mode 00/03
@ 2024-05-04 21:11 François Dumont
  2024-05-07 16:15 ` Iain Sandoe
  0 siblings, 1 reply; 6+ messages in thread
From: François Dumont @ 2024-05-04 21:11 UTC (permalink / raw)
  To: libstdc++; +Cc: gcc-patches

Here is the list of patches to restore gnu versioned namespace mode.

1/3: Bump gnu version namespace

This is important to be done first so that once build of gnu versioned 
namespace is fixed there is no chance to have another build of '__8' 
version with a different abi than last successful '__8' build.

2/3: Fix build using cxx11 abi for versioned namespace

3/3: Proposal to default to "new" abi when dual abi is disabled and 
accept any default-libstdcxx-abi either dual abi is enabled or not.

All testsuite run for following configs:

- dual abi

- gcc4-compatible only abi

- new only abi

- versioned namespace abi

François



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Fix gnu versioned namespace mode 00/03
  2024-05-04 21:11 Fix gnu versioned namespace mode 00/03 François Dumont
@ 2024-05-07 16:15 ` Iain Sandoe
  2024-05-13  5:06   ` François Dumont
  0 siblings, 1 reply; 6+ messages in thread
From: Iain Sandoe @ 2024-05-07 16:15 UTC (permalink / raw)
  To: François Dumont; +Cc: libstdc++, GCC Patches

Hi François

> On 4 May 2024, at 22:11, François Dumont <frs.dumont@gmail.com> wrote:
> 
> Here is the list of patches to restore gnu versioned namespace mode.
> 
> 1/3: Bump gnu version namespace
> 
> This is important to be done first so that once build of gnu versioned namespace is fixed there is no chance to have another build of '__8' version with a different abi than last successful '__8' build.
> 
> 2/3: Fix build using cxx11 abi for versioned namespace
> 
> 3/3: Proposal to default to "new" abi when dual abi is disabled and accept any default-libstdcxx-abi either dual abi is enabled or not.
> 
> All testsuite run for following configs:
> 
> - dual abi
> 
> - gcc4-compatible only abi
> 
> - new only abi
> 
> - versioned namespace abi

At the risk of delaying this (a bit) - I think we should also consider items like once_call that have broken impls. in the current library - and at least get proposed replacements available behind the versioned namespace; rather than using up a namespace version with the current broken code.

I have a proposed once_call replacement (but I think Jonathan also has one or more alternatives there)

Please can we try to identify any other similar blocked fixes?

Iain


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Fix gnu versioned namespace mode 00/03
  2024-05-07 16:15 ` Iain Sandoe
@ 2024-05-13  5:06   ` François Dumont
  2024-05-13  6:29     ` Iain Sandoe
  0 siblings, 1 reply; 6+ messages in thread
From: François Dumont @ 2024-05-13  5:06 UTC (permalink / raw)
  To: Iain Sandoe; +Cc: libstdc++, GCC Patches


On 07/05/2024 18:15, Iain Sandoe wrote:
> Hi François
>
>> On 4 May 2024, at 22:11, François Dumont <frs.dumont@gmail.com> wrote:
>>
>> Here is the list of patches to restore gnu versioned namespace mode.
>>
>> 1/3: Bump gnu version namespace
>>
>> This is important to be done first so that once build of gnu versioned namespace is fixed there is no chance to have another build of '__8' version with a different abi than last successful '__8' build.
>>
>> 2/3: Fix build using cxx11 abi for versioned namespace
>>
>> 3/3: Proposal to default to "new" abi when dual abi is disabled and accept any default-libstdcxx-abi either dual abi is enabled or not.
>>
>> All testsuite run for following configs:
>>
>> - dual abi
>>
>> - gcc4-compatible only abi
>>
>> - new only abi
>>
>> - versioned namespace abi
> At the risk of delaying this (a bit) - I think we should also consider items like once_call that have broken impls.
Do you have any pointer to this once_call problem, sorry I'm not aware 
about it (apart from your messages).
>   in the current library - and at least get proposed replacements available behind the versioned namespace; rather than using up a namespace version with the current broken code.

I'm not proposing to fix all library bugs on all platforms with this 
patch, just fix the versioned namespace mode.

As to do so I also need to adopt cxx11 abi in versioned mode it already 
justify a bump of version.

>
> I have a proposed once_call replacement (but I think Jonathan also has one or more alternatives there)
>
> Please can we try to identify any other similar blocked fixes?

How ? We can only count on bugzilla bug reports to do so, no ?

If we face another similar problem in the future, after gcc 15 release, 
then we'll just have to bump again. Is it such a problem ?

The reason I'm proposing to integrate this patch this early in gcc 15 
stage is to have time to integrate any other library fix/optimization 
that could make use of it. I already have 1 on my side for the hashtable 
implementation. I hope your once_call fix also have time to be ready for 
gcc 15, no ?

François


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Fix gnu versioned namespace mode 00/03
  2024-05-13  5:06   ` François Dumont
@ 2024-05-13  6:29     ` Iain Sandoe
  2024-05-13  8:34       ` Jonathan Wakely
  0 siblings, 1 reply; 6+ messages in thread
From: Iain Sandoe @ 2024-05-13  6:29 UTC (permalink / raw)
  To: François Dumont; +Cc: libstdc++, GCC Patches



> On 13 May 2024, at 06:06, François Dumont <frs.dumont@gmail.com> wrote:
> 
> 
> On 07/05/2024 18:15, Iain Sandoe wrote:
>> Hi François
>> 
>>> On 4 May 2024, at 22:11, François Dumont <frs.dumont@gmail.com> wrote:
>>> 
>>> Here is the list of patches to restore gnu versioned namespace mode.
>>> 
>>> 1/3: Bump gnu version namespace
>>> 
>>> This is important to be done first so that once build of gnu versioned namespace is fixed there is no chance to have another build of '__8' version with a different abi than last successful '__8' build.
>>> 
>>> 2/3: Fix build using cxx11 abi for versioned namespace
>>> 
>>> 3/3: Proposal to default to "new" abi when dual abi is disabled and accept any default-libstdcxx-abi either dual abi is enabled or not.
>>> 
>>> All testsuite run for following configs:
>>> 
>>> - dual abi
>>> 
>>> - gcc4-compatible only abi
>>> 
>>> - new only abi
>>> 
>>> - versioned namespace abi
>> At the risk of delaying this (a bit) - I think we should also consider items like once_call that have broken impls.
> Do you have any pointer to this once_call problem, sorry I'm not aware about it (apart from your messages).

(although this mentions one specific target, it applies more widely).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146

Also, AFAICT, any nested once_call is a problem (not just exceptions).

>>  in the current library - and at least get proposed replacements available behind the versioned namespace; rather than using up a namespace version with the current broken code.
> 
> I'm not proposing to fix all library bugs on all platforms with this patch, just fix the versioned namespace mode.

Sorry, I was not intending to suggest that (although perhaps my comments read that way).

I was trying to suggest that, in the case where we have proposed fixes that are blocked because they are ABI breaks, that those could be put behind the versioned namspace (it was not an intention to suggest that such additions should be part of this patch series).

> As to do so I also need to adopt cxx11 abi in versioned mode it already justify a bump of version.

I see - it’s just a bit strange that we are bumping a version for a mode that does not currently work;  however, i guess someone might have deployed it even so.
> 
> The reason I'm proposing to integrate this patch this early in gcc 15 stage is to have time to integrate any other library fix/optimization that could make use of it. I already have 1 on my side for the hashtable implementation

Ah, then I think we are aiming for the same thing.

> . I hope your once_call fix also have time to be ready for gcc 15, no ?

Yes; if we put it behind the versioned namespace - there are (I think) several proposed solutions to that specific issue.

thanks
Iain

> 
> François


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Fix gnu versioned namespace mode 00/03
  2024-05-13  6:29     ` Iain Sandoe
@ 2024-05-13  8:34       ` Jonathan Wakely
  2024-05-15 17:37         ` François Dumont
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Wakely @ 2024-05-13  8:34 UTC (permalink / raw)
  To: Iain Sandoe; +Cc: François Dumont, libstdc++, GCC Patches

[-- Attachment #1: Type: text/plain, Size: 3944 bytes --]

On Mon, 13 May 2024, 07:30 Iain Sandoe, <idsandoe@googlemail.com> wrote:

>
>
> > On 13 May 2024, at 06:06, François Dumont <frs.dumont@gmail.com> wrote:
> >
> >
> > On 07/05/2024 18:15, Iain Sandoe wrote:
> >> Hi François
> >>
> >>> On 4 May 2024, at 22:11, François Dumont <frs.dumont@gmail.com> wrote:
> >>>
> >>> Here is the list of patches to restore gnu versioned namespace mode.
> >>>
> >>> 1/3: Bump gnu version namespace
> >>>
> >>> This is important to be done first so that once build of gnu versioned
> namespace is fixed there is no chance to have another build of '__8'
> version with a different abi than last successful '__8' build.
>


The versioned namespace build is not expected to be ABI compatible though,
so nobody should be expecting compatibility with previous builds.
Especially not on the gcc-15 trunk, a week or two after entering stage 1!


> >>>
> >>> 2/3: Fix build using cxx11 abi for versioned namespace
> >>>
> >>> 3/3: Proposal to default to "new" abi when dual abi is disabled and
> accept any default-libstdcxx-abi either dual abi is enabled or not.
> >>>
> >>> All testsuite run for following configs:
> >>>
> >>> - dual abi
> >>>
> >>> - gcc4-compatible only abi
> >>>
> >>> - new only abi
> >>>
> >>> - versioned namespace abi
> >> At the risk of delaying this (a bit) - I think we should also consider
> items like once_call that have broken impls.
> > Do you have any pointer to this once_call problem, sorry I'm not aware
> about it (apart from your messages).
>
> (although this mentions one specific target, it applies more widely).
>

I've removed the "on ppc64le" part from the summary.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146
>
> Also, AFAICT, any nested once_call is a problem (not just exceptions).
>

Could you update the bug with that info please?


> >>  in the current library - and at least get proposed replacements
> available behind the versioned namespace; rather than using up a namespace
> version with the current broken code.
> >
> > I'm not proposing to fix all library bugs on all platforms with this
> patch, just fix the versioned namespace mode.
>
> Sorry, I was not intending to suggest that (although perhaps my comments
> read that way).
>
> I was trying to suggest that, in the case where we have proposed fixes
> that are blocked because they are ABI breaks, that those could be put
> behind the versioned namspace (it was not an intention to suggest that such
> additions should be part of this patch series).
>
> > As to do so I also need to adopt cxx11 abi in versioned mode it already
> justify a bump of version.
>
> I see - it’s just a bit strange that we are bumping a version for a mode
> that does not currently work;  however, i guess someone might have deployed
> it even so.
>

It does work though, doesn't it?
It's known to fail on powerpc64 due to conflicts with the ieee128 stuff,
but it should work elsewhere.
It doesn't work with --with-default-libstdcxx-abi=cxx11 but that's just a
"this doesn't work and isn't supported" limitation.

The point of the patch series is to change it so the versioned namespace
always uses the cxx11 ABI, which does seem worth bumping the version (even
though the versioned namespace is explicitly not a stable ABI and not
backwards compatible).


>
> > The reason I'm proposing to integrate this patch this early in gcc 15
> stage is to have time to integrate any other library fix/optimization that
> could make use of it. I already have 1 on my side for the hashtable
> implementation
>
> Ah, then I think we are aiming for the same thing.
>
> > . I hope your once_call fix also have time to be ready for gcc 15, no ?
>
> Yes; if we put it behind the versioned namespace - there are (I think)
> several proposed solutions to that specific issue.
>
> thanks
> Iain
>
> >
> > François
>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Fix gnu versioned namespace mode 00/03
  2024-05-13  8:34       ` Jonathan Wakely
@ 2024-05-15 17:37         ` François Dumont
  0 siblings, 0 replies; 6+ messages in thread
From: François Dumont @ 2024-05-15 17:37 UTC (permalink / raw)
  To: Jonathan Wakely, Iain Sandoe; +Cc: libstdc++, GCC Patches

[-- Attachment #1: Type: text/plain, Size: 3930 bytes --]


On 13/05/2024 10:34, Jonathan Wakely wrote:
>
>
> On Mon, 13 May 2024, 07:30 Iain Sandoe, <idsandoe@googlemail.com> wrote:
>
>
>
>     > On 13 May 2024, at 06:06, François Dumont <frs.dumont@gmail.com>
>     wrote:
>     >
>     >
>     > On 07/05/2024 18:15, Iain Sandoe wrote:
>     >> Hi François
>     >>
>     >>> On 4 May 2024, at 22:11, François Dumont
>     <frs.dumont@gmail.com> wrote:
>     >>>
>     >>> Here is the list of patches to restore gnu versioned namespace
>     mode.
>     >>>
>     >>> 1/3: Bump gnu version namespace
>     >>>
>     >>> This is important to be done first so that once build of gnu
>     versioned namespace is fixed there is no chance to have another
>     build of '__8' version with a different abi than last successful
>     '__8' build.
>
>
>
> The versioned namespace build is not expected to be ABI compatible 
> though, so nobody should be expecting compatibility with previous 
> builds. Especially not on the gcc-15 trunk, a week or two after 
> entering stage 1!

Ok, I really thought that we needed to preserve ABI for a given version, 
'__8' at the moment.


>     >>>
>     >>> 2/3: Fix build using cxx11 abi for versioned namespace
>     >>>
>     >>> 3/3: Proposal to default to "new" abi when dual abi is
>     disabled and accept any default-libstdcxx-abi either dual abi is
>     enabled or not.
>     >>>
>     >>> All testsuite run for following configs:
>     >>>
>     >>> - dual abi
>     >>>
>     >>> - gcc4-compatible only abi
>     >>>
>     >>> - new only abi
>     >>>
>     >>> - versioned namespace abi
>     >> At the risk of delaying this (a bit) - I think we should also
>     consider items like once_call that have broken impls.
>     > Do you have any pointer to this once_call problem, sorry I'm not
>     aware about it (apart from your messages).
>
>     (although this mentions one specific target, it applies more widely).
>
>
> I've removed the "on ppc64le" part from the summary.
>
>     https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146
>
Thanks for the ref, I'll have a look but I fear that I won't be of any 
help here.


>
>     Also, AFAICT, any nested once_call is a problem (not just exceptions).
>
>
> Could you update the bug with that info please?
>
>
>     >>  in the current library - and at least get proposed
>     replacements available behind the versioned namespace; rather than
>     using up a namespace version with the current broken code.
>     >
>     > I'm not proposing to fix all library bugs on all platforms with
>     this patch, just fix the versioned namespace mode.
>
>     Sorry, I was not intending to suggest that (although perhaps my
>     comments read that way).
>
>     I was trying to suggest that, in the case where we have proposed
>     fixes that are blocked because they are ABI breaks, that those
>     could be put behind the versioned namspace (it was not an
>     intention to suggest that such additions should be part of this
>     patch series).
>
>     > As to do so I also need to adopt cxx11 abi in versioned mode it
>     already justify a bump of version.
>
>     I see - it’s just a bit strange that we are bumping a version for
>     a mode that does not currently work; however, i guess someone
>     might have deployed it even so.
>
>
> It does work though, doesn't it?
> It's known to fail on powerpc64 due to conflicts with the ieee128 
> stuff, but it should work elsewhere.
> It doesn't work with --with-default-libstdcxx-abi=cxx11 but that's 
> just a "this doesn't work and isn't supported" limitation.
>
> The point of the patch series is to change it so the versioned 
> namespace always uses the cxx11 ABI, which does seem worth bumping the 
> version (even though the versioned namespace is explicitly not a 
> stable ABI and not backwards compatible).

So I just need to wait for proper review, right ?

This is what I plan to do on this subject for the moment.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-05-15 17:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-04 21:11 Fix gnu versioned namespace mode 00/03 François Dumont
2024-05-07 16:15 ` Iain Sandoe
2024-05-13  5:06   ` François Dumont
2024-05-13  6:29     ` Iain Sandoe
2024-05-13  8:34       ` Jonathan Wakely
2024-05-15 17:37         ` François Dumont

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).