This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/71767] Endless stream of warnings when using GCC with -Wa,-q and Clang Integrated Assembler
- From: "iains at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 18 Sep 2016 18:56:10 +0000
- Subject: [Bug target/71767] Endless stream of warnings when using GCC with -Wa,-q and Clang Integrated Assembler
- Auto-submitted: auto-generated
- References: <bug-71767-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71767
--- 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
ld64.
... 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.
... TODO
3. The fallout that Dominique sees with his patch is caused by two latent
issues:
.data
weak symbol
...
L_xxxxxxx$non_lazy_ptr
.yyyyy _symbol
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
libstdc++ fallout)
... but there's a similar problem with weak constants followed by non-weak ones
(which are local and legitimately directly referenced in the tu).
... TODO.
I'll attach a WIP in patch here, when 1 && 3 are solved (it's testable without
2).