I am compiling 2.6.27-r4 on a 32bit (pentium4) and a 64bit (xeon 5150) machine right now.
I got two compile issues:
On 32bit: It seems like it only compiles with CONFIG_CC_OPTIMIZE_FOR_SIZE=y. Otherwise I geht this error:
Code: Select all
CC arch/x86/mm/fault.o
{standard input}: Assembler messages:
{standard input}:1507: Error: bad register name `%sil'
make[1]: *** [arch/x86/mm/fault.o] Error 1
make: *** [arch/x86/mm] Error 2
make: *** Waiting for unfinished jobs....
On 64bit: Compilation fails when I don't set CONFIG_IA32_EMULATION. Error is:
Code: Select all
CC arch/x86/kernel/cpu/common_64.o
arch/x86/kernel/cpu/common_64-xen.c: In function 'syscall_init':
arch/x86/kernel/cpu/common_64-xen.c:610: error: variable 'cstar' has initializer but incomplete type
arch/x86/kernel/cpu/common_64-xen.c:611: error: unknown field 'type' specified in initializer
arch/x86/kernel/cpu/common_64-xen.c:611: error: 'CALLBACKTYPE_syscall32' undeclared (first use in this function)
arch/x86/kernel/cpu/common_64-xen.c:611: error: (Each undeclared identifier is reported only once
arch/x86/kernel/cpu/common_64-xen.c:611: error: for each function it appears in.)
arch/x86/kernel/cpu/common_64-xen.c:611: warning: excess elements in struct initializer
arch/x86/kernel/cpu/common_64-xen.c:611: warning: (near initialization for 'cstar')
arch/x86/kernel/cpu/common_64-xen.c:612: error: unknown field 'address' specified in initializer
arch/x86/kernel/cpu/common_64-xen.c:613: warning: excess elements in struct initializer
arch/x86/kernel/cpu/common_64-xen.c:613: warning: (near initialization for 'cstar')
arch/x86/kernel/cpu/common_64-xen.c:610: error: storage size of 'cstar' isn't known
arch/x86/kernel/cpu/common_64-xen.c:615: error: 'CALLBACKOP_register' undeclared (first use in this function)
arch/x86/kernel/cpu/common_64-xen.c:616: error: 'KERN_WARN' undeclared (first use in this function)
arch/x86/kernel/cpu/common_64-xen.c:616: error: expected ')' before string constant
arch/x86/kernel/cpu/common_64-xen.c:610: warning: unused variable 'cstar'
make[2]: *** [arch/x86/kernel/cpu/common_64.o] Error 1
make[1]: *** [arch/x86/kernel/cpu] Error 2
I use the gentoo stable gcc 4.1.2 on both systems.
I can finish compilation if I set those options. On the 32bit system, this kernel won't boot. I don't get an error message - the system reboots right after the xen init is finished.
Can't boot the kernel on the 64bit machine since it is a production system.