--- Comment #18 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Iain Sandoe from comment #17)
oops hit send at the wrong moment:
> So.. we need a patch that implements what Dominique was trying (but in a way
> that doesn't involve discarding the original section defs. since they are
> needed for "older linker" - for some def. of "older").
1. a patch that changes the section usage depending on the capability of
... I have a patch under test for this.
2. configury to detect if we have a ld64 that doesn't cope (and we need to
find one that doesn't to test that). My initial tests suggest that even
85.2.1 can do the week symbol coalescing without the sections, so we might
have to poke at a 10.4 system to find this.
3. The fallout that Dominique sees with his patch is caused by two latent
now - ld64 can't split L_xxxxxxx$non_lazy_ptr from the weak symbol (since it's
L_xxx) and it means that the atom containing the indirection is now marked weak
- and we are accessing it directly. This is what ld64's warming is about.
.... I have a patch that sorts this one out (and squashes most of the
... but there's a similar problem with weak constants followed by non-weak ones
(which are local and legitimately directly referenced in the tu).
I'll attach a WIP in patch here, when 1 && 3 are solved (it's testable without