[parisc-linux] 32-bit xc-20001206.tar.gz is foobar

Alan Modra alan@linuxcare.com.au
Mon, 11 Dec 2000 00:02:57 +1100 (EST)


On Sat, 9 Dec 2000, Grant Grundler wrote:

> Matt,
> xc-latest.tar.gz points to xc-20001206.tar.gz.
> Could latest be pointed to the previous version?
> 
> 32-bit 1206 build dies in the link phase with:
> ...
> hppa-linux-ld: fs/fs.o(.text.load_elf_interp+0x2b8): cannot handle R_PARISC_PCREL17F for __up
> hppa-linux-ld: fs/fs.o(.text.load_elf_interp+0x2dc): cannot reach 00000010___down+0, recompile with -ffunction-sections
> hppa-linux-ld: fs/fs.o(.text.load_elf_interp+0x2dc): cannot handle R_PARISC_PCREL17F for __down
> hppa-linux-ld: fs/fs.o(.text.load_aout_interp+0x11c): cannot reach 00000010_flush_instruction_cache+0, recompile with -ffunction-sections
> hppa-linux-ld: fs/fs.o(.text.load_aout_interp+0x11c): cannot handle R_PARISC_PCREL17F for flush_instruction_cache
> ...

This isn't necessarily a problem with Matt's latest compiler binary.  fs.o
is produced with a "ld -r" link stage, and it's text size is larger than
256k, so there is potential for branches to not be able to reach stubs.

ie. You may get these problems if
 a) You are using an older binutils (ie. not the latest pehc CVS version),
    and aren't using -ffunction-sections to compile the kernel
 b) You are using the very latest binutils, and aren't using
    -ffunction-sections, and I've goofed in my "ld -r" magic.

On a good fs.o, "hppa-linux-readelf -h fs.o" ought to show lots of .text.*
sections.

Alan
-- 
Linuxcare.  Support for the Revolution.