https://sourceware.org/bugzilla/show_bug.cgi?id=31067

Nick Clifton <nickc at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Nick Clifton <nickc at redhat dot com> ---
I could not find a simple way to postpone issuing the warning message until
after garbage collection.  So instead I have applied a patch that does two
things:

Firstly it adds an extra line after the warning message is displayed (if
garbage collection has been enabled).  So for example the bug demonstrator
attached to this PR now produces this output:

  ld: test.o: in function `f':
  test.c:(.text.unused+0xa): warning: This shouldn't be emitted with
--gc-sections
  ld: test.o: note: the message above does not take linker garbage collection
into account

Secondly I have created a new section in the linker manual to document the
behaviour of the .gnu.warning and .gnu.warning.SYM sections:

When linking ELF format object files 'ld' treats some sections in a
special, non standard manner.  This part of the manual describes these
sections.

  '.gnu.warning'
     The contents of any section with this name are assumed to be an
     ascii format warning message.  The contents will be displayed to
     the user if the sections appears in any input file, but the section
     will not be copied into the output image.  If the
     '--fatal-warnings' option is enabled then the warnings - if any are
     encountered - will also stop the link from completing.

     Note - the '.gnu.warning' section is not subject to linker garbage
     collection or orphan handling.

  '.gnu.warning.SYM'
     The contents of any section whoes name starts with the prefix
     '.gnu.warning.' and then finishes with the name of a symbol is
     treated in a similar fashion to the '.gnu.warning' section, but
     only if the named symbol is defined.  So for example the contents
     of a section called '.gnu.warning.foo' will be displayed as warning
     message if, and only if, the symbol 'foo' is defined by one or more
     of the input files.  This includes object files pulled in from
     static libraries, shared objects needed to complete the link and so
     on.

     Note - because these warning messages are generated before the
     linker performs garbage collection (if enabled) it is possible for
     a warning to be displayed for a symbol that is later removed and
     then never appears in the final output.

I am setting the status to RESOLVED/FIXED even though that is not really
accurate.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to