Skip to contentSkip to conversation

Incorrectness for fun and profit

DISCUSSION Rick Hohensee 2 participants 2 messages Nov 9, 2000

lore
Share & tools
lore
#0 lore raw

In 2.4 init/main.c we have...

* Versions of gcc older than that listed below may actually compile
* and link okay, but the end product can have subtle run time bugs.
* To avoid associated bogus bug reports, we flatly refuse to compile
* with a gcc that is known to be too old from the very beginning. */
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 1) #error Sorry, your GCC is too old. It builds incorrect kernels. #endif

Note that I've elided the 9 from the minor version number. I also tweaked the #define asmlinkage in whereveritis.h to look a bit more like 2.2, got rid of the arch=bla switch to gcc, and built the kernel I'm using at the moment with gcc 2.7.2.3. I'm looking for "subtle run time bugs". OK, I'm desparate for entertainment. That's a given. Where should I look? Everything I'm cognizant of so far is real pretty. I WANT BUGS! WHERE ARE THE BUGS?

This is not a bogus bug report. This is a repeatable bug request.

Incorrectly yours,

Rick Hohensee
:; cLIeNUX0 /dev/tty12 12:43:36 /
:;get /Linux/version
Linux version 2.4.0-test10 (@cLIeNUX) (gcc version 2.7.2.3) #10 Thu Nov 9 03:11:45 2000
:; cLIeNUX0 /dev/tty12 13:03:02 /
:;

-
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
Quoted 3 lines · Rick Hohensee

built the [2.4] kernel I'm using at the
moment with gcc 2.7.2.3. I'm looking for "subtle run time bugs". OK, I'm desparate for entertainment. That's a given. Where should I look?

2.4.0-test10 kernel/module.c

static struct module kernel_module =

{
	size_of_struct:		sizeof(struct module),
	name: 			"",
	uc:	 		{ATOMIC_INIT(1)},
	flags:			MOD_RUNNING,
	syms:			__start___ksymtab,
	ex_table_start:		__start___ex_table,	
	ex_table_end:		__stop___ex_table

gcc 2.7.2.3 miscompiles structures that have internal labeled structure initializers. uc gets misaligned, ex_table_start is then misaligned and the exception table handling fails.

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