This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/71767] Endless stream of warnings when using GCC with -Wa,-q and Clang Integrated Assembler


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).

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]