From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030115 Description of problem: While compiling alsa-0.9.0rc7 I encountered some warnings about duplicate definitions of the cpu_online macro. The phoebe and rawhide kernels 2.4.20-2.21 and 2.4.20-2.30 include two patches which both define the cpu_online macro in conflicting ways: linux-2.4.20-selected-ac-bits.patch (cpu_online defined in smp.h) linux-2.4.20-o1-sched+threading-backport.patch (cpu_online defined in sched.h) >grep "#define cpu_online" linux-2.4.20-selected-ac-bits.patch linux-2.4.20-o1-sched+threading-backport.patch linux-2.4.20-selected-ac-bits.patch:+#define cpu_online(cpu) ({ BUG_ON((cpu) != 0); 1; }) linux-2.4.20-selected-ac-bits.patch: #define cpu_online_map 1 linux-2.4.20-o1-sched+threading-backport.patch:+#define cpu_online(cpu) ((cpu) < smp_num_cpus) linux-2.4.20-o1-sched+threading-backport.patch: #define cpu_online_map cpu_present_mask Upon further investigation, it seems that the definition in the ac-bits patch is only for non-SMP use (and in fact it is only defined if CONFIG_SMP is NOT defined) and the definition of cpu_online in the o1-sched patch is only for use in SMP systems. However, the define in the o1-sched patch isn't protected by a #ifdef CONFIG_SMP. I have attached a patch which moves this definition inside the #ifdef CONFIG_SMP a couple lines later in sched.h. I'm not entirely sure if this is a correct fix, but it seems sane to me, and it fixes the aforementioned alsa compile warnings. Version-Release number of selected component (if applicable): 2.4.20-2.30 How reproducible: Always Steps to Reproduce: 1. install and boot the phoebe kernel or rawhide 2.4.20-2.30, including kernel-source 2. download alsa-driver-0.9.0rc7.tar.bz2 from www.alsa-project.org 3. compile alsa-driver following the instructions in INSTALL Actual Results: Every file that is compiled generates the following warning: gcc -M -D__KERNEL__ -DMODULE=1 -I/home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include -I/lib/modules/2.4.20-2.21/build/include -O2 -mpreferred-stack-boundary=2 - march=i686 -DLINUX -Wall -Wstrict-prototypes -fomit-frame-pointer -pipe -DALSA_BUILD hwdep32.c ioctl32.c pcm32.c rawmidi32.c seq32.c timer32.c > .depend In file included from /lib/modules/2.4.20-2.21/build/include/linux/mm.h:22, from /lib/modules/2.4.20-2.21/build/include/linux/slab.h:14, from /lib/modules/2.4.20-2.21/build/include/asm/pci.h:32, from /lib/modules/2.4.20-2.21/build/include/linux/pci.h:657, from /home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include/adriver.h:52, from /home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include/sound/driver.h:43, from ../../alsa-kernel/core/ioctl32/hwdep32.c:21, from hwdep32.c:2: /lib/modules/2.4.20-2.21/build/include/linux/sched.h:548:1: warning: "cpu_online" redefined In file included from /lib/modules/2.4.20-2.21/build/include/linux/sched.h:25, from /lib/modules/2.4.20-2.21/build/include/linux/mm.h:22, from /lib/modules/2.4.20-2.21/build/include/linux/slab.h:14, from /lib/modules/2.4.20-2.21/build/include/asm/pci.h:32, from /lib/modules/2.4.20-2.21/build/include/linux/pci.h:657, from /home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include/adriver.h:52, from /home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include/sound/driver.h:43, from ../../alsa-kernel/core/ioctl32/hwdep32.c:21, from hwdep32.c:2: /lib/modules/2.4.20-2.21/build/include/linux/smp.h:87:1: warning: this is the location of the previous definition Here is the same on 2.4.20-2.30: gcc -M -D__KERNEL__ -DMODULE=1 -I/home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include -I/lib/modules/2.4.20-2.30/build/include -O2 -mpreferred-stack-boundary=2 - march=i686 -DLINUX -Wall -Wstrict-prototypes -fomit-frame-pointer -pipe -DALSA_BUILD hwdep32.c ioctl32.c pcm32.c rawmidi32.c seq32.c timer32.c > .depend In file included from /lib/modules/2.4.20-2.30/build/include/linux/mm.h:22, from /lib/modules/2.4.20-2.30/build/include/linux/slab.h:14, from /lib/modules/2.4.20-2.30/build/include/asm/pci.h:32, from /lib/modules/2.4.20-2.30/build/include/linux/pci.h:657, from /home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include/adriver.h:52, from /home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include/sound/driver.h:43, from ../../alsa-kernel/core/ioctl32/hwdep32.c:21, from hwdep32.c:2: /lib/modules/2.4.20-2.30/build/include/linux/sched.h:563:1: warning: "cpu_online" redefined In file included from /lib/modules/2.4.20-2.30/build/include/linux/sched.h:25, from /lib/modules/2.4.20-2.30/build/include/linux/mm.h:22, from /lib/modules/2.4.20-2.30/build/include/linux/slab.h:14, from /lib/modules/2.4.20-2.30/build/include/asm/pci.h:32, from /lib/modules/2.4.20-2.30/build/include/linux/pci.h:657, from /home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include/adriver.h:52, from /home/cra/src/redhat/BUILD/alsa-driver-0.9.0rc7/include/sound/driver.h:43, from ../../alsa-kernel/core/ioctl32/hwdep32.c:21, from hwdep32.c:2: /lib/modules/2.4.20-2.30/build/include/linux/smp.h:87:1: warning: this is the location of the previous definition Expected Results: After applying the attached patch to /usr/src/linux-2.4.20/include/linux/sched.h, the warnings disappear. Additional info:
Created attachment 89777 [details] 2.4.20-2.30 patch to move sched.h cpu_online definition inside #ifdef CONFIG_SMP