The kernel-source package contains entries in the include/linux/modules directory. This can cause a build of the kernel tree to fail. Steps to reproduce: rpm -Uhv kernel-source-2.2.16-22.i386.rpm cd /usr/src/linux make oldconfig make clean && make dep && make bzImage build will fail with the following error: gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m386 -DCPU=386 -DEXPORT_SYMTAB -c ksyms.c In file included from /usr/src/linux/include/linux/modversions.h:50, from /usr/src/linux/include/linux/module.h:19, from ksyms.c:14: /usr/src/linux/include/linux/modules/i386_ksyms.ver:6: warning: `cpu_data' redefined /usr/src/linux/include/asm/processor.h:96: warning: this is the location of the previous definition /usr/src/linux/include/linux/modules/i386_ksyms.ver:28: warning: `smp_num_cpus' redefined /usr/src/linux/include/linux/smp.h:77: warning: this is the location of the previous definition /usr/src/linux/include/linux/modules/i386_ksyms.ver:118: warning: `smp_call_function' redefined /usr/src/linux/include/linux/smp.h:83: warning: this is the location of the previous definition In file included from /usr/src/linux/include/linux/interrupt.h:51, from ksyms.c:21: /usr/src/linux/include/asm/hardirq.h:23: warning: `synchronize_irq' redefined /usr/src/linux/include/linux/modules/i386_ksyms.ver:138: warning: this is the location of the previous definition In file included from /usr/src/linux/include/linux/interrupt.h:52, from ksyms.c:21: /usr/src/linux/include/asm/softirq.h:75: warning: `synchronize_bh' redefined /usr/src/linux/include/linux/modules/i386_ksyms.ver:142: warning: this is the location of the previous definition /usr/src/linux/include/linux/kernel_stat.h: In function `kstat_irqs': In file included from ksyms.c:17: /usr/src/linux/include/linux/kernel_stat.h:47: `smp_num_cpus' undeclared (first use in this function) /usr/src/linux/include/linux/kernel_stat.h:47: (Each undeclared identifier is reported only once /usr/src/linux/include/linux/kernel_stat.h:47: for each function it appears in.) make[2]: *** [ksyms.o] Error 1 make[2]: Leaving directory `/usr/src/linux-2.2.16/kernel' make[1]: *** [first_rule] Error 2 make[1]: Leaving directory `/usr/src/linux-2.2.16/kernel' make: *** [_dir_kernel] Error 2 ------------------------------------------- Note: Running 'make mrproper' on the tree does fix this.
You're *supposed* to run make mrproper. The module info is there for compiling external modules against.