Index: kernel/Makefile
===================================================================
--- kernel/Makefile	(revision 99373fe634e57f8fd0d7e00007f064f11ed0c6bb)
+++ kernel/Makefile	(revision 44bec47f0eb1681725cbe7093467b13fbeda89c7)
@@ -34,4 +34,7 @@
 -include Makefile.config
 
+INCLUDES = generic/include
+OPTIMIZATION = 3
+
 ## Common compiler flags
 #
@@ -40,11 +43,17 @@
 	-DKERNEL
 
-GCC_CFLAGS = -fno-builtin -fomit-frame-pointer -Wall -Wmissing-prototypes \
-	-Werror -O3 -nostdlib -nostdinc -Igeneric/include/
-
-SUNCC_CFLAGS = -xO3 -Igeneric/include/ -xnolib -xc99=all \
+GCC_CFLAGS = -I$(INCLUDES) -O$(OPTIMIZATION) \
+	-fno-builtin -fomit-frame-pointer -Wall -Wmissing-prototypes -Werror \
+	-nostdlib -nostdinc
+
+ICC_CFLAGS = -I$(INCLUDES) -O$(OPTIMIZATION) \
+	-fno-builtin -fomit-frame-pointer -Wall -Wmissing-prototypes -Werror \
+	-nostdlib -nostdinc \
+	-wd170
+
+SUNCC_CFLAGS = -I$(INCLUDES) -xO$(OPTIMIZATION) \
+	-xnolib -xc99=all -xregs=no%float \
 	-D__FUNCTION__=__func__ -features=extensions \
 	-erroff=E_ZERO_SIZED_STRUCT_UNION
-
 
 LFLAGS = -M
@@ -147,5 +156,5 @@
 	OBJDUMP = objdump
 	LIBDIR = /usr/lib
-	CFLAGS = $(GCC_CFLAGS)
+	CFLAGS = $(ICC_CFLAGS)
 endif
 
Index: kernel/arch/amd64/Makefile.inc
===================================================================
--- kernel/arch/amd64/Makefile.inc	(revision 99373fe634e57f8fd0d7e00007f064f11ed0c6bb)
+++ kernel/arch/amd64/Makefile.inc	(revision 44bec47f0eb1681725cbe7093467b13fbeda89c7)
@@ -36,5 +36,7 @@
 TOOLCHAIN_DIR = /usr/local/amd64
 
-GCC_CFLAGS += -fno-unwind-tables -m64 -mcmodel=kernel -mno-red-zone
+CMN1 = -m64 -mcmodel=kernel -mno-red-zone -fno-unwind-tables
+GCC_CFLAGS += $(CMN1)
+ICC_CFLAGS += $(CMN1)
 SUNCC_CFLAGS += -m64 -xmodel=kernel
 
@@ -45,5 +47,8 @@
 
 ifeq ($(MACHINE),opteron)
-	GCC_CFLAGS += -march=opteron	
+	CMN2 := -march=opteron
+	GCC_CFLAGS += $(CMN2)
+	ICC_CFLAGS += $(CMN2)
+	SUNCC_CFLAGS += -xtarget=opteron
 	DEFS += -DFENCES=p4
 endif
Index: kernel/arch/ia32/Makefile.inc
===================================================================
--- kernel/arch/ia32/Makefile.inc	(revision 99373fe634e57f8fd0d7e00007f064f11ed0c6bb)
+++ kernel/arch/ia32/Makefile.inc	(revision 44bec47f0eb1681725cbe7093467b13fbeda89c7)
@@ -37,5 +37,9 @@
 
 DEFS += -DMACHINE=$(MACHINE) -D__32_BITS__
-SUNCC_CFLAGS += -m32
+
+CMN1 = -m32
+GCC_CFLAGS += $(CMN1)
+ICC_CFLAGS += $(CMN1)
+SUNCC_CFLAGS += $(CMN1)
 
 ## Accepted CPUs
@@ -43,5 +47,8 @@
 
 ifeq ($(MACHINE),athlon-xp)
-	GCC_CFLAGS += -march=athlon-xp -mmmx -msse -m3dnow
+	CMN2 = -march=athlon-xp -mmmx -msse -m3dnow
+	GCC_CFLAGS += $(CMN2)
+	ICC_CFLAGS += $(CMN2)
+	SUNCC_CFLAGS += -xarch=ssea
 	DEFS += -DCONFIG_FENCES_P3
 	CONFIG_SMP = n
@@ -49,23 +56,30 @@
 endif
 ifeq ($(MACHINE),athlon-mp)
-	GCC_CFLAGS += -march=athlon-mp -mmmx -msse -m3dnow
+	CMN2 = -march=athlon-mp -mmmx -msse -m3dnow
+	GCC_CFLAGS += $(CMN2)
+	ICC_CFLAGS += $(CMN2)
+	SUNCC_CFLAGS += xarch=ssea
 	DEFS += -DCONFIG_FENCES_P3
 	CONFIG_HT = n
 endif
 ifeq ($(MACHINE),pentium3)
-	GCC_CFLAGS += -march=pentium3 -mmmx -msse
+	CMN2 = -march=pentium3 -mmmx -msse
+	GCC_CFLAGS += $(CMN2)
+	ICC_CFLAGS += $(CMN2)
+	SUNCC_CFLAGS += -xarch=sse
 	DEFS += -DCONFIG_FENCES_P3
 	CONFIG_HT = n
 endif
 ifeq ($(MACHINE),prescott)
