SMP problem

Julien May (aburt@pop.datacore.ch)
Fri, 10 Sep 1999 22:29:58 +0200


Hi all

I've downloaded the 2.2.10 kernel. It works very nice till the day's
come, where i bought a sblive soundcard.
The problem is, that i have to compile the kernel without smp (multi
processor option), that the sblive driver from creative is working. So
for me should this be no problem, because i have just 1 fucking intel
pII 350MHz processor.
While i am compiling:

make dep; make clean; make bzImage

I got thess errors:

Proteus:/usr/src/linux # make bzImage
gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2
-fomit-frame-pointer -pipe -fno-strength-reduce -m486 -malign-loops=2
-malign-jumps=2 -malign-functions=2 -DCPU=586 -DUTS_MACHINE='"i386"' -c
-o init/version.o init/version.c
make -C kernel
make[1]: Entering directory `/usr/src/linux/kernel'
make all_targets
make[2]: Entering directory `/usr/src/linux/kernel'
gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2
-fomit-frame-pointer -pipe -fno-strength-reduce -m486 -malign-loops=2
-malign-jumps=2 -malign-functions=2 -DCPU=586 -DEXPORT_SYMTAB -c
ksyms.c
In file included from /usr/src/linux/include/linux/modversions.h:15,
from /usr/src/linux/include/linux/module.h:19,
from ksyms.c:14:
/usr/src/linux/include/linux/modules/i386_ksyms.ver:60: 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:70: 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:94: 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:76: 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:90: warning: `synchronize_bh'
redefined
/usr/src/linux/include/linux/modules/i386_ksyms.ver:78: 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:44: `smp_num_cpus' undeclared
(first use in this function)
/usr/src/linux/include/linux/kernel_stat.h:44: (Each undeclared
identifier is reported only once
/usr/src/linux/include/linux/kernel_stat.h:44: for each function it
appears in.)
make[2]: *** [ksyms.o] Error 1
make[2]: Leaving directory `/usr/src/linux/kernel'
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/usr/src/linux/kernel'
make: *** [_dir_kernel] Error 2
Proteus:/usr/src/linux #

I checked the kernel_stat.h file and changed the line:
for (i = 0 ; i < smp_num_cpus ; i++)

to: for (i = 0 ; i < 1 ; i++)

Now it works! I can compile my kernel, but there are some warnings
coming... nothing very special.
Anyway, the sound works!

My question: is there an other way without this little "fix"? Is there
an option, which i should activate in the kernel... or something else??

Thanks in advance
Cheers Julien

P.S. sorry about my broken english

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/