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

From: Sam Ravnborg
Date: Sun Oct 12 2003 - 14:54:48 EST


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.

Sam
-
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/