Re: [ARM] Fix hard_smp_processor_id compile error

From: Fernando Luis Vázquez Cao
Date: Mon May 14 2007 - 22:59:54 EST


On Tue, 2007-05-15 at 11:18 +0900, Simon Horman wrote:
> "Remove hardcoding of hard_smp_processor_id on UP systems",
> 2f4dfe206a2fc07099dfad77a8ea2f4b4ae2140f in Linus' tree, moved
> the definition of hard_smp_processor_id linux/smp.h to asm/smp.h
> for UP systems. This causes a regression on ARM as the definition
> was not added to asm-arm/smp.h.
Hi Simon!

Thank you for catching and fixing these compile errors. I should install
a cross-compiler ASAP.

- Fernando

> Cc: Fernando Luis Vazquez Cao <fernando@xxxxxxxxxxxxx>
> Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
>
> ---
> arch/arm/mach-integrator/core.c | 1 +
> include/asm-arm/smp.h | 10 ++++++----
> 2 files changed, 7 insertions(+), 4 deletions(-)
>
> arm-unknown-linux-gnu-gcc (GCC) 4.1.1
> Copyright (C) 2006 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> CC arch/arm/mach-integrator/core.o
> arch/arm/mach-integrator/core.c: In function 'integrator_timer_interrupt':
> arch/arm/mach-integrator/core.c:264: warning: implicit declaration of function 'hard_smp_processor_id'
> [snip]
> LD .tmp_vmlinux1
> arch/arm/mach-integrator/built-in.o: In function `integrator_timer_interrupt':
> cpu.c:(.text+0x398): undefined reference to `hard_smp_processor_id'
> make: *** [.tmp_vmlinux1] error 1
>
> This was produced by running the following in a crosstool cross-compiling
> environment:
> cp arch/arm/configs/integrator_defconfig .config
> yes "" | make modconfig
> make
>
> Index: linux-2.6/arch/arm/mach-integrator/core.c
> ===================================================================
> --- linux-2.6.orig/arch/arm/mach-integrator/core.c 2007-05-15 10:56:06.000000000 +0900
> +++ linux-2.6/arch/arm/mach-integrator/core.c 2007-05-15 10:56:16.000000000 +0900
> @@ -28,6 +28,7 @@
> #include <asm/system.h>
> #include <asm/leds.h>
> #include <asm/mach/time.h>
> +#include <asm/smp.h>
>
> #include "common.h"
>
> Index: linux-2.6/include/asm-arm/smp.h
> ===================================================================
> --- linux-2.6.orig/include/asm-arm/smp.h 2007-05-15 10:51:54.000000000 +0900
> +++ linux-2.6/include/asm-arm/smp.h 2007-05-15 10:56:34.000000000 +0900
> @@ -10,16 +10,16 @@
> #ifndef __ASM_ARM_SMP_H
> #define __ASM_ARM_SMP_H
>
> +#ifndef CONFIG_SMP
> +#define hard_smp_processor_id() 0
> +#else
> +
> #include <linux/threads.h>
> #include <linux/cpumask.h>
> #include <linux/thread_info.h>
>
> #include <asm/arch/smp.h>
>
> -#ifndef CONFIG_SMP
> -# error "<asm-arm/smp.h> included in non-SMP build"
> -#endif
> -
> #define raw_smp_processor_id() (current_thread_info()->cpu)
>
> /*
> @@ -134,4 +134,6 @@ extern void show_local_irqs(struct seq_f
> */
> asmlinkage void do_local_timer(struct pt_regs *);
>
> +#endif /* CONFIG_SMP */
> +
> #endif /* ifndef __ASM_ARM_SMP_H */

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