This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: hppa64-hp-hpux11.00: invalid string offset for section .dynstr
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: amodra at bigpond dot net dot au (Alan Modra)
- Cc: hjl at lucon dot org, ross dot alexander at uk dot neceur dot com, law at redhat dot com, binutils at sources dot redhat dot com
- Date: Thu, 20 Jun 2002 21:22:27 -0400 (EDT)
- Subject: Re: hppa64-hp-hpux11.00: invalid string offset for section .dynstr
> > I don't think that it's a SHF_MERGE bug. The problem involves
> > millicode symbols. For some reason, fields such as st_name, etc,
> > are garbage causing the failure of bfd_elf_string_from_elf_section.
> > We set h->dynindx = -1 for these symbols but there is little
> > else in their processing that appears special. The strange thing
> > is nm works fine and the names are present in .dynstr in the expected
> > order. I believe the error message is relatively new (last couple
> > of months).
>
> Does nm -D "work fine"? My guess is that it's too late to set dynindx
> to -1 in finish_dynamic_symbol, ie. that space in the dynamic sym
> table has already been allocated. By setting dynindx to -1, all you
> accomplish is not writing an entry in dynsym, leaving whatever garbage
> happened to be in memory.
Bingo:
bash-2.05$ /opt/gnu64/bin/nm -D xxx
BFD: xxx: invalid string offset 67108864 >= 3423 for section `.dynstr'
BFD: xxx: invalid string offset 4076863488 >= 3423 for section `.dynstr'
BFD: xxx: invalid string offset 2415919104 >= 3423 for section `.dynstr'
BFD: xxx: invalid string offset 805306368 >= 3423 for section `.dynstr'
BFD: xxx: invalid string offset 2164260864 >= 3423 for section `.dynstr'
...
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)