On Mon, May 12, 2008 at 09:01:44AM -0500, James Bottomley wrote:
quoted
With gcc 4.2.3 I get the same error. The noinline patch fixes it again.
text data bss dec hex filename
6721720 624416 397508 7743644 76289c vmlinux-gcc-4.2.3
OK, so it's an unfixed bug in gcc, and it looks to be specific to the
alpha backend.
No, other architectures are just lucky that the compiler decides
a) not to generate a jump table for switch statement in sd_major() and/or
b) not to inline this function.
I have a similar test case that fails on x86 as well.
if the compiler chooses to inline a function, it has to
respect the sectional (and other constraints) of the outer function.
Can someone file a bug report with the relevant compiler people?
It would be good, but in the meantime the 'noinline' fix seems to be
a most sensible option...
Ivan.