[syslinux] extlinux: missing text on serial output

H. Peter Anvin hpa at zytor.com
Mon Jun 23 16:04:40 PDT 2008


Ferenc Wagner wrote:
> 
>> Compiling with NASM 2.02 and then running my Extlinux+vesamenu.c32 test 
>> under Qemu works just fine.  Perhaps you could send me a copy of 
>> extlinux.bin from your compile session (or even better, tar up a full 
>> build tree)?
> 
> I will send you the full build tree tomorrow, this GPRS connection
> isn't up to that.  But I attached extlinux.bin and a disk image
> freezing into reboot.c32.
> 

Okay, no need to... the issue is the following:

-000011d0  e8 fc 0f 10 00 66 bb 1a  8e fa fc 89 25 9c f7 00
+000011d0  e8 2b 82 0f 00 66 bb 1a  8e fa fc 89 25 9c f7 00
               ^^^^^^^^^^^

The code on top is yours, the one on the bottom is mine.  This is 
supposed to be a near jump to the COM32 entrypoint, 0x101000, from 
source address 0x8dd0 (0x7c00+0x11d0).  The correct value for the jump 
is 0x000f822b (0x1010000-0x8dd0-5); somehow in your case the linker puts 
0x00100ffc instead there, which implies that it failed to subtract the 
PC offset, 0x8dd1 (the -4 is handled by the assembler.)

However, either NASM 2.02 or NASM 2.03.01 give, for me:

     11d0:       e8 fc 0f 10 00          call   1021d1 <pm_entry+0x11d1>
                         11d1: R_386_PC32        *ABS*

     11d0:       e8 fc 0f 10 00          call   1021d1 <pm_entry+0x11d1>
                         11d1: R_386_PC32        *ABS*

... and, as far as I can tell, this is correct behaviour.

This implies that the difference is an ld difference.  What version of 
binutils are you running?  Mine is:

: tazenda 65 ; ld -version
GNU ld version 2.17.50.0.18-1 20070731

	-hpa




More information about the Syslinux mailing list