Re: build issue #380 for v2.6.26-rc1-279-g28a4acb : mach-voyager:multiple definition of `phys_cpu_present_map'

From: James Bottomley
Date: Sat May 10 2008 - 10:02:33 EST


On Sat, 2008-05-10 at 15:17 +0200, Ingo Molnar wrote:
> * Ingo Molnar <mingo@xxxxxxx> wrote:
>
> > > I already told you that this was incorrect. This is what I sent as
> > > the replacement on 28 April and I didn't hear back from you.
> > >
> > > http://marc.info/?l=linux-kernel&m=120941111400620
> >
> > ok - picked it up for testing - could you please send a signoff line
> > as well?
>
> Alexey, the patch from James failed in testing on visws:
>
> arch/x86/kernel/built-in.o: In function `init_apic_mappings':
> : undefined reference to `boot_cpu_physical_apicid'
> arch/x86/kernel/built-in.o: In function `init_apic_mappings':
> : undefined reference to `boot_cpu_physical_apicid'
> arch/x86/kernel/built-in.o: In function `APIC_init_uniprocessor':
> : undefined reference to `boot_cpu_physical_apicid'
> arch/x86/kernel/built-in.o: In function `APIC_init_uniprocessor':
>
> config is at:
>
> http://redhat.com/~mingo/misc/config-Sat_May_10_15_05_47_CEST_2008.bad

OK, so these symbols are required on visws as well. So that makes the
gating config symbol X86_LOCAL_APIC.

Could you run this through the same config to verify; thanks!

James

---

From: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
Subject: [VOYAGER] fix duplicate phys_cpu_present_map symbol

The phys_cpu_present_map is an expected symbol in the SMP harness.
Unfortunately, x86 recently moved this and a few others to
kernel/setup.c where it doesn't quite work because voyager has to
define its own. Use CONFIG_X86_LOCAL_APIC to isolate these
definitions and fix up another area in setup.c where CONFIG_X86_SMP
should be used instead of CONFIG_SMP.

Signed-off-by: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
---
arch/x86/kernel/setup.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index cc6f5eb..3f1f642 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -12,6 +12,7 @@
#include <asm/mpspec.h>
#include <asm/apicdef.h>

+#ifdef CONFIG_X86_LOCAL_APIC
unsigned int num_processors;
unsigned disabled_cpus __cpuinitdata;
/* Processor that is doing the boot up */
@@ -23,8 +24,9 @@ EXPORT_PER_CPU_SYMBOL(x86_cpu_to_apicid);

/* Bitmask of physically existing CPUs */
physid_mask_t phys_cpu_present_map;
+#endif

-#if defined(CONFIG_HAVE_SETUP_PER_CPU_AREA) && defined(CONFIG_SMP)
+#if defined(CONFIG_HAVE_SETUP_PER_CPU_AREA) && defined(CONFIG_X86_SMP)
/*
* Copy data used in early init routines from the initial arrays to the
* per cpu data areas. These arrays then become expendable and the
--
1.5.4.4



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