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.