Index: arch/ia32/Makefile.inc
===================================================================
--- arch/ia32/Makefile.inc	(revision f3a6c8e593cee3b567dd3356e55e5936fc44ee80)
+++ arch/ia32/Makefile.inc	(revision 9060bd155ebb04d94b7cd551fd3413cf35cab490)
@@ -1,10 +1,23 @@
-CC=gcc
-AS=as
-LD=ld
-OBJDUMP=objdump
-OBJCOPY=objcopy
+ifeq (${CROSS_COMPILER},yes)
+	IA-32_TARGET=i686-pc-linux-gnu
+
+	IA-32_CC_DIR=/usr/local/i686/bin
+	IA-32_BINUTILS_DIR=/usr/local/i686/bin
+
+	CC=$(IA-32_CC_DIR)/$(IA-32_TARGET)-gcc
+	AS=$(IA-32_BINUTILS_DIR)/$(IA-32_TARGET)-as
+	LD=$(IA-32_BINUTILS_DIR)/$(IA-32_TARGET)-ld
+	OBJCOPY=$(IA-32_BINUTILS_DIR)/$(IA-32_TARGET)-objcopy
+	OBJDUMP=$(IA-32_BINUTILS_DIR)/$(IA-32_TARGET)-objdump
+else
+	CC=gcc
+	AS=as
+	LD=ld
+	OBJCOPY=objcopy
+	OBJDUMP=objdump
+endif
+
 BFD_NAME=elf32-i386
 BFD_ARCH=i386
-
 
 DEFS:=-DARCH=$(ARCH) -DFPU_LAZY
@@ -18,9 +31,10 @@
 endif
 
-CFLAGS=$(DEFS) -nostdlib -fno-builtin -fomit-frame-pointer -O3
-LFLAGS=-M -no-check-sections
+CPPFLAGS=$(DEFS) -nostdinc -I../include
+CFLAGS=$(CPPFLAGS) -nostdlib -fno-builtin -fomit-frame-pointer -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3
+LFLAGS=-M
 
 ../arch/$(ARCH)/_link.ld: ../arch/$(ARCH)/_link.ld.in
-	$(CC) $(CFLAGS) -C -E -x c $< | grep -v "^\#" > $@
+	$(CC) $(CFLAGS) -E -x c $< | grep -v "^\#" > $@
 
 arch_sources= \
Index: arch/ia32/Makefile.inc.cross
===================================================================
--- arch/ia32/Makefile.inc.cross	(revision f3a6c8e593cee3b567dd3356e55e5936fc44ee80)
+++ 	(revision )
@@ -1,64 +1,0 @@
-IA-32_TARGET=i686-pc-linux-gnu
-
-IA-32_CC_DIR=/usr/local/i686/bin
-IA-32_BINUTILS_DIR=/usr/local/i686/bin
-
-CC=$(IA-32_CC_DIR)/$(IA-32_TARGET)-gcc
-AS=$(IA-32_BINUTILS_DIR)/$(IA-32_TARGET)-as
-LD=$(IA-32_BINUTILS_DIR)/$(IA-32_TARGET)-ld
-OBJCOPY=$(IA-32_BINUTILS_DIR)/$(IA-32_TARGET)-objcopy
-OBJDUMP=$(IA-32_BINUTILS_DIR)/$(IA-32_TARGET)-objdump
-
-BFD_NAME=elf32-i386
-BFD_ARCH=i386
-
-DEFS:=-DARCH=$(ARCH) -DFPU_LAZY
-
-ifdef SMP
-DEFS+=-D$(SMP)
-endif
-
-ifdef HT
-DEFS+=-D$(HT)
-endif
-
-CPPFLAGS=$(DEFS) -nostdinc -I../include
-CFLAGS=$(CPPFLAGS) -nostdlib -fno-builtin -fomit-frame-pointer -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3
-LFLAGS=-M -no-check-sections
-
-../arch/$(ARCH)/_link.ld: ../arch/$(ARCH)/_link.ld.in
-	$(CC) $(CFLAGS) -E -x c $< | grep -v "^\#" > $@
-
-arch_sources= \
-	arch/context.s \
-	arch/debug/panic.s \
-	arch/cpuid.s \
-	arch/delay.s \
-	arch/asm.S \
-	arch/proc/scheduler.c \
-	arch/acpi/acpi.c \
-	arch/acpi/madt.c \
-	arch/bios/bios.c \
-	arch/smp/ap.S \
-	arch/smp/apic.c \
-	arch/smp/mps.c \
-	arch/smp/smp.c \
-	arch/atomic.S \
-	arch/smp/ipi.c \
-	arch/ia32.c \
-	arch/interrupt.c \
-	arch/pm.c \
-	arch/userspace.c \
-	arch/cpu/cpu.c \
-	arch/mm/frame.c \
-	arch/mm/memory_init.c \
-	arch/mm/page.c \
-	arch/mm/tlb.c \
-	arch/drivers/i8042.c \
-	arch/drivers/i8254.c \
-	arch/drivers/i8259.c \
-	arch/drivers/ega.c \
-	arch/boot/boot.S \
-	arch/boot/memmap.S\
-	arch/fpu_context.c\
-	arch/fmath.c
Index: arch/ia32/_link.ld.in
===================================================================
--- arch/ia32/_link.ld.in	(revision f3a6c8e593cee3b567dd3356e55e5936fc44ee80)
+++ arch/ia32/_link.ld.in	(revision 9060bd155ebb04d94b7cd551fd3413cf35cab490)
@@ -30,5 +30,5 @@
 	.mapped (PA2KA(BOOT_OFFSET+BOOTSTRAP_OFFSET)+SIZEOF(.unmapped)): AT (BOOTSTRAP_OFFSET+SIZEOF(.unmapped)) { 
 		ktext_start = .;
-		*(BOOT_DATA)
+		*(BOOT_DATA);
 		*(.text);
 		ktext_end = .;
@@ -41,7 +41,7 @@
 		LONG(PA2KA(BOOT_OFFSET+BOOTSTRAP_OFFSET));
 		hardcoded_ktext_size = .;
-		LONG(ktext_end - ktext_start + (unmapped_ktext_end - unmapped_ktext_start));
+		LONG((ktext_end - ktext_start) + (unmapped_ktext_end - unmapped_ktext_start));
 		hardcoded_kdata_size = .;
-		LONG(kdata_end - kdata_start + (unmapped_kdata_end - unmapped_kdata_start));
+		LONG((kdata_end - kdata_start) + (unmapped_kdata_end - unmapped_kdata_start));
 		hardcoded_unmapped_ktext_size = .;
 		LONG(unmapped_ktext_end - unmapped_ktext_start);
Index: arch/ia32/include/boot/boot.h
===================================================================
--- arch/ia32/include/boot/boot.h	(revision f3a6c8e593cee3b567dd3356e55e5936fc44ee80)
+++ arch/ia32/include/boot/boot.h	(revision 9060bd155ebb04d94b7cd551fd3413cf35cab490)
@@ -31,5 +31,5 @@
 
 #define BOOTSTRAP_OFFSET		0x8000
-#define BOOT_OFFSET				0x100000
+#define BOOT_OFFSET			0x100000
 
 #define MULTIBOOT_HEADER_MAGIC	0x1BADB002
