Re: non-modular 2.6 ppc kernels miscompiled by gcc-3.3.1?

From: Mikael Pettersson
Date: Sun Oct 12 2003 - 16:46:21 EST


On Sun, 12 Oct 2003 21:53:55 +0200, Sam Ravnborg wrote:
>On Sun, Oct 12, 2003 at 09:47:48PM +0200, Mikael Pettersson wrote:
>> Notice __start___ex_table[]'s address: it's not 4-byte aligned.
>> With gcc-3.2.3 it got an 8-byte aligned address in my 2.6 kernel.
>>
>> vmlinux.lds.S doesn't explicitly align __start___ex_table, so I
>> simply put ". = ALIGN(4);" before it and Voila! now it works.
>
>ld will aling the section according to alingment requirements
>of the symbols inside the section.
>So what happens in your case is that . (current address) is
>un-even. But ld alings the section to a 4-byte boundary,
>due to one of the symbols inside the section.
>
>So the better fix is to define the lables inside the section,
>(read: inside the two '{}').
>
>Care to give my patch a check and report back.

Yes, your patch also works.

/Mikael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/