Index: CMakeCCompiler.cmake.in
===================================================================
--- CMakeCCompiler.cmake.in	(revision 5)
+++ CMakeCCompiler.cmake.in	(working copy)
@@ -20,11 +20,13 @@
 SET(CMAKE_C_SOURCE_FILE_EXTENSIONS c)
 SET(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
 SET(CMAKE_C_LINKER_PREFERENCE None)
-IF(UNIX)
-  SET(CMAKE_C_OUTPUT_EXTENSION .o)
-ELSE(UNIX)
-  SET(CMAKE_C_OUTPUT_EXTENSION .obj)
-ENDIF(UNIX)
+IF (NOT CMAKE_C_OUTPUT_EXTENSION)
+  IF(UNIX)
+    SET(CMAKE_C_OUTPUT_EXTENSION .o)
+  ELSE(UNIX)
+    SET(CMAKE_C_OUTPUT_EXTENSION .obj)
+  ENDIF(UNIX)
+ENDIF (NOT CMAKE_C_OUTPUT_EXTENSION)
 # save the size of void* in case where cache is removed
 # and the this file is still around
 SET(CMAKE_SIZEOF_VOID_P @CMAKE_SIZEOF_VOID_P@)
Index: CMakeCXXCompiler.cmake.in
===================================================================
--- CMakeCXXCompiler.cmake.in	(revision 5)
+++ CMakeCXXCompiler.cmake.in	(working copy)
@@ -20,11 +20,13 @@
 SET(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;H;o;O;obj;OBJ;def;DEF;rc;RC)
 SET(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm)
 SET(CMAKE_CXX_LINKER_PREFERENCE Prefered)
-IF(UNIX)
-  SET(CMAKE_CXX_OUTPUT_EXTENSION .o)
-ELSE(UNIX)
-  SET(CMAKE_CXX_OUTPUT_EXTENSION .obj)
-ENDIF(UNIX)
+IF (NOT CMAKE_CXX_OUTPUT_EXTENSION)
+  IF(UNIX)
+    SET(CMAKE_CXX_OUTPUT_EXTENSION .o)
+  ELSE(UNIX)
+    SET(CMAKE_CXX_OUTPUT_EXTENSION .obj)
+  ENDIF(UNIX)
+ENDIF (NOT CMAKE_CXX_OUTPUT_EXTENSION)
 # save the size of void* in case where cache is removed
 # and the this file is still around
 SET(CMAKE_SIZEOF_VOID_P @CMAKE_SIZEOF_VOID_P@)
Index: CMakeDetermineSystem.cmake
===================================================================
--- CMakeDetermineSystem.cmake	(revision 5)
+++ CMakeDetermineSystem.cmake	(working copy)
@@ -1,3 +1,9 @@
+#
+# Cross platform compiler support.
+#
+IF (CMAKE_CROSS_COMPILER)
+	INCLUDE (Platform/CrossCompiler)
+ENDIF (CMAKE_CROSS_COMPILER)
 
 # This module is used by the Makefile generator to determin the following variables:
 # CMAKE_SYSTEM_NAME - on unix this is uname -s, for windows it is Windows
Index: CMakeTestCCompiler.cmake
===================================================================
--- CMakeTestCCompiler.cmake	(revision 5)
+++ CMakeTestCCompiler.cmake	(working copy)
@@ -43,7 +43,9 @@
   ENDIF(C_TEST_WAS_RUN)
   INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
   # Check the size of void*.  This used to be "void *" but icc expands the *.
-  CHECK_TYPE_SIZE("void*"  CMAKE_SIZEOF_VOID_P)
+  IF (NOT CMAKE_SKIP_COMPATIBILITY_TESTS)
+     CHECK_TYPE_SIZE("void*"  CMAKE_SIZEOF_VOID_P)
+  ENDIF (NOT CMAKE_SKIP_COMPATIBILITY_TESTS)
   SET(CMAKE_C_COMPILER_WORKS 1 CACHE INTERNAL "")
   # re-configure this file CMakeCCompiler.cmake so that it gets
   # the value for CMAKE_SIZEOF_VOID_P
