gcc 3.5 compile fixes

From: Andi Kleen
Date: Fri Jul 09 2004 - 05:27:12 EST



I tried to compile 2.6.7-bk9 with a recent gcc 3.5 snapshot on i386
and x86-64. It gave a lot of warnings and a lot of compile errors
for make allyesconfig.

On x86-64 it miscompiled the kernel (due to kernel bugs); I will send
fixes for that separately.

Most compile errors were about mixing extern and static declarations
of the same symbol. I fixed this all except for the au88x0 driver
in ALSA which had a too broken module setup (someone else will have
to tackle that)

I got one gcc internal compiler error while compiling the sunrpc
gss module. I filed an gcc bug for that.

One problem was that it didn't always inline fix_to_virt() which
resulted in undefined symbols. (gcc 3.4 and up doesn't set always
inline for normal inline). I fixed this by defining a new macro
__always_inline in compiler.h and using that for fix_to_virt

Another issue (I think already fixed in -mm) was that memmove()
needs to be moved out of line.

The result were a lot of patches for a lot of files. Instead
of spamming l-k with them all I put them in
http://www.firstfloor.org/~andi/35/
Andrew, please consider adding them to your tree.

The resulting i386 kernel booted on one machine; but failed to find
the SCSI disks on another (didn't investigate what the problem
was on the later, some more work needed on that)

-Andi

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