Re: __buggy_fxsr_alignment() not found.

From: Brian Gerst
Date: Thu Mar 04 2004 - 08:23:28 EST


Igor Yu. Zhbanov wrote:
On Mon, 1 Mar 2004, Randy.Dunlap wrote:


On Sun, 29 Feb 2004 20:02:12 +0300 (MSK) Igor Yu. Zhbanov wrote:

| Hello!
| My system is:
| AMD K6-II 450
| Linux-2.4.24
| glibc-2.2.5
| | I cannot compile 2.4.24 kernel because linker says:
| init/main.o: In function `check_fpu':
| init/main.o(.text.init+0x53): undefined reference to `__buggy_fxsr_alignment'
| | It's prototype is in inculude/asm-i386/bugs.h:
| -----
| /* 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();
| -----
| But there is no realisation of this function in source files.
| When I comment the lines above, everything works.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This function is not supposed to be defined anywhere.
It is there to indicate a build error and to keep the kernel
build from completing successfully.

For some reason, with your config (and CPU arch.) and compiler,
the 'fxsave' field is not on a 16-byte alignment. Have you applied
any patches to 2.4.24? What version of gcc are you using (gcc -v)?



My compiler is pgcc-2.95.3 (gcc optimized for Pentium).
And I use security patch from OpenWall.
Here is my config file:

Get a newer compiler. It's either not getting the alignment of thread.i387.fxsave right or not optimizing the test away properly.

--
Brian Gerst
-
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/