![]() |
compiling kernel 2.2.26 on a recent distro
Hi All,
I am trying to compile the latest 2.2 kernel (2.2.26) for an embedded system (386 processor class). I am using an up-to-date gentoo with gcc 3.3.2 and kernel 2.4.26 SMP. I have also tried compiling 2.2.25 and 2.2.23 with similar problems on a RedHat based system as well (with similar errors). *** make output *** divinity linux-2.2.26 # make bzImage cc -D__KERNEL__ -I/root/linux-2.2.26/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -D__SMP__ -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686 -c -o init/main.o init/main.c `-m486' is deprecated. Use `-march=i486' or `-mcpu=i486' instead. cc1: warning: -malign-loops is obsolete, use -falign-loops cc1: warning: -malign-jumps is obsolete, use -falign-jumps cc1: warning: -malign-functions is obsolete, use -falign-functions In file included from /root/linux-2.2.26/include/linux/string.h:37, from /root/linux-2.2.26/include/linux/signal.h:64, from /root/linux-2.2.26/include/linux/sched.h:23, from /root/linux-2.2.26/include/linux/mm.h:4, from /root/linux-2.2.26/include/linux/slab.h:14, from /root/linux-2.2.26/include/linux/malloc.h:4, from /root/linux-2.2.26/include/linux/proc_fs.h:5, from init/main.c:15: /root/linux-2.2.26/include/asm/string.h:476:17: missing terminating " character *** end make output *** I am confused as to why pristine released kernel sources don't cleanly complie. I ran a make mrproper ; make menuconfig ; make dep before I performed the make bzImage. In this example, I didn't do any configuration so I know that the cpu type is set wrong. Can anyone shed some light on what might be happening? Thanks in Advance, Adrian |
Some of my gray cells claim that older kernels
NEED to be compiled with a 2.95.3 or, even better, egcs compiler ... Haven't recompiled a 2.2 kernel since late 2000, though. Cheers, Tink |
Thanks for the tip.
I installed gcc 2.95.3 and got to work. I believe my current difficulty is the linux include files (installed in /usr/include/linux). gcc 2.95.3 now complains about using them (I'm guessing 2.4 vintage) when trying to compile my 2.2 series kernel. How would I go about overriding the include directory for the linux headers? I have tried moving the /usr/include/linux directory to a backup location so that gcc won't look in it and then tried the following command: make CC=/root/gcc/bin/gcc INCLUDE=/root/linux-2.2.26/include bzImage The complier still doesn't know where to find the include files. I've tried copying the contents of /linux-2.2.26/include/linux into the default /usr/include/linux directory (made a backup, of course) but that didn't work either. The build process complained about specific header files being in the wrong locations. I would think there would be a way to do this without having to klober my system include directory... FYI, here is the command that make issues: /root/gcc/bin/gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m386 -DCPU=386 -c -o init/main.o init/main.c Any further help would be deeply apprecieated! TIA, Adrian |
| All times are GMT -5. The time now is 09:40 PM. |