linux-2.3.[23] won't boot with egcs-2.93.22: Some progress

Horst von Brand (vonbrand@sleipnir.valparaiso.cl)
Thu, 20 May 1999 00:38:20 -0400


This is i586/100 UP, binutils-2.9.1.0.24, glibc-2.1.1pre3; most of the rest
is stock RedHat-6.0

It was reported that the above combination won't boot (it fails loading
block-major-3 even for IDE builtin!). egcs-1.1.2 (i.e., 2.91.66) works
fine.

I built several 2.3.3 kernels mixing *.o built with both compilers, and
found out that the offending file is drivers/block/ide.c: If just that one
is compiled with 1.1.2, the kernel works fine as far as my (limited!)
testing shows. If that file is compiled with egcs-2.93.19 the kernel
crashes too (I have no older egcs snapshots here to check).

Sadly, the file is quite big (I counted 160 functions), and the compilers
generate rather different code, so a simple diff(1) of the assembler
outputs doesn't help much. Mixing and matching functions out of both
listings cold help to narrow down the search, but some global labels don't
match and it's late now...

BTW, there is a bug in the file: An init_waitqueue_head() is duplicated in
init_hwif_data(), but that isn't the problem.

-- 
Horst von Brand                             vonbrand@sleipnir.valparaiso.cl
Casilla 9G, Viņa del Mar, Chile                               +56 32 672616

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/