This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [patch] Nios II build_id fix
- From: Alan Modra <amodra at gmail dot com>
- To: Sandra Loosemore <sandra at codesourcery dot com>
- Cc: Cesar Philippidis <cesar at codesourcery dot com>, binutils at sourceware dot org
- Date: Sun, 6 Apr 2014 14:42:08 +0930
- Subject: Re: [patch] Nios II build_id fix
- Authentication-results: sourceware.org; auth=none
- References: <533EF156 dot 3030504 at codesourcery dot com> <20140405013150 dot GI18201 at bubble dot grove dot modra dot org> <5340C6FA dot 2010503 at codesourcery dot com>
On Sat, Apr 05, 2014 at 09:16:10PM -0600, Sandra Loosemore wrote:
> On 04/04/2014 07:31 PM, Alan Modra wrote:
> >On Fri, Apr 04, 2014 at 10:52:22AM -0700, Cesar Philippidis wrote:
> >>@@ -2016,6 +2016,10 @@ nios2_elf32_build_stubs (struct bfd_link
> >> {
> >> bfd_size_type size;
> >>
> >>+ /* Ignore non-stub sections. */
> >>+ if (!strstr (stub_sec->name, STUB_SUFFIX))
> >>+ continue;
> >
> >Um, how do you manage to get non-stub sections in the stub bfd? Hmm,
> >via dynobj being set to the stub bfd, I expect. If so, you could
> >probably test (stub_sec->flags & SEC_LINKER_CREATED) == 0 instead.
>
> I had the same question when looking at this code. I think this
> also suffers from the same bug (PR 13049) mentioned in the comment
> on STUB_SUFFIX in elf32-arm.c.
>
> Hmmmm. I see that stub sections are being created without
> SEC_LINKER_CREATED (ld/emultempl/nios2elf.em), while dynamic
> sections created in dynobj do have that flag by default (from
> ELF_DYNAMIC_SEC_FLAGS). Other sections that end up in dynobj maybe
> do, maybe don't
What other sections? I don't think there will be any. You'll either
have stub sections or dynobj sections. The latter all have
SEC_LINKER_CREATED, the former doesn't.
I handle exactly the same situation in elf64-ppc.c, where dynobj is
forced to be the stub bfd, without resorting to testing for
STUB_SUFFIX in the name.
Note that elf32-arm.c only needs to test for the stub name because the
ARM backend does create other sections (glue, veneer) in the stub bfd
besides stub sections. nios2 doesn't, as far as I can see.
--
Alan Modra
Australia Development Lab, IBM