I need to compile a 2.4.32 version kernel. I make mrproper,make xconfig, make dep, which works fine. Make bzImage gives me the following.
Code:
aaron:/usr/src/linux-2.4.32 # make bzImage
gcc -D__KERNEL__ -I/usr/src/linux-2.4.32/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i586 -fno-unit-at-a-time -DKBUILD_BASENAME=main -c -o init/main.o init/main.c
In file included from /usr/src/linux-2.4.32/include/linux/kernel.h:15,
from /usr/src/linux-2.4.32/include/linux/wait.h:13,
from /usr/src/linux-2.4.32/include/linux/fs.h:12,
from /usr/src/linux-2.4.32/include/linux/capability.h:17,
from /usr/src/linux-2.4.32/include/linux/binfmts.h:5,
from /usr/src/linux-2.4.32/include/linux/sched.h:9,
from /usr/src/linux-2.4.32/include/linux/mm.h:4,
from /usr/src/linux-2.4.32/include/linux/slab.h:14,
from /usr/src/linux-2.4.32/include/linux/proc_fs.h:5,
from init/main.c:15:
/usr/src/linux-2.4.32/include/asm/byteorder.h:14: warning: type qualifiers ignored on function return type
/usr/src/linux-2.4.32/include/asm/byteorder.h:30: warning: type qualifiers ignored on function return type
In file included from /usr/src/linux-2.4.32/include/linux/byteorder/little_endian.h:11,
from /usr/src/linux-2.4.32/include/asm/byteorder.h:65,
from /usr/src/linux-2.4.32/include/linux/kernel.h:15,
from /usr/src/linux-2.4.32/include/linux/wait.h:13,
from /usr/src/linux-2.4.32/include/linux/fs.h:12,
from /usr/src/linux-2.4.32/include/linux/capability.h:17,
from /usr/src/linux-2.4.32/include/linux/binfmts.h:5,
from /usr/src/linux-2.4.32/include/linux/sched.h:9,
from /usr/src/linux-2.4.32/include/linux/mm.h:4,
from /usr/src/linux-2.4.32/include/linux/slab.h:14,
from /usr/src/linux-2.4.32/include/linux/proc_fs.h:5,
from init/main.c:15:
/usr/src/linux-2.4.32/include/linux/byteorder/swab.h:160: warning: type qualifiers ignored on function return type
/usr/src/linux-2.4.32/include/linux/byteorder/swab.h:173: warning: type qualifiers ignored on function return type
/usr/src/linux-2.4.32/include/linux/byteorder/swab.h:186: warning: type qualifiers ignored on function return type
/usr/src/linux-2.4.32/include/linux/byteorder/swab.h:200: warning: type qualifiers ignored on function return type
In file included from /usr/src/linux-2.4.32/include/linux/prefetch.h:13,
from /usr/src/linux-2.4.32/include/linux/list.h:6,
from /usr/src/linux-2.4.32/include/linux/wait.h:14,
from /usr/src/linux-2.4.32/include/linux/fs.h:12,
from /usr/src/linux-2.4.32/include/linux/capability.h:17,
from /usr/src/linux-2.4.32/include/linux/binfmts.h:5,
from /usr/src/linux-2.4.32/include/linux/sched.h:9,
from /usr/src/linux-2.4.32/include/linux/mm.h:4,
from /usr/src/linux-2.4.32/include/linux/slab.h:14,
from /usr/src/linux-2.4.32/include/linux/proc_fs.h:5,
from init/main.c:15:
/usr/src/linux-2.4.32/include/asm/processor.h:75: error: array type has incomplete element type
make: *** [init/main.o] Error 1
Here is my gcc --version output:
Code:
aaron:/usr/src/linux-2.4.32 # gcc --version
gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I searched and found out that a 3.x version of gcc will solve the problem, because 4.x now enforces the "incomplete element type" thing. I would rather not go about installing an older gcc. Is there a patch that will fix this so it will compile with gcc 4?