Subject: re: reloc sym ""
To: Michael Rauch <mrauch@netbsd.org>
From: matthew green <mrg@eterna.com.au>
List: tech-toolchain
Date: 09/07/2001 02:43:32
I've found something interesting which may help tracking this down:
taking the same assembler code (from a C++ test file using exceptions),
assembling it with the binutils as and then looking at it with
`objdump --reloc class.o` yields a difference which seems to cause the
trouble:
with binutils-2.10 I get
RELOCATION RECORDS FOR [.eh_frame]:
OFFSET TYPE VALUE
0000001c R_SPARC_32 .text+0x00000008
[...]
while it's with binutils-2.11
RELOCATION RECORDS FOR [.eh_frame]:
OFFSET TYPE VALUE
0000001c R_SPARC_UA32 .text+0x00000008
[...]
(R_SPARC_UA32 is reloc type 23 btw.)
On Thu, Aug 30, 2001 at 10:18:06PM +1000, matthew green wrote:
> >
> > /orb/e/pkgsrc.obj.sparc/lang/perl5-base/work.sparc/perl-5.6.1/libperl.so:
> > Undefined symbol "" (reloc type = 23, symnum = 4)
> [...]
> it may be an interaction with "new" gcc and "new" binutils. i will note
> that my new binutils were 2.11 based.
I don't know what to do further, but this seems to be the important part
why it won't work.
If anyone is interested I can provide the files I've used.
is this the only difference? it shouldn't matter. the former
is a normal 32 bit relocation. the latter is a special "unaligned"
32 bit relocation. it's basically for the dynamic linker only. my
quick look at the sparc ld.elf_so says it handles these, but i don't
see any special code to handle the unaligned part of this...
.mrg.