[parisc-linux] 64-bit cross compiler broken
Alan Modra
alan@linuxcare.com.au
Sat, 26 Aug 2000 10:59:25 +1000 (EST)
On Fri, 25 Aug 2000, Paul Bame wrote:
> =
> = The current 64-bit cross compiler dies on drivers/block/rd.c
> =
>
> Another 64-bit gotcha: in arch/parisc64/kernel/entry.S:start_parisc_asm
> the 'b start_parisc' is branching through a stub and failing miserably.
> Linker problem?
Could be. The 64-bit binutils port hasn't yet been modified to use
multiple stub sections. That means a sufficiently large executable may
have branches that can't even reach the stubs, and I don't see any error
checking for this case.
Hmm, "sufficiently large" is 4*2**(22-1) for 22 bit branch offsets,
ie. 8M, so you're hardly likely to have hit that limit. OK, can you tell
me the reloc type (from objdump -dr entry.o) for the branch? Also, what
does the stub look like, and most importantly, what values does the stub
load out of the .plt. I reckon you've probably got a bad .plt value as
the code in bfd/elf64-hppa.c:elf64_hppa_finish_dynamic_symbol for setting
the plt entry looks wrong to me.
Alan
--
Linuxcare. Support for the Revolution.