Skip to contentSkip to conversation

Critical compile bug: 2.4.1-pre2 alpha

DISCUSSION Shawn Starr 2 participants 6 messages Jan 12, 2001

lore
Share & tools
lore
#0 lore raw

init/main.o: In function `check_fpu':
init/main.o(.text.init+0x53): undefined reference to `__buggy_fxsr_alignment'
make: *** [vmlinux] Error 1

On compiling (and recompiling) i get this fatal error. This function does not exist anymore?

Shawn Starr.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#1 lore raw

[PROBLEM] 2.4.1-pre2 - Undefined symbol `__buggy_fxsr_alignment'

GCC 2.95.2 -> PGCC 2.95.2(3?) patched. 2.4.0 compiles fine

init/main.o: In function `check_fpu':
init/main.o(.text.init+0x53): undefined reference to `__buggy_fxsr_alignment'

make: *** [vmlinux] Error 1

On compiling (and recompiling) i get this fatal error. This function does not exist anymore?

Anyone else having this problem?

Shawn Starr.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#2 lore raw

Re: [PROBLEM] 2.4.1-pre2 - Undefined symbol `__buggy_fxsr_alignment' - (FIXED)

In reply to Shawn Starr

errrr i think it was just fixed in pre3 ;-)

+ if (offsetof(struct task_struct, thread.i387.fxsave) & 15) {
+ extern void __buggy_fxsr_alignment(void);
+ __buggy_fxsr_alignment();
+ }

Quoted 10 lines

GCC 2.95.2 -> PGCC 2.95.2(3?) patched. 2.4.0 compiles fine

init/main.o: In function `check_fpu':
init/main.o(.text.init+0x53): undefined reference to `__buggy_fxsr_alignment'

make: *** [vmlinux] Error 1

On compiling (and recompiling) i get this fatal error. This function does not exist anymore?

Quoted 8 lines

Anyone else having this problem?

Shawn Starr.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#3 lore raw

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

In reply to Shawn Starr

Nope, its not ;/

Im on a Intel Pentium 200Mhz PC, 64MB RAM,

ld -m elf_i386 -T /usr/src/linux/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o \
--start-group \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o
ipc/ipc.o \
drivers/block/block.o drivers/char/char.o drivers/misc/misc.o drivers/net/net.o
drivers/media/media.o drivers/parport/driver.o drivers/ide/idedriver.o drivers/cdrom/driver.o drivers/sound/sounddrivers.o drivers/pci/driver.o drivers/pnp/pnp.o drivers/video/video.o drivers/input/inputdrv.o \
net/network.o \
/usr/src/linux/arch/i386/lib/lib.a /usr/src/linux/lib/lib.a
/usr/src/linux/arch/i386/lib/lib.a \
--end-group \
-o vmlinux
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?

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

[root@coredump linux]# grep -r "__buggy_fxsr_alignment" *

include/asm-i386/bugs.h:  extern void __buggy_fxsr_alignment(void);
include/asm-i386/bugs.h:  __buggy_fxsr_alignment();
include/asm/bugs.h:  extern void __buggy_fxsr_alignment(void);
include/asm/bugs.h:  __buggy_fxsr_alignment();

/* 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?

Shawn.

Quoted 21 lines · Shawn Starr

errrr i think it was just fixed in pre3 ;-)

(quoted diff) +4 -0
+       if (offsetof(struct task_struct, thread.i387.fxsave) & 15) {
+               extern void __buggy_fxsr_alignment(void);
+               __buggy_fxsr_alignment();
+       }
Quoted 15 lines

GCC 2.95.2 -> PGCC 2.95.2(3?) patched. 2.4.0 compiles fine

init/main.o: In function `check_fpu':
init/main.o(.text.init+0x53): undefined reference to `__buggy_fxsr_alignment'

make: *** [vmlinux] Error 1

On compiling (and recompiling) i get this fatal error. This function does not exist anymore?

Anyone else having this problem?

Shawn Starr.

#4 lore raw

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

In reply to Shawn Starr
Quoted 9 lines · Shawn Starr

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."

Quoted 10 lines

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();
Quoted 2 lines

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..

Quoted 1 line

Shawn.

/Matti Aarnio
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#5 lore raw

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

In reply to Shawn Starr

Well, when i Make bzImage it uses -O2 for optimization. Is there any fix? change the optimization to -O0 ?

Quoted 39 lines · Matti Aarnio
Quoted 9 lines · Shawn Starr

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."

Quoted 10 lines

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();
Quoted 2 lines

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..

Quoted 7 lines
Quoted 1 line

Shawn.

/Matti Aarnio
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/