Index: boot/arch/mips32/loader/Makefile
===================================================================
--- boot/arch/mips32/loader/Makefile	(revision c31e536bd9be6ecfa95f64ab22192e98f13dcb22)
+++ boot/arch/mips32/loader/Makefile	(revision 67f5fbd92424ee3d6c31b93b0b515498a9a24b3e)
@@ -36,5 +36,5 @@
 TOOLCHAIN_DIR = /usr/local/mipsel/bin
 
-ifeq ($(COMPILER),native)
+ifeq ($(COMPILER),gcc_native)
 	CC = gcc
 	AS = as
@@ -42,5 +42,15 @@
 	OBJCOPY = objcopy
 	OBJDUMP = objdump
-else
+endif
+
+ifeq ($(COMPILER),icc_native)
+	CC = icc
+	AS = as
+	LD = ld
+	OBJCOPY = objcopy
+	OBJDUMP = objdump
+endif
+
+ifeq ($(COMPILER),gcc_cross)
 	CC = $(TOOLCHAIN_DIR)/$(TARGET)-gcc
 	AS = $(TOOLCHAIN_DIR)/$(TARGET)-as
Index: boot/arch/ppc32/loader/Makefile
===================================================================
--- boot/arch/ppc32/loader/Makefile	(revision c31e536bd9be6ecfa95f64ab22192e98f13dcb22)
+++ boot/arch/ppc32/loader/Makefile	(revision 67f5fbd92424ee3d6c31b93b0b515498a9a24b3e)
@@ -36,5 +36,5 @@
 TOOLCHAIN_DIR = /usr/local/ppc/bin
 
-ifeq ($(COMPILER),native)
+ifeq ($(COMPILER),gcc_native)
 	CC = gcc
 	AS = as
@@ -42,5 +42,15 @@
 	OBJCOPY = objcopy
 	OBJDUMP = objdump
-else
+endif
+
+ifeq ($(COMPILER),icc_native)
+	CC = icc
+	AS = as
+	LD = ld
+	OBJCOPY = objcopy
+	OBJDUMP = objdump
+endif
+
+ifeq ($(COMPILER),gcc_cross)
 	CC = $(TOOLCHAIN_DIR)/$(TARGET)-gcc
 	AS = $(TOOLCHAIN_DIR)/$(TARGET)-as
Index: boot/arch/ppc64/loader/Makefile
===================================================================
--- boot/arch/ppc64/loader/Makefile	(revision c31e536bd9be6ecfa95f64ab22192e98f13dcb22)
+++ boot/arch/ppc64/loader/Makefile	(revision 67f5fbd92424ee3d6c31b93b0b515498a9a24b3e)
@@ -36,5 +36,5 @@
 TOOLCHAIN_DIR = /usr/local/ppc64/bin
 
-ifeq ($(COMPILER),native)
+ifeq ($(COMPILER),gcc_native)
 	CC = gcc
 	AS = as
@@ -42,5 +42,15 @@
 	OBJCOPY = objcopy
 	OBJDUMP = objdump
-else
+endif
+
+ifeq ($(COMPILER),icc_native)
+	CC = icc
+	AS = as
+	LD = ld
+	OBJCOPY = objcopy
+	OBJDUMP = objdump
+endif
+
+ifeq ($(COMPILER),gcc_cross)
 	CC = $(TOOLCHAIN_DIR)/$(TARGET)-gcc
 	AS = $(TOOLCHAIN_DIR)/$(TARGET)-as
Index: boot/arch/sparc64/loader/Makefile
===================================================================
--- boot/arch/sparc64/loader/Makefile	(revision c31e536bd9be6ecfa95f64ab22192e98f13dcb22)
+++ boot/arch/sparc64/loader/Makefile	(revision 67f5fbd92424ee3d6c31b93b0b515498a9a24b3e)
@@ -36,5 +36,5 @@
 TOOLCHAIN_DIR = /usr/local/sparc64/bin
 
-ifeq ($(COMPILER),native)
+ifeq ($(COMPILER),gcc_native)
 	CC = gcc
 	AS = as
