The kernel from a Rh 7.0 out of the box fail to compile, it seems to be
some problem with the smp support
Extract from a make bzImage:
/src/linux/include/asm/softirq.h:75: warning: `synchronize_bh' redefined
/usr/src/linux/include/linux/modules/i386_ksyms.ver:142: warning: this is
cation 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
use in this function)
/usr/src/linux/include/linux/kernel_stat.h:47: (Each undeclared identifier
ported only once
/usr/src/linux/include/linux/kernel_stat.h:47: for each function it
/usr/src/linux/include/linux/kernel_stat.h:48: warning: implicit
/usr/src/linux/include/asm/softirq.h: In function `start_bh_atomic':
In file included from /usr/src/linux/include/linux/interrupt.h:52,
/usr/src/linux/include/asm/softirq.h:62: warning: implicit declaration of
make: *** [ksyms.o] Error 1
You probably changed the .config from SMP to UP. In that case, you have to
issue a "make mrproper" before compiling your kernel. (Be careful, make mrproper
also deletes the .config file, so copy that to a safe location before the
command and copy it back later). Be sure to run "make oldconfig" after you
copied your .config file back.
This is a known, but very hard to solve correctly, bug in the 2.2 series
It seems that the RH7.0 kernel-source package defaults to SMP (in that the 'make
mrproper' above is required) even though the config defaults to uniprocessor.
So perhaps the right solution is a cleaned up kernel-source package?
No, the module symbols are there for building external modules against.
It has nothing to do with the kernel package, I downloaded from kernel.org the
lastest 2.2.17 and a previous 2.2.15 and both had the same error, I did what
email@example.com pointed above and the kernel compiled fine, but I'm not
be able to compile the modules, so I had to make a monolitic kernel