-	GCC_CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse3
+	CMN2 = -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse3
+	GCC_CFLAGS += $(CMN2)
+	ICC_CFLAGS += $(CMN2)
+	SUNCC_CFLAGS += -xarch=sse3
 	DEFS += -DCONFIG_FENCES_P4
 endif
 ifeq ($(MACHINE),pentium4)
-	ifeq ($(COMPILER),icc_native)
-		GCC_CFLAGS += -march=pentium4
-	else
-		GCC_CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2
-	endif
+	GCC_CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2
+	ICC_CFLAGS += -march=pentium4
+	SUNCC_CFLAGS += -xarch=sse2
 	DEFS += -DCONFIG_FENCES_P4
 endif
Index: kernel/arch/ia32xen/Makefile.inc
===================================================================
--- kernel/arch/ia32xen/Makefile.inc	(revision 99373fe634e57f8fd0d7e00007f064f11ed0c6bb)
+++ kernel/arch/ia32xen/Makefile.inc	(revision 44bec47f0eb1681725cbe7093467b13fbeda89c7)
@@ -38,5 +38,8 @@
 DEFS += -DMACHINE=$(MACHINE) -D__32_BITS__
 
-SUNCC_CFLAGS += -m32
+CMN1 = -m32
+GCC_CFLAGS += $(CMN1)
+ICC_CFLAGS += $(CMN1)
+SUNCC_CFLAGS += $(CMN1)
 
 ## Accepted CPUs
@@ -44,5 +47,8 @@
 
 ifeq ($(MACHINE),athlon-xp)
-	GCC_CFLAGS += -march=athlon-xp -mmmx -msse -m3dnow
+	CMN2 = -march=athlon-xp -mmmx -msse -m3dnow
+	GCC_CFLAGS += $(CMN2)
+	ICC_CFLAGS += $(CMN2)
+	SUNCC_CFLAGS += -xarch=ssea
 	DEFS += -DCONFIG_FENCES_P3
 	CONFIG_SMP = n
@@ -50,19 +56,30 @@
 endif
 ifeq ($(MACHINE),athlon-mp)
-	GCC_CFLAGS += -march=athlon-mp -mmmx -msse -m3dnow
+	CMN2 = -march=athlon-mp -mmmx -msse -m3dnow
+	GCC_CFLAGS += $(CMN2)
+	ICC_CFLAGS += $(CMN2)
+	SUNCC_CFLAGS += -xarch=ssea
 	DEFS += -DCONFIG_FENCES_P3
 	CONFIG_HT = n
 endif
 ifeq ($(MACHINE),pentium3)
-	GCC_CFLAGS += -march=pentium3 -mmmx -msse
+	CMN2 = -march=pentium3 -mmmx -msse
+	GCC_CFLAGS += $(CMN2)
+	ICC_CFLAGS += $(CMN2)
+	SUNCC_CFLAGS += -xarch=sse
 	DEFS += -DCONFIG_FENCES_P3
 	CONFIG_HT = n
 endif
 ifeq ($(MACHINE),prescott)
-	GCC_CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse3
+	CMN2 = -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse3
+	GCC_CFLAGS += $(CMN2)
+	ICC_CFLAGS += $(CMN2)
+	SUNCC_CFLAGS += -xarch=sse3
 	DEFS += -DCONFIG_FENCES_P4
 endif
 ifeq ($(MACHINE),pentium4)
 	GCC_CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2
+	ICC_CFLAGS += -march=pentium4
+	SUNCC_CFLAGS += -xarch=sse2
 	DEFS += -DCONFIG_FENCES_P4
 endif
Index: kernel/arch/ia64/Makefile.inc
===================================================================
--- kernel/arch/ia64/Makefile.inc	(revision 99373fe634e57f8fd0d7e00007f064f11ed0c6bb)
+++ kernel/arch/ia64/Makefile.inc	(revision 44bec47f0eb1681725cbe7093467b13fbeda89c7)
@@ -39,10 +39,12 @@
 INIT0_SIZE = 0x100000
 
-GCC_CFLAGS += -mconstant-gp -fno-unwind-tables -mfixed-range=f32-f127
+CMN1 = -mconstant-gp -fno-unwind-tables -mfixed-range=f32-f127
+GCC_CFLAGS += $(CMN1)
+ICC_CFLAGS += $(CMN1)
+
 LFLAGS += -EL
 AFLAGS += -mconstant-gp
 
 DEFS += -D__64_BITS__ -DINIT0_ADDRESS=$(INIT0_ADDRESS) -DINIT0_SIZE=$(INIT0_SIZE) -D$(MACHINE)
-
 
 
Index: kernel/arch/sparc64/Makefile.inc
===================================================================
--- kernel/arch/sparc64/Makefile.inc	(revision 99373fe634e57f8fd0d7e00007f064f11ed0c6bb)
+++ kernel/arch/sparc64/Makefile.inc	(revision 44bec47f0eb1681725cbe7093467b13fbeda89c7)
@@ -36,6 +36,7 @@
 TOOLCHAIN_DIR = /usr/local/sparc64
 
-GCC_CFLAGS += -mcpu=ultrasparc -m64
-SUNCC_CFLAGS +=
+GCC_CFLAGS += -m64 -mcpu=ultrasparc 
+SUNCC_CFLAGS += -m64 -xarch=sparc -xregs=appl
+
 LFLAGS += -no-check-sections -N
 
