Index: Makefile.config
===================================================================
--- Makefile.config	(revision 807d2d4b1533bbdc93a8288995fc3fa955e97bf9)
+++ Makefile.config	(revision b9b103d37b95962be0d0b96fa9f55fb8cceaca2a)
@@ -8,4 +8,7 @@
 # If this is yes, then the native compiler will be used instead of cross compiler
 NATIVE_COMPILER=no
+
+# If this is yes, strong CPU ordering is assumed
+STRONG_ORDERING=no
 
 # Support for symetric multiprocessors
Index: arch/ia32/Makefile.inc
===================================================================
--- arch/ia32/Makefile.inc	(revision 807d2d4b1533bbdc93a8288995fc3fa955e97bf9)
+++ arch/ia32/Makefile.inc	(revision b9b103d37b95962be0d0b96fa9f55fb8cceaca2a)
@@ -23,10 +23,14 @@
 DEFS:=-DARCH=$(ARCH) -DFPU_LAZY
 
+ifeq (${STRONG_ORDERING},yes)
+	DEFS+=-D__STRONG_ORDERING__
+endif
+
 ifdef SMP
-DEFS+=-D$(SMP)
+	DEFS+=-D$(SMP)
 endif
 
 ifdef HT
-DEFS+=-D$(HT)
+	DEFS+=-D$(HT)
 endif
 
Index: arch/ia32/include/barrier.h
===================================================================
--- arch/ia32/include/barrier.h	(revision 807d2d4b1533bbdc93a8288995fc3fa955e97bf9)
+++ arch/ia32/include/barrier.h	(revision b9b103d37b95962be0d0b96fa9f55fb8cceaca2a)
@@ -44,4 +44,12 @@
 #define CS_LEAVE_BARRIER()	__asm__ volatile ("" ::: "memory")
 
+#ifdef __STRONG_ORDERING__
+
+#define memory_barrier()
+#define read_barrier()
+#define write_barrier()
+
+#else
+
 #define memory_barrier()	__asm__ volatile ("mfence\n" ::: "memory")
 #define read_barrier()		__asm__ volatile ("sfence\n" ::: "memory")
@@ -49,2 +57,4 @@
 
 #endif
+
+#endif
Index: build.ia32
===================================================================
--- build.ia32	(revision 807d2d4b1533bbdc93a8288995fc3fa955e97bf9)
+++ build.ia32	(revision b9b103d37b95962be0d0b96fa9f55fb8cceaca2a)
@@ -3,8 +3,19 @@
 COMPILER=""
 
-if [ "$1" == "native" ];
-then
-	COMPILER="NATIVE_COMPILER=yes";
-fi;
+while [ "$#" -gt 0 ]; do
+	case "$1" in
+		native)
+			COMPILER="$COMPILER NATIVE_COMPILER=yes"
+			;;
+		strong)
+			COMPILER="$COMPILER STRONG_ORDERING=yes"
+			;;
+		*)
+			echo "Supported arguments: native strong"
+			exit 1
+			;;
+	esac
+	shift
+done
 
 make all ARCH=ia32 $COMPILER
