[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