LinuxBIOS & binutils evilness

Stefan Reinauer stepan at suse.de
Thu Aug 14 13:50:00 CEST 2003


* Jeff Noxon <jeff at planetfall.com> [030814 19:55]:
> 2.14.90.0.5 (Debian unstable) works for mkelfImage 2.5 but won't link
> LinuxBIOS.
 
do you have x86-64 support enabled in these binutils? This breaks
relocations 32->16bit.

> Here is my link error:
> 
> crt0.o(.reset+0x1): In function `reset_vector':
> : relocation truncated to fit: R_386_PC16 _start_offset
> collect2: ld returned 1 exit status

src/cpu/i386/reset16.inc is the culprit. See the freebios2 tree
for a wild but working implementation of reset16.inc. The 
"jmp _start" is there implemented as:
reset_vector:
        /* jmp _start */
        .byte  0xe9
        .int   _start - ( . + 2 )

This should also be changed in the old LinuxBIOS tree. It works fine.

Stefan
-- 
Architecture Team
    SuSE Linux AG



More information about the coreboot mailing list