Intel x86-64 support patch breaks amd64
Hi Andi,
I guess you probably already know about this, but the recent changeset 1.1561.1.1 breaks compiling and booting for amd64.
First, this breaks for the compile:
arch/x86_64/kernel/setup.c: In function detect_ht':arch/x86_64/kernel/setup.c:599: error: smp_num_siblings' undeclared (first use in this function)arch/x86_64/kernel/setup.c:599: error: (Each undeclared identifier is reported only oncearch/x86_64/kernel/setup.c:599: error: for each function it appears in.) make[1]: *** [arch/x86_64/kernel/setup.o] Error 1
make: *** [arch/x86_64/kernel] Error 2
After #if 0 out some parts to make it compile, it fails to boot with no output at all. Sorry, don't have low level debugging or serial console on this machine configured, let me know if you need further information.
Undoing this cset makes things work as before.
Regards,
Tony
Quoted 2 lines · On Thu, 19 Feb 2004 10:34:49 -0800 Tony Lindgren <[email protected]> wrote:
I guess you probably already know about this, but the recent changeset 1.1561.1.1 breaks compiling and booting for amd64.
You need the appended patch to build on Uni Processor again. I already submitted it to Linus, but he doesn't seem to have merged it yet (or alternatively compile for SMP)
Quoted 3 lines
After #if 0 out some parts to make it compile, it fails to boot with no output at all. Sorry, don't have low level debugging or serial console on this machine configured, let me know if you need further information.
It works for me with this patch both UP and SMP. Maybe you commented out too much?
-Andi
arch/x86_64/kernel/setup.c renamed from arch/x86_64/kernel/setup.c-o +2 -0
@@ -588,6 +588,7 @@static void __init detect_ht (void ) { +#ifdef CONFIG_SMP extern int phys_proc_id[NR_CPUS ];u32 eax, ebx, ecx, edx;
@@ -631,6 +632,7 @@printk (KERN_INFO "CPU: Physical Processor ID: %d\n" , phys_proc_id[cpu]); } +#endif }#define LVL_1_INST 1
arch/x86_64/kernel/Makefile renamed from arch/x86_64/kernel/Makefile-o +1 -1
@@ -33,4 +33,4 @@ cpuid-$(subst m,y,$(CONFIG_X86_CPUID)) += ../../i386/kernel/cpuid.o topology-y += ../../i386/mach-default/topology.o swiotlb-$(CONFIG_SWIOTLB) += ../../ia64/lib/swiotlb.o -microcode-$(CONFIG_MICROCODE) += ../../i386/kernel/microcode.o +microcode-$(subst m,y,$(CONFIG_X86_CPUID)) += ../../i386/kernel/microcode.o
arch/x86_64/kernel/x8664_ksyms.c renamed from arch/x86_64/kernel/x8664_ksyms.c-o +2 -0
@@ -194,7 +194,9 @@EXPORT_SYMBOL (die_chain); +#ifdef CONFIG_SMP_ EXPORT_SYMBOL (cpu_sibling_map); +#endif extern void do_softirq_thunk (void );EXPORT_SYMBOL_NOVERS (do_softirq_thunk);
arch/x86_64/kernel/x8664_ksyms.c line 197
Quoted 7 lines · Andi Kleen
arch/x86_64/kernel/x8664_ksyms.c renamed from arch/x86_64/kernel/x8664_ksyms.c-o +1
-0@@ -194,7 +194,9 @@EXPORT_SYMBOL (die_chain); +#ifdef CONFIG_SMP_
^ Isn't this a typo?
arch/x86_64/kernel/x8664_ksyms.c line 202
Quoted 5 lines
arch/x86_64/kernel/x8664_ksyms.c renamed from arch/x86_64/kernel/x8664_ksyms.c-o +1
-0EXPORT_SYMBOL (cpu_sibling_map); +#endif extern void do_softirq_thunk (void );EXPORT_SYMBOL_NOVERS (do_softirq_thunk);
Jakub
Quoted 10 lines · On Thu, 19 Feb 2004 14:36:10 -0500 Jakub Jelinek <[email protected]> wrote:
arch/x86_64/kernel/x8664_ksyms.c line 197
Quoted 7 lines · Andi Kleen
arch/x86_64/kernel/x8664_ksyms.c renamed from arch/x86_64/kernel/x8664_ksyms.c-o +1
-0@@ -194,7 +194,9 @@EXPORT_SYMBOL (die_chain); +#ifdef CONFIG_SMP_ ^ Isn't this a typo?
Indeed. Thanks for catching it.
It probably doesn't hurt because I don't know of any module that uses cpu_sibling_map[]. I think I just copied the export from i386. Maybe it would be best to just remove it completely.
-Andi
Quoted 8 lines · Andi Kleen
Quoted 3 lines
Quoted 1 line
+#ifdef
CONFIG_SMP_^ Isn't this a typo?
Indeed. Thanks for catching it.
It probably doesn't hurt because I don't know of any module that uses cpu_sibling_map[]. I think I just copied the export from i386. Maybe it would be best to just remove it completely.
Andrew added it a few hours ago, oprofile use it.
regards,
Phil
Quoted 4 lines · Andi Kleen
You need the appended patch to build on Uni Processor again. I already submitted it to Linus, but he doesn't seem to have merged it yet (or alternatively compile for SMP)
OK, that compiles, but does not boot. Tt's not the *.S files, not the *.c, files, I think it's in the .h files somewhere.
Undoing *.S files did not help. Undoing *.c files did not help. Finally undoing the *.h files booted... I'll try to narrow it down more.
Yeah, this is UP machine. Also just remembered I don't have a serial port for lowe level printk's :)
Tony
Quoted 8 lines · On Thu, 19 Feb 2004 12:39:20 -0800 Tony Lindgren <[email protected]> wrote:
Quoted 4 lines · Andi Kleen
You need the appended patch to build on Uni Processor again. I already submitted it to Linus, but he doesn't seem to have merged it yet (or alternatively compile for SMP)
OK, that compiles, but does not boot. Tt's not the *.S files, not the *.c, files, I think it's in the .h files somewhere.
Not sure what you mean with that.
Can you please fetch a completely fresh tree, apply the patch and try again?
Most likely you have a broken build of some sort.
-Andi
PATCH 1/1 Fix typo in x86-64 fix
In reply to Philippe ElieQuoted 4 lines · On Thu, 19 Feb 2004 21:20:02 +0000 Philippe Elie <[email protected]> wrote:
Quoted 2 lines · Andi Kleen
Quoted 2 lines
Quoted 1 line
+#ifdef
CONFIG_SMP_
Quoted 8 lines
Quoted 6 lines
Quoted 1 line
^ Isn't this a typo?
Indeed. Thanks for catching it.
It probably doesn't hurt because I don't know of any module that uses cpu_sibling_map[]. I think I just copied the export from i386. Maybe it would be best to just remove it completely.
Andrew added it a few hours ago, oprofile use it.
Ok, Andrew, can you please apply this incremental patch to fix the typo too ?
arch/x86_64/kernel/x8664_ksyms.c renamed from arch/x86_64/kernel/x8664_ksyms.c-o +1 -1
@@ -194,7 +194,7 @@EXPORT_SYMBOL (die_chain); -#ifdef CONFIG_SMP_ +#ifdef CONFIG_SMP EXPORT_SYMBOL (cpu_sibling_map);#endif
-Andi