2.1.3x/4x - glibc2 compilation problems

Bernhard Rosenkraenzer (linux@bero-online.ml.org)
Fri, 30 May 1997 11:10:29 +0200 (MET DST)


Hello, all.
I've tried to compile some recent 2.1.x kernels (2.1.38 to 41) without
success - is there a problem with 2.1.x kernels and glibc (I'm running
glibc 2.0.3, binutils 2.8, gcc 2.7.2.1, make 3.75.1)?

The error message I'm getting with make zImage is:
(The C-Flags -DCPU=686 -D__SMP__ seem to be interesting, as well - I've
configured everything for a normal Pentium without SMP.
The really interesting stuff is at the end.)

gcc -D__KERNEL__ -I/usr/src/linux-2.1.41/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -x c++ -D__SMP__ -pipe -fno-strength-reduce -m386 -DCPU=386 -m486 -DCPU=486 -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -m486 -mali
gn-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686 -D__SMP__ -c -o init/main.o init/main.c
*Initialization*:1: warning: `CPU' redefined
*Initialization*:1: warning: this is the location of the previous definition
*Initialization*:1: warning: `CPU' redefined
*Initialization*:1: warning: this is the location of the previous definition
*Initialization*:1: warning: `CPU' redefined
*Initialization*:1: warning: this is the location of the previous definition
/usr/src/linux-2.1.41/include/asm/string.h: In function `void * __constant_memcpy(void *, const void *, unsigned int)':
In file included from /usr/src/linux-2.1.41/include/linux/string.h:39,
from init/main.c:22:
/usr/src/linux-2.1.41/include/asm/string.h:447: warning: control reaches end of non-void function `__constant_memcpy(void *, const void *, unsigned int)'
/usr/src/linux-2.1.41/include/asm/string.h: In function `void * __constant_c_and_count_memset(void *, long unsigned int, unsigned int)':
/usr/src/linux-2.1.41/include/asm/string.h:598: warning: control reaches end of non-void function `__constant_c_and_count_memset(void *, long unsigned int, unsigned int)'
gcc -D__KERNEL__ -I/usr/src/linux-2.1.41/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -x c++ -D__SMP__ -pipe -fno-strength-reduce -m386 -DCPU=386 -m486 -DCPU=486 -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -m486 -mali
gn-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686 -D__SMP__ -DUTS_MACHINE='"i386"' -c -o init/version.o init/version.c
*Initialization*:1: warning: `CPU' redefined
*Initialization*:1: warning: this is the location of the previous definition
*Initialization*:1: warning: `CPU' redefined
*Initialization*:1: warning: this is the location of the previous definition
*Initialization*:1: warning: `CPU' redefined
*Initialization*:1: warning: this is the location of the previous definition
set -e; for i in kernel drivers mm fs net ipc lib arch/i386/kernel arch/i386/mm arch/i386/lib arch/i386/math-emu; do make -C $i; done
make[1]: Entering directory `/usr/src/linux-2.1.41/kernel'
make all_targets
make[2]: Entering directory `/usr/src/linux-2.1.41/kernel'
gcc -D__KERNEL__ -I/usr/src/linux-2.1.41/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -x c++ -D__SMP__ -pipe -fno-strength-reduce -m386 -DCPU=386 -m486 -DCPU=486 -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -m486 -mali
gn-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686 -D__SMP__ -DEXPORT_SYMTAB -c ksyms.c
*Initialization*:1: warning: `CPU' redefined
*Initialization*:1: warning: this is the location of the previous definition
*Initialization*:1: warning: `CPU' redefined
*Initialization*:1: warning: this is the location of the previous definition
*Initialization*:1: warning: `CPU' redefined
*Initialization*:1: warning: this is the location of the previous definition
/usr/src/linux-2.1.41/include/asm/string.h: In function `void * __constant_memcpy(void *, const void *, unsigned int)':
In file included from /usr/src/linux-2.1.41/include/linux/string.h:39,
from /usr/src/linux-2.1.41/include/linux/mm.h:10,
from ksyms.c:21:
/usr/src/linux-2.1.41/include/asm/string.h:447: warning: control reaches end of non-void function `__constant_memcpy(void *, const void *, unsigned int)'
/usr/src/linux-2.1.41/include/asm/string.h: In function `void * __constant_c_and_count_memset(void *, long unsigned int, unsigned int)':
/usr/src/linux-2.1.41/include/asm/string.h:598: warning: control reaches end of non-void function `__constant_c_and_count_memset(void *, long unsigned int, unsigned int)'
/usr/src/linux-2.1.41/include/linux/sysctl.h: At top level:
In file included from ksyms.c:47:
/usr/src/linux-2.1.41/include/linux/sysctl.h:251: parse error before string constant
/usr/src/linux-2.1.41/include/linux/sysctl.h:340: declaration of identifier `proc_handler' as `int (* proc_handler)(struct ctl_table *, int, struct file *, void *, unsigned int *)'
/usr/src/linux-2.1.41/include/linux/sysctl.h:262: conflicts with other use in class as `typedef int ( proc_handler)(struct ctl_table *, int, struct file *, void *, unsigned int *)'
/usr/src/linux-2.1.41/include/linux/sysctl.h:351: declaration of identifier `ctl_table' as `struct ctl_table * ctl_table'
/usr/src/linux-2.1.41/include/linux/sysctl.h:345: conflicts with other use in class as `typedef struct ctl_table ctl_table'
In file included from ksyms.c:59:
/usr/src/linux-2.1.41/include/linux/pci.h:657: parse error before `;'
/usr/src/linux-2.1.41/include/linux/pci.h:709: parse error before `;'
make[2]: *** [ksyms.o] Error 1
make[2]: Leaving directory `/usr/src/linux-2.1.41/kernel'
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/usr/src/linux-2.1.41/kernel'
make: *** [linuxsubdirs] Error 2