Re: sparc32 compile error: redefinition of ‘smp_call_function_single’

From: Robert Reif
Date: Tue Jan 13 2009 - 22:49:42 EST


Andrew Morton wrote:
On Tue, 13 Jan 2009 18:42:39 -0800 Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

On Tue, 13 Jan 2009 18:10:39 -0800 (PST) David Miller <davem@xxxxxxxxxxxxx> wrote:

From: Robert Reif <reif@xxxxxxxxxxxxx>
Date: Tue, 13 Jan 2009 20:40:04 -0500

Todays git produces this compile error on sparc32:

kernel/up.c:10: error: redefinition of ___smp_call_function_single___
/usr/src/sparc32/linux-2.6/arch/sparc/include/asm/smp_32.h:78: error: previous definition of ___smp_call_function_single___ was here
Andrew, are you sure that Makefile condition for compiling
up.o is correct?
you give me grounds for now being ;)

ifeq ($(CONFIG_USE_GENERIC_SMP_HELPERS),y)
obj-y += smp.o
else
obj-y += up.o
endif

If an arch doesn't use generic SMP helpers, there is no way
we should compile up.c into the tree when SMP.

How's about this?

--- a/kernel/Makefile~a
+++ a/kernel/Makefile
@@ -43,7 +43,7 @@ obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
ifeq ($(CONFIG_USE_GENERIC_SMP_HELPERS),y)
obj-y += smp.o
else
-obj-y += up.o
+obj-$(CONFIG_SMP) += up.o
endif
obj-$(CONFIG_SMP) += spinlock.o
obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock.o

err, the other way of course...

--- a/kernel/Makefile~a
+++ a/kernel/Makefile
@@ -43,6 +43,7 @@ obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
ifeq ($(CONFIG_USE_GENERIC_SMP_HELPERS),y)
obj-y += smp.o
else
+ifneq ($(CONFIG_SMP),y)
obj-y += up.o
endif
obj-$(CONFIG_SMP) += spinlock.o
_



This worked:

diff --git a/kernel/Makefile b/kernel/Makefile
index 2aebc4c..368227d 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -43,8 +43,10 @@ obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
ifeq ($(CONFIG_USE_GENERIC_SMP_HELPERS),y)
obj-y += smp.o
else
+ifneq ($(CONFIG_SMP),y)
obj-y += up.o
endif
+endif
obj-$(CONFIG_SMP) += spinlock.o
obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock.o
obj-$(CONFIG_PROVE_LOCKING) += spinlock.o

--
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/