diff --git a/ReactOS-generic.rbuild b/ReactOS-generic.rbuild
index 540bb9ab594..e0b3a72a4ff 100644
--- a/ReactOS-generic.rbuild
+++ b/ReactOS-generic.rbuild
@@ -64,8 +64,8 @@
include/psdk
include/dxsdk
include/dxsdk
- include/crt
- include/crt/mingw32
+
+
include/ddk
include/GL
include/ndk
diff --git a/ReactOS-i386.rbuild b/ReactOS-i386.rbuild
index 8ddfbb57622..82ec6b20b9a 100644
--- a/ReactOS-i386.rbuild
+++ b/ReactOS-i386.rbuild
@@ -16,27 +16,41 @@
+
-O1
-
+
+
-O2
+
+
+ -Ox
+ -Os
+
+
+
+ -Ox
+ -Os
+
- -O3
+
+ -Ox
+ -Os
+
+ -Oy-
+ -GS-
-disable-stdcall-fixup
diff --git a/dll/win32/aclui/guid.c b/dll/win32/aclui/guid.c
index 791f78ed154..3c661f5c8cf 100644
--- a/dll/win32/aclui/guid.c
+++ b/dll/win32/aclui/guid.c
@@ -19,8 +19,11 @@
/* DO NOT USE THE PRECOMPILED HEADER FOR THIS FILE! */
-#include
#include
+
+#include
+#include
+
#include
#include
diff --git a/dll/win32/aclui/precomp.h b/dll/win32/aclui/precomp.h
index d300be0953b..48b4907c0c3 100644
--- a/dll/win32/aclui/precomp.h
+++ b/dll/win32/aclui/precomp.h
@@ -4,7 +4,7 @@
#include
#include
#include
-#include
+#include
#include
#include
#include
diff --git a/dll/win32/aclui/sidcache.c b/dll/win32/aclui/sidcache.c
index 5e8db066912..c5f49208947 100644
--- a/dll/win32/aclui/sidcache.c
+++ b/dll/win32/aclui/sidcache.c
@@ -178,7 +178,7 @@ OpenLSAPolicyHandle(IN LPWSTR SystemName,
if (SystemName != NULL && SystemName[0] != L'\0')
{
LsaSystemName.Buffer = SystemName;
- LsaSystemName.Length = wcslen(SystemName) * sizeof(WCHAR);
+ LsaSystemName.Length = (USHORT)(wcslen(SystemName) * sizeof(WCHAR)); /* FIXME: possible overflow */
LsaSystemName.MaximumLength = LsaSystemName.Length + sizeof(WCHAR);
psn = &LsaSystemName;
}
diff --git a/drivers/bus/acpi/include/actypes.h b/drivers/bus/acpi/include/actypes.h
index c2cc1125ebc..cd406f7f5e5 100644
--- a/drivers/bus/acpi/include/actypes.h
+++ b/drivers/bus/acpi/include/actypes.h
@@ -193,11 +193,11 @@ typedef UINT64 u64;
*/
#ifdef _MSC_VER
typedef ULONGLONG u64;
-typedef ULONG u32;
+//~ typedef ULONG u32;
typedef USHORT u16;
typedef UCHAR u8;
typedef LONGLONG s64;
-typedef LONG s32;
+//~ typedef LONG s32;
typedef SHORT s16;
typedef CHAR s8;
#endif
diff --git a/drivers/bus/acpi/include/platform/acenv.h b/drivers/bus/acpi/include/platform/acenv.h
index 9679222de8d..b73856be3bb 100644
--- a/drivers/bus/acpi/include/platform/acenv.h
+++ b/drivers/bus/acpi/include/platform/acenv.h
@@ -111,10 +111,10 @@
#elif _AED_EFI
#include "acefi.h"
-#elif WIN32
+#elif defined(WIN32)
#include "acwin.h"
-#elif __FreeBSD__
+#elif defined(__FreeBSD__)
#include "acfreebsd.h"
#else
diff --git a/include/psdk/intrin.h b/include/psdk/intrin.h.bak
similarity index 100%
rename from include/psdk/intrin.h
rename to include/psdk/intrin.h.bak
diff --git a/lib/3rdparty/mingw/wcrt1.c b/lib/3rdparty/mingw/wcrt1.c
index df1cec8e3b2..59385ffb00c 100644
--- a/lib/3rdparty/mingw/wcrt1.c
+++ b/lib/3rdparty/mingw/wcrt1.c
@@ -42,7 +42,7 @@ extern int wmain (int, wchar_t **, wchar_t **);
#define __UNKNOWN_APP 0
#define __CONSOLE_APP 1
#define __GUI_APP 2
-__MINGW_IMPORT void __set_app_type(int);
+_CRTIMP void __set_app_type(int);
#endif /* __MSVCRT__ */
/* Global _fmode for this .exe, not the one in msvcrt.dll,
@@ -181,7 +181,7 @@ _gnu_exception_handler (EXCEPTION_POINTERS * exception_data)
/*
* The function mainCRTStartup is the entry point for all console programs.
*/
-static void __attribute__((noreturn))
+static void __declspec(noreturn)
__mingw_wCRTStartup (void)
{
int nRet;
@@ -218,6 +218,7 @@ __mingw_wCRTStartup (void)
_pei386_runtime_relocator ();
#endif
+#if defined(__GNUC__)
#if defined(__i386__)
/* Align the stack to 16 bytes for the sake of SSE ops in main
or in functions inlined into main. */
@@ -230,6 +231,17 @@ __mingw_wCRTStartup (void)
asm __volatile__ ("li 0,15\n\tandc 1,1,0" : : : "r1");
#else
#error Unsupported architecture
+#endif
+#endif
+
+#if defined(_MSC_VER)
+#if defined(_M_IX86)
+ /* Align the stack to 16 bytes for the sake of SSE ops in main
+ or in functions inlined into main. */
+ __asm and esp, 0FFFFFFF0h
+#else
+#error Unsupported architecture
+#endif
#endif
/*