Explicitly look for CONFIG_X86_32 in Makefile
authorKevin Klues <klueska@cs.berkeley.edu>
Wed, 7 May 2014 00:48:09 +0000 (17:48 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Wed, 7 May 2014 00:48:09 +0000 (17:48 -0700)
Before this change, the first pass over the makefile would think we were
a 32 bit kernel even if we were a 64 bit one.  If you didn't have an
i686-ros-gcc compiler installed, then later attempts to execute
$(shell $(OBJDUMP)) in the top level Makefile would error out (albeit
benignly).

kern/arch/x86/Makefile

index fededcd..55a917e 100644 (file)
@@ -8,12 +8,12 @@ CFLAGS_KERNEL += -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow
 LDFLAGS_KERNEL += -z max-page-size=0x1000
 # Need to change the format to 32 bit, to trick multiboot/grub1 into loading
 ARCH_POST_LINK_CMD = cp $@ $@-64b; $(OBJCOPY) -I elf64-x86-64 -O elf32-i386 $@
-else
+else ifeq ($(CONFIG_X86_32),y)
 CROSS_COMPILE := i686-ros-
 BITS := 32
 KERNEL_LD := kernel32.ld
 # basically a nop.  this runs post-link of the kernel
-ARCH_POST_LINK_CMD = echo -n
+       ARCH_POST_LINK_CMD = echo -n
 endif
 
 # BITS is used in Kbuilds, so we can select bit-specific source files.