[syslinux] Linker script assertion with binutils 2.21
H. Peter Anvin
hpa at zytor.com
Mon Jan 17 12:48:41 PST 2011
On 01/17/2011 12:20 PM, Colin Watson wrote:
> On Mon, Jan 17, 2011 at 11:41:01AM -0800, H. Peter Anvin wrote:
>> The assertion in the linker script compares the symbols
>> syslinux_ldlinux_size (from the assembler) with __payload_len (from the
>> linker). Comment out the assert and check the value of __payload_len in
>> syslinux.elf; if it is something other than 0x7c00 we need to find out
>> where it gets the value (by backtracking the component values.)
>
> Thanks:
>
> $ objdump -t syslinux.elf | grep payload
> ffff8400 l d .payload 00000000 .payload
> 00000200 g *ABS* 00000000 __payload_lma
> 40000000 g *ABS* 00000000 __payload_dwords
> fffff840 g *ABS* 00000000 __payload_sseg
> ffff8400 g .payload 00000000 __payload_start
> ffff8400 g .payload 00007c00 syslinux_ldlinux
> 00000000 g .payload 00000000 __payload_end
> 00000000 g .payload 00000000 __payload_len
>
> Looks like subtracting one relative address from another doesn't work
> right, at least not when one is negative. This fixes it, but I haven't
> tested it with binutils < 2.21 (although ABSOLUTE predates the commit I
> referred to in my original post, at least):
>
Could you file a bug report against binutils, please?
-hpa
More information about the Syslinux
mailing list