[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