This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [Gold] problem building linux kernel
On 2010.11.18 at 11:56 -0800, Doug Kwan (éæå) wrote:
> This is an uninitialized-variable bug. Depenidng of whether KEEP_LEFT
> or KEEP_RIGHT is set, we will propagate the left or right operand's
> alignment. However, not all sub-classes of Expression return
> alignment in Expression::value(). In particular,
> Symbol_expression::value() does not and causes this expression to have
> garbage alignment value:
>
> init_per_cpu__gdt_page = gdt_page + __per_cpu_load;
>
> Markus: Can you try initializing left_alignment and right_alignment to
> zero around line 390 of expression.cc? That is a band-aid only to
> test my theory.
Looks good, many thanks Doug!
There are 6 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x200000 0xffffffff81000000 0x0000000001000000 0x5ab000 0x5ab000 R E 0x1000
LOAD 0x7ab000 0xffffffff815ab000 0x00000000015ab000 0x064628 0x064628 RWE 0x1000
LOAD 0x810000 0xffffffffff600000 0x0000000001610000 0x0008c8 0x0008c8 R E 0x1000
LOAD 0x811000 0x0000000000000000 0x0000000001611000 0x011f80 0x011f80 RW 0x1000
LOAD 0x823000 0xffffffff81623000 0x0000000001623000 0x0c5000 0x0c5000 RWE 0x1000
NOTE 0x658a28 0xffffffff81458a28 0x0000000001458a28 0x000040 0x000040 0x4
--
Markus