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.