On Wed, May 27, 2026 at 8:39 AM Andrew Pinski <[email protected]> wrote: > > On Tue, May 26, 2026 at 3:56 PM H.J. Lu <[email protected]> wrote: > > > > On Wed, May 27, 2026 at 6:41 AM Iain Sandoe <[email protected]> wrote: > > > > > > > > > > > > > On 26 May 2026, at 22:35, H.J. Lu <[email protected]> wrote: > > > > > > > > On Tue, May 26, 2026 at 11:19 PM Iain Sandoe <[email protected]> > > > > wrote: > > > >> > > > >> HJ, > > > >> > > > >> Bootstrap on 32b Darwin (and 64b Darwin with 32b multilib) is still > > > >> broken after > > > >> more than three weeks, > > > >> > > > >> It is reasonable to have a temporary break if there is a trivial typo > > > >> or other fix > > > >> that can be applied in a timely manner. > > > >> > > > >> However, in this case, it seems your initial design needed some > > > >> amendment, > > > >> and that means a more complex fix is needed - which needs additional > > > >> review. > > > >> > > > >> Today I now faced two concurrent bootstrap breaks on some platform > > > >> versions > > > >> - this is just consuming time in a non-constructive manner. > > > > > > > > It only shows that maintainers pay no attention to Darwin. In the > > > > meantime, > > > > you can submit a very simple libssp patch to fix Darwin build by > > > > changing > > > > __stack_chk_guard to unsigned long for Darwin. > > > > > > I find this unbelievable, and cannot think of any other maintainer who > > > would > > > leave a regulalry-tested platform broken for weeks, and then try pass the > > > blame > > > to reviewers for not being quick enough review band aid upon band aid. > > > > > > The responsibility for producing good reviewed patches lies with you - not > > > with other maintainers for platforms you break with bad patches, and not > > > with > > > reviewers who might have more pressing things to address. > > > > I submitted a fix and suggested one line change to address Darwin build. > > You choose to ignore my suggestion. > > > > > I would be very disappointed if this is what is considered to be “good > > > community” behaviour. > > > > > > Iain > > > ** even with all your patches applied the testcases need work - it is not > > > at all > > > helpful that you leave it to others to finish off your incomplete work. > > > > > > > I submitted patches to address regressions. Some newly added tests failed > > due to the existing libssp implementation bug. You can xfail them if ssp > > isn't > > provided in libc. > > So I am going to step into this mess and explain how this mess came > about in the first place. > > Here is the situation and the problem is stack_protect_guard looks > like a mess to begin with. > GCC documented it this way: `The type of this variable must be > @code{ptr_type_node}.` > So libssp followed this. BUT glibc, and many other libc's didn't > follow this document part. glibc (and many other libcs and linux > kernel even) used `uintptr_t`. And GCC didn't check the type > beforehand. > > And then HJL changed it to be a type which is the same size and > signedness as `uintptr_t` BUT not exactly the same (on some targets) > and also checking the type at this stage. > HJL didn't update libssp originally. So that broke some x86 targets > including darwin. And then when he changed libssp it still was broken > for i?86-darwin (32bit) because in that case the difference between > `unsigned long` and `unsigned int` which are not compatible at all. > (note systemd also needed a change too). > > So we are now in limbo right now where i?86-darwin is broken (and > x86_64-darwin because of multilib). > > I think we should revert the original patch which checked the type and > all other band-aids. And start over with a different fix for the > original issue here. > > Note our current policy: https://gcc.gnu.org/develop.html#reversion > seems not to take into account this kind of situation. Because even > though there is a "fix", we don't know how many other sources will be > broken or other libc will have to change due to this change. And the > patch to "fix" the issue seems like it is not being reviewed either. I > can't speak for others but I am not comfortable reviewing it. > > Plus what was documented on the type before is now different from what > is being checked. Even though it does not seem like it will cause an > ABI incompatibility; it could still end up being an ABI issue. >
libssp is also broken if ssp isn't in libc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125205 My patch just exposed it. Should ssp be disabled if TARGET_LIBC_PROVIDES_SSP isn't defined? -- H.J.
