[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.

Linuxcare.  Support for the Revolution.