Skip to contentSkip to conversation

trivial fix for i386 cross compile

PATCH New Tony Lindgren 1 participant 1 message Jan 25, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 trivial fix for i386 cross compile

Hi all,

I used to be be able to cross compile for i386 on my x86_64 machine, but recently something (gcc/binutils?) changed, and it stopped working.

Following patch makes cross compile work with:

make ARCH=i386 CFLAGS_KERNEL="-m32" AFLAGS_KERNEL="-m32" bzImage

Without the patch I'm getting the following error:

SYSCALL arch/i386/kernel/vsyscall-syms.o
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/bin/ld:
Relocatable linking with relocations from format elf32-i386 (arch/i386/kernel/vsyscall-sysenter.o) to format elf64-x86-64 (arch/i386/kernel/vsyscall-syms.o) is not supported
collect2: ld returned 1 exit status

Regards,

Tony

arch/i386/kernel/Makefile +1 -1
@@ -46,7 +46,7 @@
 
 # The DSO images are built using a special linker script.
 quiet_cmd_syscall = SYSCALL $@
-      cmd_syscall = $(CC) -nostdlib $(SYSCFLAGS_$(@F)) \
+      cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \
 		          -Wl,-T,$(filter-out FORCE,$^) -o $@
 
 export CPPFLAGS_vsyscall.lds += -P -C -U$(ARCH)