Help needed to track down bug: linking Linux kernel with gold creates unbootable kernel

H.J. Lu hjl.tools@gmail.com
Thu Apr 22 21:10:00 GMT 2010


On Mon, Apr 12, 2010 at 10:27 PM, Ian Lance Taylor <iant@google.com> wrote:
> John Reiser <jreiser@bitwagon.com> writes:
>
>> The differing .p_align values of 0x1000 vs 0x200000 indicate that
>> gold has a bug interpreting the commands from the linker script
>> for alignment of Elf64_Phdr.
>
> It is perhaps worth noting that for x86_64 gold by default uses -z
> max-page-size 0x1000 whereas the default for GNU ld is -z
> max-page-size 0x200000.  While I haven't looked at the Linux linker
> script, perhaps it is assuming the latter.
>

Linux kernel linker scripts needs to align .rodata section to 2MB:

. = ALIGN((1 << 21));

Since gold can only align to 4K, gold can't be used on Linux
kernel.


-- 
H.J.



More information about the Binutils mailing list