Re: [CONT PROBLEM] 2.4.1-pre3 - Undefined symbol `__buggy_fxsr_alignment'

Matti Aarnio
2001-01-12T21:21:23Z

On Fri, Jan 12, 2001 at 03:02:15PM -0500, Shawn Starr wrote:
> Nope, its not ;/
>
> Im on a Intel Pentium 200Mhz PC, 64MB RAM,
>
> init/main.o: In function `check_fpu':
> init/main.o(.text.init+0x53): undefined reference to `__buggy_fxsr_alignment'
> make: *** [vmlinux] Error 1
>
> same fatal error. Where is this function defined in the i386 asm header?

It should not be present at all in the objects.
The compiler optimizer should remove that call,
which is just an example of similar kind of "if
optimizer fails, here is cannon-fodder to alert
users about it."

> If so, I could fix this and submit a patch.

> /* Enable FXSR and company _before_ testing for FP problems. */
> /*
> * Verify that the FXSAVE/FXRSTOR data will be 16-byte aligned.
> */
> if (offsetof(struct task_struct, thread.i387.fxsave) & 15) {
> extern void __buggy_fxsr_alignment(void);
> __buggy_fxsr_alignment();
>
> Where is this function? Where is it defined? When i grep the whole dir
> i dont see this function anywhere?

See the comment above the offsetof() call.
Now think. Figure out why things are at wrong offset.
Has something been added into task_struct lately ?
Or to thread_struct, which actually is processor context
data where this 'thread.i386.fxsave' thing resides ?

Oh yes, if compilation DOES NOT happen with -O flag,
this will also happen..

> Shawn.

/Matti Aarnio