This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] Always define referenced __start_SECNAME/__stop_SECNAME
On Wed, Jun 14, 2017 at 06:20:47AM -0700, H.J. Lu wrote:
> On Tue, Jun 13, 2017 at 8:50 PM, Alan Modra <amodra@gmail.com> wrote:
> > I see these fails. Please investigate and fix. The powerpc-linux
>
> Most of tests are supported on targets without --gc-sections support or
> with a leading underscore in symbol name. I checked in a couple patches
> to address them.
>
> > fails are due to leaving the __start and __stop symbols undefined when
> > sizing dynamic sections, which is wrong. That at least needs to be
>
> There is no need to discard relocs on undefined symbols with
> non-default visibilty, which may be defined later like __start_SECNAME
> and __stop_SECNAME, or are real errors. I am enclosing a patch here.
No, it is quite reasonable to discard these relocations, and it is a
maintenance nightmare when symbols change state between
allocate_dynrelocs and relocate_section. Granted, that already
happened for .startof. and .sizeof. symbols, but the existence of
those special symbols was an undocumented feature of gas and ld.
Making that happen for __start and __stop too just makes the problem
worse.
In future please state on the mailing list which targets you tested
against when posting global changes. I assumed you had tested this
change against a representative set of targets, but it's clear you
didn't.
--
Alan Modra
Australia Development Lab, IBM