@@ -42,5 +42,15 @@
 	OBJCOPY = objcopy
 	OBJDUMP = objdump
-else
+endif
+
+ifeq ($(COMPILER),icc_native)
+	CC = icc
+	AS = as
+	LD = ld
+	OBJCOPY = objcopy
+	OBJDUMP = objdump
+endif
+
+ifeq ($(COMPILER),gcc_cross)
 	CC = $(TOOLCHAIN_DIR)/$(TARGET)-gcc
 	AS = $(TOOLCHAIN_DIR)/$(TARGET)-as
Index: boot/boot.config
===================================================================
--- boot/boot.config	(revision c31e536bd9be6ecfa95f64ab22192e98f13dcb22)
+++ boot/boot.config	(revision 67f5fbd92424ee3d6c31b93b0b515498a9a24b3e)
@@ -14,6 +14,7 @@
 
 # Compiler
-@ "cross" Cross-compiler
-@ "native" Native
+@ "gcc_cross" GCC Cross-compiler
+@ "gcc_native" GCC Native
+@ "icc_native" ICC Native
 ! COMPILER (choice)
 
Index: kernel/arch/ia32/Makefile.inc
===================================================================
--- kernel/arch/ia32/Makefile.inc	(revision c31e536bd9be6ecfa95f64ab22192e98f13dcb22)
+++ kernel/arch/ia32/Makefile.inc	(revision 67f5fbd92424ee3d6c31b93b0b515498a9a24b3e)
@@ -62,5 +62,9 @@
 endif
 ifeq ($(MACHINE),pentium4)
-	CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2
+	ifeq ($(COMPILER),icc_native)
+		CFLAGS += -march=pentium4
+	else
+		CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2
+	endif
 	DEFS += -DCONFIG_FENCES_P4
 endif
Index: tools/build
===================================================================
--- tools/build	(revision c31e536bd9be6ecfa95f64ab22192e98f13dcb22)
+++ tools/build	(revision 67f5fbd92424ee3d6c31b93b0b515498a9a24b3e)
@@ -19,5 +19,5 @@
 	cd "$BASE"
 	make distclean
-	make "PLATFORM=$TARGET" "COMPILER=cross" "CONFIG_DEBUG=n"
+	make "PLATFORM=$TARGET" "COMPILER=gcc_cross" "CONFIG_DEBUG=n"
 	
 	cp -v "$BASE/uspace/libc/arch/$UTARGET/src/entry.o" "$OUTPUT/$TARGET"
Index: uspace/libc/Makefile.toolchain
===================================================================
--- uspace/libc/Makefile.toolchain	(revision c31e536bd9be6ecfa95f64ab22192e98f13dcb22)
+++ uspace/libc/Makefile.toolchain	(revision 67f5fbd92424ee3d6c31b93b0b515498a9a24b3e)
@@ -41,5 +41,5 @@
 #
 
-ifeq ($(COMPILER),native)
+ifeq ($(COMPILER),gcc_native)
 	CC = gcc
 	AS = as
@@ -48,5 +48,16 @@
 	OBJCOPY = objcopy
 	OBJDUMP = objdump
-else
+endif
+
+ifeq ($(COMPILER),icc_native)
+	CC = icc
+	AS = as
+	LD = ld
+	AR = ar
+	OBJCOPY = objcopy
+	OBJDUMP = objdump
+endif
+
+ifeq ($(COMPILER),gcc_cross)
 	CC = $(TOOLCHAIN_DIR)/$(TARGET)-gcc
 	AS = $(TOOLCHAIN_DIR)/$(TARGET)-as
Index: uspace/uspace.config
===================================================================
--- uspace/uspace.config	(revision c31e536bd9be6ecfa95f64ab22192e98f13dcb22)
+++ uspace/uspace.config	(revision 67f5fbd92424ee3d6c31b93b0b515498a9a24b3e)
@@ -14,6 +14,7 @@
 
 # Compiler
-@ "cross" Cross-compiler
-@ "native" Native
+@ "gcc_cross" GCC Cross-compiler
+@ "gcc_native" GCC Native
+@ "icc_native" ICC Native
 ! COMPILER (choice)
 
