2001-10-05 15:28:49

by Philipp Matthias Hahn

[permalink] [raw]
Subject: [FIX] Compiler error on linux-2.4.11-pre4/arch/i386/kernel/mpparse.c

Hello LKML!

patch-2.4.11-pre4 adds the following lines to include/acm-i386/smp.h:90
+#ifndef clustered_apic_mode
+ #ifdef CONFIG_MULTIQUAD
+ #define clustered_apic_mode (1)
+ #define esr_disable (1)
+ #else /* !CONFIG_MULTIQUAD */
+ #define clustered_apic_mode (0)
+ #define esr_disable (0)
+ #endif /* CONFIG_MULTIQUAD */
+#endif

which don't get included when compiling for non-SMP. Move those lines up
before
line 37 with "#ifdef CONFIG_SMP" and compiling should work again.

BYtE
Philipp
--
/ / (_)__ __ ____ __ Philipp Hahn
/ /__/ / _ \/ // /\ \/ /
/____/_/_//_/\_,_/ /_/\_\ [email protected]


2001-10-05 16:11:42

by Olaf Zaplinski

[permalink] [raw]
Subject: Re: [FIX] Compiler error on linux-2.4.11-pre4/arch/i386/kernel/mpparse.c

Philipp Matthias Hahn wrote:
>
> Hello LKML!
>
> patch-2.4.11-pre4 adds the following lines to include/acm-i386/smp.h:90
> +#ifndef clustered_apic_mode
> + #ifdef CONFIG_MULTIQUAD
> + #define clustered_apic_mode (1)
> + #define esr_disable (1)
> + #else /* !CONFIG_MULTIQUAD */
> + #define clustered_apic_mode (0)
> + #define esr_disable (0)
> + #endif /* CONFIG_MULTIQUAD */
> +#endif
>
> which don't get included when compiling for non-SMP. Move those lines up
> before
> line 37 with "#ifdef CONFIG_SMP" and compiling should work again.

No, this does not help... :-(

gcc -D__KERNEL__ -I/usr/src/linux-2.4.11-pre4/include -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=i686 -c -o io_apic.o io_apic.c
io_apic.c: In function `setup_IO_APIC_irqs':
io_apic.c:601: `INT_DELIVERY_MODE' undeclared (first use in this function)
io_apic.c:601: (Each undeclared identifier is reported only once
io_apic.c:601: for each function it appears in.)
io_apic.c: In function `setup_ExtINT_IRQ0_pin':
io_apic.c:675: `INT_DELIVERY_MODE' undeclared (first use in this function)
make[1]: *** [io_apic.o] Error 1
make[1]: Leaving directory `/usr/src/linux-2.4.11-pre4/arch/i386/kernel'
make: *** [_dir_arch/i386/kernel] Error 2


Olaf

2001-10-05 17:42:50

by Martin J. Bligh

[permalink] [raw]
Subject: Re: [FIX] Compiler error on linux-2.4.11-pre4/arch/i386/kernel/mpparse.c

My fault. I'd tested this on SMP and Uniproc, but not uniproc with
IO apic support. Try hacking out the if CONFIG_SMP from this bit

#if CONFIG_SMP
# ifdef CONFIG_MULTIQUAD
# define TARGET_CPUS 0xf /* all CPUs in *THIS* quad */
# define INT_DELIVERY_MODE 0 /* physical delivery on LOCAL quad */
# else
# define TARGET_CPUS cpu_online_map
# define INT_DELIVERY_MODE 1 /* logical delivery broadcast to all procs */
# endif
#else
# define TARGET_CPUS 0x01
#endif

in smp.h. But you might run into something else. Now I understand which
combination breaks it, I'll do some testing and get you a patch ASAP.

M.

--On Friday, October 05, 2001 6:10 PM +0200 Olaf Zaplinski <[email protected]> wrote:

> Philipp Matthias Hahn wrote:
>>
>> Hello LKML!
>>
>> patch-2.4.11-pre4 adds the following lines to include/acm-i386/smp.h:90
>> +#ifndef clustered_apic_mode
>> + #ifdef CONFIG_MULTIQUAD
>> + #define clustered_apic_mode (1)
>> + #define esr_disable (1)
>> + #else /* !CONFIG_MULTIQUAD */
>> + #define clustered_apic_mode (0)
>> + #define esr_disable (0)
>> + #endif /* CONFIG_MULTIQUAD */
>> +#endif
>>
>> which don't get included when compiling for non-SMP. Move those lines up
>> before
>> line 37 with "#ifdef CONFIG_SMP" and compiling should work again.
>
> No, this does not help... :-(
>
> gcc -D__KERNEL__ -I/usr/src/linux-2.4.11-pre4/include -Wall
> -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
> -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
> -march=i686 -c -o io_apic.o io_apic.c
> io_apic.c: In function `setup_IO_APIC_irqs':
> io_apic.c:601: `INT_DELIVERY_MODE' undeclared (first use in this function)
> io_apic.c:601: (Each undeclared identifier is reported only once
> io_apic.c:601: for each function it appears in.)
> io_apic.c: In function `setup_ExtINT_IRQ0_pin':
> io_apic.c:675: `INT_DELIVERY_MODE' undeclared (first use in this function)
> make[1]: *** [io_apic.o] Error 1
> make[1]: Leaving directory `/usr/src/linux-2.4.11-pre4/arch/i386/kernel'
> make: *** [_dir_arch/i386/kernel] Error 2
>
>
> Olaf
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>