[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/31067] symbols eliminated by --gc-sections still trigger warning
From: |
nickc at redhat dot com |
Subject: |
[Bug ld/31067] symbols eliminated by --gc-sections still trigger warnings for gnu.warning.SYM |
Date: |
Tue, 21 Nov 2023 09:33:42 +0000 |
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.
- [Bug ld/31067] New: symbols eliminated by --gc-sections still trigger warnings for gnu.warning.SYM, rearnsha at sourceware dot org, 2023/11/14
- [Bug ld/31067] symbols eliminated by --gc-sections still trigger warnings for gnu.warning.SYM, sam at gentoo dot org, 2023/11/15
- [Bug ld/31067] symbols eliminated by --gc-sections still trigger warnings for gnu.warning.SYM, nickc at redhat dot com, 2023/11/20
- [Bug ld/31067] symbols eliminated by --gc-sections still trigger warnings for gnu.warning.SYM, cvs-commit at gcc dot gnu.org, 2023/11/21
- [Bug ld/31067] symbols eliminated by --gc-sections still trigger warnings for gnu.warning.SYM,
nickc at redhat dot com <=
- [Bug ld/31067] symbols eliminated by --gc-sections still trigger warnings for gnu.warning.SYM, rearnsha at sourceware dot org, 2023/11/21
- [Bug ld/31067] symbols eliminated by --gc-sections still trigger warnings for gnu.warning.SYM, cvs-commit at gcc dot gnu.org, 2023/11/21
- [Bug ld/31067] symbols eliminated by --gc-sections still trigger warnings for gnu.warning.SYM, nickc at redhat dot com, 2023/11/21