This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [parisc-linux] binutils 2.15?
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: amodra at bigpond dot net dot au (Alan Modra)
- Cc: binutils at sources dot redhat dot com
- Date: Mon, 5 Jul 2004 16:33:59 -0400 (EDT)
- Subject: Re: [parisc-linux] binutils 2.15?
> That will be HJ's and my recent changes to elflink.c. Likely fix is to
> add another strcmp to elf_section_complain_discarded. That will be
> correct if your unwinder or whatever looks at .PARISC.unwind can cope
> with some zeros for entries corresponding to removed link-once sections.
> Otherwise the proper fix is to implement an
> elf_backend_ignore_discarded_relocs and elf_backend_discard_info that
> edits the unwind section.
Randolph Chung wrote:
> > Being the current expert on unwinding, do you know if we need more
> > than the simple fix?
>
> As long as it keeps it sorted (with the zeroed entries at the beginning
> of the unwind section) it should be ok for gdb and the kernel unwinder.
I have tested the enclosed change with gcc builds on hppa-unknown-linux-gnu
(3.4 and 3.5) and hppa64-hp-hpux11.11 (3.5) and haven't noticed any
obvious regressions. I have no idea how the hpux unwinder will handle
zeroed entries. I assume GNU ld is sorting the entries as per Randolph's
comment.
Is this ok?
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
2004-07-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* elflink.c (elf_section_complain_discarded): Don't complain about
.PARISC.unwind.
Index: elflink.c
===================================================================
RCS file: /cvs/src/src/bfd/elflink.c,v
retrieving revision 1.79
diff -u -3 -p -r1.79 elflink.c
--- elflink.c 2 Jul 2004 01:39:31 -0000 1.79
+++ elflink.c 3 Jul 2004 17:51:49 -0000
@@ -6310,6 +6310,9 @@ elf_section_complain_discarded (asection
if (strcmp (".gcc_except_table", sec->name) == 0)
return FALSE;
+ if (strcmp (".PARISC.unwind", sec->name) == 0)
+ return FALSE;
+
return TRUE;
}