Merge 45535 (the big RosBE 1.5 compatibility patch)
authorColin Finck <colin@reactos.org>
Wed, 10 Mar 2010 19:45:47 +0000 (19:45 +0000)
committerColin Finck <colin@reactos.org>
Wed, 10 Mar 2010 19:45:47 +0000 (19:45 +0000)
This branch HAS to be built with the current RosBE version now.

svn path=/branches/ros-branch-0_3_11-clt2010/; revision=46070

35 files changed:
reactos/Makefile
reactos/ReactOS-generic.rbuild
reactos/ReactOS-i386.rbuild
reactos/base/applications/games/solitaire/solitaire.cpp
reactos/base/applications/games/spider/spider.cpp
reactos/dll/directx/ddraw/ddraw.rbuild
reactos/dll/directx/wine/ddraw/ddraw.rbuild
reactos/dll/win32/actxprxy/actxprxy.rbuild
reactos/dll/win32/advapi32/advapi32.rbuild
reactos/dll/win32/crypt32/crypt32.rbuild
reactos/dll/win32/gdi32/gdi32.rbuild
reactos/dll/win32/kernel32/kernel32.rbuild
reactos/dll/win32/ole32/ole32.rbuild
reactos/dll/win32/psapi/psapi.rbuild
reactos/dll/win32/qmgrprxy/qmgrprxy.rbuild
reactos/dll/win32/rpcrt4/rpcrt4.rbuild
reactos/dll/win32/setupapi/setupapi.rbuild
reactos/dll/win32/syssetup/syssetup.rbuild
reactos/dll/win32/user32/user32.rbuild
reactos/dll/win32/wintrust/wintrust.rbuild
reactos/dll/win32/wlanapi/wlanapi.rbuild
reactos/drivers/input/kbdclass/kbdclass.rbuild
reactos/drivers/input/mouclass/mouclass.rbuild
reactos/drivers/network/afd/afd.rbuild
reactos/drivers/network/tcpip/tcpip.rbuild
reactos/lib/rtl/rtl.rbuild
reactos/ntoskrnl/include/ntoskrnl.h
reactos/ntoskrnl/include/precomp.h [deleted file]
reactos/ntoskrnl/ntoskrnl-generic.rbuild
reactos/subsystems/win32/win32k/objects/gdiobj.c
reactos/subsystems/win32/win32k/win32k.rbuild
reactos/tools/rbuild/backend/mingw/compilers/gcc.mak
reactos/tools/rbuild/backend/mingw/linkers/ld.mak
reactos/tools/rbuild/backend/mingw/mingw.cpp
reactos/tools/rbuild/backend/mingw/rules.mak

index a2a1847..9708ebe 100644 (file)
@@ -169,11 +169,7 @@ else
 endif
 
 ifeq ($(ROS_AUTOMAKE),)
 endif
 
 ifeq ($(ROS_AUTOMAKE),)
-  ifeq ($(ARCH),i386)
-    ROS_AUTOMAKE=makefile.auto
-  else
-    ROS_AUTOMAKE=makefile-$(ARCH).auto
-  endif
+  ROS_AUTOMAKE=makefile-$(ARCH).auto
 endif
 
 all: $(ROS_AUTOMAKE)
 endif
 
 all: $(ROS_AUTOMAKE)
index 86d3a2d..3604c5d 100644 (file)
                <compilerflag>-Wno-strict-aliasing</compilerflag>
                <compilerflag>-Wpointer-arith</compilerflag>
                <compilerflag>-Wno-multichar</compilerflag>
                <compilerflag>-Wno-strict-aliasing</compilerflag>
                <compilerflag>-Wpointer-arith</compilerflag>
                <compilerflag>-Wno-multichar</compilerflag>
-               <!--
-               <compilerflag>-Wno-error=uninitialized</compilerflag>
-               <compilerflag>-Wno-error=unused-function</compilerflag>
-               <compilerflag>-Wno-error=write-strings</compilerflag>
-               -->
                <!-- compilerflag>-H</compilerflag>    enable this for header traces -->
        </group>
 
                <!-- compilerflag>-H</compilerflag>    enable this for header traces -->
        </group>
 
index b6fc035..79da562 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
 <?xml version="1.0"?>
 <!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
-<project name="ReactOS" makefile="makefile.auto" xmlns:xi="http://www.w3.org/2001/XInclude">
+<project name="ReactOS" makefile="makefile-i386.auto" xmlns:xi="http://www.w3.org/2001/XInclude">
        <xi:include href="config.rbuild">
                <xi:fallback>
                        <xi:include href="config.template.rbuild" />
        <xi:include href="config.rbuild">
                <xi:fallback>
                        <xi:include href="config.template.rbuild" />
index e53efda..4046b92 100644 (file)
@@ -196,8 +196,6 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
 
     SaveSettings();
 
 
     SaveSettings();
 
-    try { throw 0; } catch (int i) { } /* HACK */
-
     return msg.wParam;
 }
 
     return msg.wParam;
 }
 
index b89d329..c09a485 100644 (file)
@@ -154,9 +154,6 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
             DispatchMessage(&msg);
         }
     }
             DispatchMessage(&msg);
         }
     }
-
-    try { throw 0; } catch (int i) { } /* HACK */
-
     return msg.wParam;
 }
 
     return msg.wParam;
 }
 
index 7a94f98..5a0a765 100644 (file)
@@ -70,6 +70,4 @@
                <file>DirectD3D3_Vtable.c</file>
                <file>DirectD3D7_Vtable.c</file>
        </directory>
                <file>DirectD3D3_Vtable.c</file>
                <file>DirectD3D7_Vtable.c</file>
        </directory>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 9a905af..f8d9c92 100644 (file)
@@ -42,7 +42,4 @@
        <file>viewport.c</file>
 
        <dependency>wineheaders</dependency>
        <file>viewport.c</file>
 
        <dependency>wineheaders</dependency>
-
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index d522e61..f5224b7 100644 (file)
@@ -16,7 +16,6 @@
        <library>rpcrt4</library>
        <library>pseh</library>
        <file>usrmarshal.c</file>
        <library>rpcrt4</library>
        <library>pseh</library>
        <file>usrmarshal.c</file>
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 <module name="actxprxy_interface" type="idlinterface">
        <file>actxprxy_servprov.idl</file>
 </module>
 <module name="actxprxy_interface" type="idlinterface">
        <file>actxprxy_servprov.idl</file>
index c0c3b6a..73e33f6 100644 (file)
@@ -60,5 +60,4 @@
                        <file>token.c</file>
        </directory>
        <file>advapi32.rc</file>
                        <file>token.c</file>
        </directory>
        <file>advapi32.rc</file>
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index a8e7c3e..b60c05d 100644 (file)
@@ -43,6 +43,4 @@
        <file>message.c</file>
        <file>crypt32.rc</file>
        <file>version.rc</file>
        <file>message.c</file>
        <file>crypt32.rc</file>
        <file>version.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 70cb357..8451477 100644 (file)
@@ -9,11 +9,9 @@
        <library>pseh</library>
        <library>dxguid</library>
        <library>ntdll</library>
        <library>pseh</library>
        <library>dxguid</library>
        <library>ntdll</library>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <directory name="include">
                <pch>precomp.h</pch>
        </directory>
        <directory name="include">
                <pch>precomp.h</pch>
        </directory>
-       -->
        <directory name="main">
                <file>dllmain.c</file>
        </directory>
        <directory name="main">
                <file>dllmain.c</file>
        </directory>
@@ -50,6 +48,4 @@
                <file>path.c</file>
        </directory>
        <file>gdi32.rc</file>
                <file>path.c</file>
        </directory>
        <file>gdi32.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 2c76915..b5a7036 100644 (file)
        <define name="_KERNEL32_" />
        <redefine name="_WIN32_WINNT">0x0600</redefine>
        <dependency>errcodes</dependency>
        <define name="_KERNEL32_" />
        <redefine name="_WIN32_WINNT">0x0600</redefine>
        <dependency>errcodes</dependency>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <pch>k32.h</pch>
        <pch>k32.h</pch>
-       -->
        <group compilerset="gcc">
        <group compilerset="gcc">
-               <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-               <compilerflag>-fno-unit-at-a-time</compilerflag>
                <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
                <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        </group>
                <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
                <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        </group>
index 517d3b4..85710a6 100644 (file)
@@ -64,8 +64,6 @@
        <file>dcom.idl</file>
        <file>irot.idl</file>
        <include base="ole32" root="intermediate">.</include>
        <file>dcom.idl</file>
        <file>irot.idl</file>
        <include base="ole32" root="intermediate">.</include>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 <module name="ole32_irot_server" type="rpcserver">
        <file>irot.idl</file>
 </module>
 <module name="ole32_irot_server" type="rpcserver">
        <file>irot.idl</file>
index ee2bdb8..5a5e9b8 100644 (file)
@@ -6,12 +6,8 @@
        <library>pseh</library>
        <library>ntdll</library>
        <library>kernel32</library>
        <library>pseh</library>
        <library>ntdll</library>
        <library>kernel32</library>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <pch>precomp.h</pch>
        <pch>precomp.h</pch>
-       -->
        <file>malloc.c</file>
        <file>psapi.c</file>
        <file>psapi.rc</file>
        <file>malloc.c</file>
        <file>psapi.c</file>
        <file>psapi.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 2c429a2..fc68891 100644 (file)
@@ -16,7 +16,6 @@
        <library>rpcrt4</library>
        <library>pseh</library>
        <file>version.rc</file> <!-- we need at least one file in the module -->
        <library>rpcrt4</library>
        <library>pseh</library>
        <file>version.rc</file> <!-- we need at least one file in the module -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 <module name="qmgrprxy_interface" type="idlinterface">
        <file>qmgrprxy.idl</file>
 </module>
 <module name="qmgrprxy_interface" type="idlinterface">
        <file>qmgrprxy.idl</file>
index 67f05ae..e6a6088 100644 (file)
@@ -40,8 +40,6 @@
        <file>rpcrt4.rc</file>
        <file>epm.idl</file>
        <include base="rpcrt4" root="intermediate">.</include>
        <file>rpcrt4.rc</file>
        <file>epm.idl</file>
        <include base="rpcrt4" root="intermediate">.</include>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 <module name="rpcrt4_epm_client" type="rpcclient">
        <file>epm.idl</file>
 </module>
 <module name="rpcrt4_epm_client" type="rpcclient">
        <file>epm.idl</file>
index e2d9014..d1774a4 100644 (file)
@@ -40,6 +40,4 @@
        <file>stubs.c</file>
        <file>rpc.c</file>
        <file>setupapi.rc</file>
        <file>stubs.c</file>
        <file>rpc.c</file>
        <file>setupapi.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index b6a23ab..4438c41 100644 (file)
@@ -21,6 +21,4 @@
        <file>logfile.c</file>
        <file>wizard.c</file>
        <file>syssetup.rc</file>
        <file>logfile.c</file>
        <file>wizard.c</file>
        <file>syssetup.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 20d37af..9b69c61 100644 (file)
        <library>pseh</library>
        <library>ntdll</library>
        <compilerflag compilerset="gcc">-fms-extensions</compilerflag>
        <library>pseh</library>
        <library>ntdll</library>
        <compilerflag compilerset="gcc">-fms-extensions</compilerflag>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <directory name="include">
                <pch>user32.h</pch>
        </directory>
        <directory name="include">
                <pch>user32.h</pch>
        </directory>
-       -->
        <directory name="controls">
                <file>button.c</file>
                <file>combo.c</file>
        <directory name="controls">
                <file>button.c</file>
                <file>combo.c</file>
@@ -77,6 +75,4 @@
                <file>winpos.c</file>
        </directory>
        <file>user32.rc</file>
                <file>winpos.c</file>
        </directory>
        <file>user32.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 2414bf5..e5ef880 100644 (file)
@@ -19,6 +19,4 @@
        <file>asn.c</file>
        <file>softpub.c</file>
        <file>version.rc</file>
        <file>asn.c</file>
        <file>softpub.c</file>
        <file>version.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 348a6ad..2a642bd 100644 (file)
@@ -9,6 +9,4 @@
        <library>pseh</library>
        <library>ntdll</library>
        <file>main.c</file>
        <library>pseh</library>
        <library>ntdll</library>
        <file>main.c</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 37fda36..480896a 100644 (file)
@@ -9,6 +9,4 @@
        <file>misc.c</file>
        <file>setup.c</file>
        <file>kbdclass.rc</file>
        <file>misc.c</file>
        <file>setup.c</file>
        <file>kbdclass.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index bcbcc4c..1b75a01 100644 (file)
@@ -8,6 +8,4 @@
        <file>misc.c</file>
        <file>mouclass.c</file>
        <file>mouclass.rc</file>
        <file>misc.c</file>
        <file>mouclass.c</file>
        <file>mouclass.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index aef02b4..6e56ce2 100644 (file)
@@ -8,9 +8,7 @@
        <library>ntoskrnl</library>
        <library>hal</library>
        <directory name="include">
        <library>ntoskrnl</library>
        <library>hal</library>
        <directory name="include">
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <pch>afd.h</pch>
        <pch>afd.h</pch>
-       -->
        </directory>
        <directory name="afd">
                <file>bind.c</file>
        </directory>
        <directory name="afd">
                <file>bind.c</file>
@@ -27,6 +25,4 @@
                <file>write.c</file>
        </directory>
        <file>afd.rc</file>
                <file>write.c</file>
        </directory>
        <file>afd.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 2a9f91c..42e91d2 100644 (file)
        <library>chew</library>
        <library>ntoskrnl</library>
        <library>hal</library>
        <library>chew</library>
        <library>ntoskrnl</library>
        <library>hal</library>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <directory name="include">
                <pch>precomp.h</pch>
        </directory>
        <directory name="include">
                <pch>precomp.h</pch>
        </directory>
-       -->
        <directory name="datalink">
                <file>lan.c</file>
        </directory>
        <directory name="datalink">
                <file>lan.c</file>
        </directory>
@@ -40,6 +38,4 @@
                <file>wait.c</file>
        </directory>
        <file>tcpip.rc</file>
                <file>wait.c</file>
        </directory>
        <file>tcpip.rc</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 6468203..25f3f81 100644 (file)
@@ -96,9 +96,5 @@
        <file>version.c</file>
        <file>wait.c</file>
        <file>workitem.c</file>
        <file>version.c</file>
        <file>wait.c</file>
        <file>workitem.c</file>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <pch>rtl.h</pch>
        <pch>rtl.h</pch>
-       -->
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </module>
index 71f4f65..bdedc9a 100644 (file)
@@ -1,5 +1,102 @@
-#include "precomp.h"
+/*
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS Kernel
+ * FILE:            ntoskrnl/include/ntoskrnl.h
+ * PURPOSE:         Main Kernel Header
+ * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
+ */
+
+/* INCLUDES ******************************************************************/
+
+/* ARM Bringup Hack */
+#ifdef _M_ARM
+#define DbgPrint DbgPrintEarly
+#endif
+
+/* Version Data */
+#undef __MSVCRT__
+#include <psdk/ntverp.h>
+
+/* DDK/IFS/NDK Headers */
+#define _REALLY_GET_CALLERS_CALLER
+#include <excpt.h>
+#include <ntdef.h>
+#undef DECLSPEC_IMPORT
+#define DECLSPEC_IMPORT
+#include <ntifs.h>
+#include <wdmguid.h>
+#include <arc/arc.h>
+#undef NTHALAPI
+#define NTHALAPI __declspec(dllimport)
+#include <ntndk.h>
+#undef TEXT
+#define TEXT(s) L##s
+#include <regstr.h>
+
+/* FIXME: Temporary until Winldr is used */
+#include <rosldr.h>
+
+/* C Headers */
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <malloc.h>
+#include <wchar.h>
+
+/* SEH support with PSEH */
+#include <pseh/pseh2.h>
+
+/* ReactOS Headers */
+#include <reactos/buildno.h>
+#include <reactos/bugcodes.h>
+
+/* SetupLDR Support */
+#include <arc/setupblk.h>
+
+/* KD Support */
+#define NOEXTAPI
+#include <windbgkd.h>
+#include <wdbgexts.h>
+#include <kddll.h>
+#ifndef _WINKD_
+#include <reactos/rossym.h>
+#endif
+
+/* PNP GUIDs */
+#include <umpnpmgr/sysguid.h>
+
+/* Internal Headers */
+#include "internal/ntoskrnl.h"
+#include "config.h"
 
 
-/* Headers that shouldn't be precompiled due to GCC bugs */
 #include <reactos/probe.h>
 #include "internal/probe.h"
 #include <reactos/probe.h>
 #include "internal/probe.h"
+#include "resource.h"
+
+//
+// Define the internal versions of external and public global data
+//
+#define IoFileObjectType                _IoFileObjectType
+#define PsThreadType                    _PsThreadType
+#define PsProcessType                   _PsProcessType
+#define ExEventObjectType               _ExEventObjectType
+#define ExSemaphoreObjectType           _ExSemaphoreObjectType
+#define KdDebuggerEnabled               _KdDebuggerEnabled
+#define KdDebuggerNotPresent            _KdDebuggerNotPresent
+#define NlsOemLeadByteInfo              _NlsOemLeadByteInfo
+extern PUSHORT _NlsOemLeadByteInfo;
+#define FsRtlLegalAnsiCharacterArray    _FsRtlLegalAnsiCharacterArray
+#undef LEGAL_ANSI_CHARACTER_ARRAY
+#undef NLS_MB_CODE_PAGE_TAG
+#undef NLS_OEM_LEAD_BYTE_INFO
+#define LEGAL_ANSI_CHARACTER_ARRAY      FsRtlLegalAnsiCharacterArray
+#define NLS_MB_CODE_PAGE_TAG            NlsMbOemCodePageTag
+#define NLS_OEM_LEAD_BYTE_INFO          _NlsOemLeadByteInfo
+#undef KD_DEBUGGER_ENABLED
+#undef KD_DEBUGGER_NOT_PRESENT
+#define KD_DEBUGGER_ENABLED             KdDebuggerEnabled
+#define KD_DEBUGGER_NOT_PRESENT         KdDebuggerNotPresent
+#define HalDispatchTable                _HalDispatchTable
+#undef HALDISPATCH
+#define HALDISPATCH                     (&HalDispatchTable)
+#define ExRaiseStatus RtlRaiseStatus
diff --git a/reactos/ntoskrnl/include/precomp.h b/reactos/ntoskrnl/include/precomp.h
deleted file mode 100644 (file)
index baa405d..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS Kernel
- * FILE:            ntoskrnl/include/ntoskrnl.h
- * PURPOSE:         Main Kernel Header
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- */
-
-/* INCLUDES ******************************************************************/
-
-/* Version Data */
-#undef __MSVCRT__
-#include <psdk/ntverp.h>
-
-/* DDK/IFS/NDK Headers */
-#define _REALLY_GET_CALLERS_CALLER
-#include <excpt.h>
-#include <ntdef.h>
-#undef DECLSPEC_IMPORT
-#define DECLSPEC_IMPORT
-#include <ntifs.h>
-#include <wdmguid.h>
-#include <arc/arc.h>
-#undef NTHALAPI
-#define NTHALAPI __declspec(dllimport)
-#include <ntndk.h>
-#undef TEXT
-#define TEXT(s) L##s
-#include <regstr.h>
-
-/* FIXME: Temporary until Winldr is used */
-#include <rosldr.h>
-
-/* C Headers */
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <malloc.h>
-#include <wchar.h>
-
-/* SEH support with PSEH */
-#include <pseh/pseh2.h>
-
-/* ReactOS Headers */
-#include <reactos/buildno.h>
-#include <reactos/bugcodes.h>
-
-/* SetupLDR Support */
-#include <arc/setupblk.h>
-
-/* KD Support */
-#define NOEXTAPI
-#include <windbgkd.h>
-#include <wdbgexts.h>
-#include <kddll.h>
-#ifndef _WINKD_
-#include <reactos/rossym.h>
-#endif
-
-/* PNP GUIDs */
-#include <umpnpmgr/sysguid.h>
-
-/* Internal Headers */
-#include "internal/ntoskrnl.h"
-#include "config.h"
-#include "resource.h"
-
-//
-// Define the internal versions of external and public global data
-//
-#define IoFileObjectType                _IoFileObjectType
-#define PsThreadType                    _PsThreadType
-#define PsProcessType                   _PsProcessType
-#define ExEventObjectType               _ExEventObjectType
-#define ExSemaphoreObjectType           _ExSemaphoreObjectType
-#define KdDebuggerEnabled               _KdDebuggerEnabled
-#define KdDebuggerNotPresent            _KdDebuggerNotPresent
-#define NlsOemLeadByteInfo              _NlsOemLeadByteInfo
-extern PUSHORT _NlsOemLeadByteInfo;
-#define FsRtlLegalAnsiCharacterArray    _FsRtlLegalAnsiCharacterArray
-#undef LEGAL_ANSI_CHARACTER_ARRAY
-#undef NLS_MB_CODE_PAGE_TAG
-#undef NLS_OEM_LEAD_BYTE_INFO
-#define LEGAL_ANSI_CHARACTER_ARRAY      FsRtlLegalAnsiCharacterArray
-#define NLS_MB_CODE_PAGE_TAG            NlsMbOemCodePageTag
-#define NLS_OEM_LEAD_BYTE_INFO          _NlsOemLeadByteInfo
-#undef KD_DEBUGGER_ENABLED
-#undef KD_DEBUGGER_NOT_PRESENT
-#define KD_DEBUGGER_ENABLED             KdDebuggerEnabled
-#define KD_DEBUGGER_NOT_PRESENT         KdDebuggerNotPresent
-#define HalDispatchTable                _HalDispatchTable
-#undef HALDISPATCH
-#define HALDISPATCH                     (&HalDispatchTable)
-#define ExRaiseStatus RtlRaiseStatus
index e5782b1..79e5677 100644 (file)
        <library>bootvid</library>
        <library>wdmguid</library>
        <dependency>bugcodes</dependency>
        <library>bootvid</library>
        <library>wdmguid</library>
        <dependency>bugcodes</dependency>
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <directory name="include">
        <directory name="include">
-               <pch>precomp.h</pch>
+               <pch>ntoskrnl.h</pch>
        </directory>
        </directory>
-       -->
        <directory name="ke">
                <if property="ARCH" value="i386">
                        <directory name="i386">
        <directory name="ke">
                <if property="ARCH" value="i386">
                        <directory name="i386">
        </directory>
        <file>ntoskrnl.rc</file>
        <linkerscript>ntoskrnl_$(ARCH).lnk</linkerscript>
        </directory>
        <file>ntoskrnl.rc</file>
        <linkerscript>ntoskrnl_$(ARCH).lnk</linkerscript>
-
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </group>
 </group>
index a99531c..9cde646 100644 (file)
@@ -30,7 +30,7 @@
 
 #include "gdidbg.c"
 
 
 #include "gdidbg.c"
 
-/* static */ /* FIXME: -fno-unit-at-a-time breaks this */
+static
 BOOL INTERNAL_CALL GDI_CleanupDummy(PVOID ObjectBody);
 
 /** GLOBALS *******************************************************************/
 BOOL INTERNAL_CALL GDI_CleanupDummy(PVOID ObjectBody);
 
 /** GLOBALS *******************************************************************/
@@ -87,7 +87,7 @@ static LARGE_INTEGER ShortDelay;
 /*
  * Dummy GDI Cleanup Callback
  */
 /*
  * Dummy GDI Cleanup Callback
  */
-/* static */ /* FIXME: -fno-unit-at-a-time breaks this */
+static
 BOOL INTERNAL_CALL
 GDI_CleanupDummy(PVOID ObjectBody)
 {
 BOOL INTERNAL_CALL
 GDI_CleanupDummy(PVOID ObjectBody)
 {
index b5658ba..eaefbff 100644 (file)
@@ -20,9 +20,7 @@
        <compilerflag compilerset="msc">/wd4276</compilerflag>
        <define name="LANGPACK" />
        <define name="_WIN32K_" />
        <compilerflag compilerset="msc">/wd4276</compilerflag>
        <define name="LANGPACK" />
        <define name="_WIN32K_" />
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <pch>pch.h</pch>
        <pch>pch.h</pch>
-       -->
 
        <directory name="dib" root="intermediate">
                <file>dib8gen.c</file>
 
        <directory name="dib" root="intermediate">
                <file>dib8gen.c</file>
                <file>stubs.c</file>
                <file>umpdstubs.c</file>
        </directory>
                <file>stubs.c</file>
                <file>umpdstubs.c</file>
        </directory>
-
-       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
-       <compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
 </module>
 </group>
 </module>
 </group>
index c8c09bd..d9a1250 100644 (file)
@@ -12,6 +12,12 @@ CPPFLAG_UNICODE:=-DUNICODE -D_UNICODE
 BUILTIN_CFLAGS+= -fno-optimize-sibling-calls
 BUILTIN_CXXFLAGS+= -fno-optimize-sibling-calls
 
 BUILTIN_CFLAGS+= -fno-optimize-sibling-calls
 BUILTIN_CXXFLAGS+= -fno-optimize-sibling-calls
 
+# Add -fno-set-stack-executable required for x86/MinGW
+ifneq (,$(filter $(ARCH),amd64 i386))
+       BUILTIN_CFLAGS+= -fno-set-stack-executable
+       BUILTIN_CXXFLAGS+= -fno-set-stack-executable
+endif
+
 #(module, source, dependencies, cflags, output)
 define RBUILD_DEPENDS
 
 #(module, source, dependencies, cflags, output)
 define RBUILD_DEPENDS
 
index dbba33e..cbcc2bc 100644 (file)
@@ -1,5 +1,6 @@
-LDFLAG_DLL:=-shared
-LDFLAG_DRIVER:=-shared --subsystem=native
+# -exclude-all-symbols disables autoexporting all symbols *if none were found* (either in a DEF file or using __declspec(dllexport)
+LDFLAG_DLL:=-shared -exclude-all-symbols
+LDFLAG_DRIVER:=-shared --subsystem=native -exclude-all-symbols
 LDFLAG_NOSTDLIB:=-nostartfiles -nostdlib
 LDFLAG_CONSOLE:=--subsystem=console
 LDFLAG_WINDOWS:=--subsystem=windows
 LDFLAG_NOSTDLIB:=-nostartfiles -nostdlib
 LDFLAG_CONSOLE:=--subsystem=console
 LDFLAG_WINDOWS:=--subsystem=windows
@@ -40,7 +41,7 @@ $(1)_CLEANFILES+=${call RBUILD_intermediate_dir,$(5)}$$(SEP)$(1)_objs.rsp
 $(5): ${call RBUILD_intermediate_dir,$(5)}$$(SEP)$(1)_objs.rsp $(7) $(3) $$(RSYM_TARGET) $$(PEFIXUP_TARGET) | ${call RBUILD_dir,$(5)}
        $$(ECHO_LD)
 #~     $${ld} --entry=$(8) --image-base=$(9) @${call RBUILD_intermediate_dir,$(5)}$$(SEP)$(1)_objs.rsp $(7) ${call RBUILD_ldflags,$(1),$(4)} -o $$@
 $(5): ${call RBUILD_intermediate_dir,$(5)}$$(SEP)$(1)_objs.rsp $(7) $(3) $$(RSYM_TARGET) $$(PEFIXUP_TARGET) | ${call RBUILD_dir,$(5)}
        $$(ECHO_LD)
 #~     $${ld} --entry=$(8) --image-base=$(9) @${call RBUILD_intermediate_dir,$(5)}$$(SEP)$(1)_objs.rsp $(7) ${call RBUILD_ldflags,$(1),$(4)} -o $$@
-       $${ld} --entry=$(8) --image-base=$(9) @${call RBUILD_intermediate_dir,$(5)}$$(SEP)$(1)_objs.rsp $(10) $(7) $(10) ${call RBUILD_ldflags,$(1),$(4)} -o $$@
+       $${ld} --entry=$(8) --image-base=$(9) @${call RBUILD_intermediate_dir,$(5)}$$(SEP)$(1)_objs.rsp --start-group $(10) $(7) --end-group ${call RBUILD_ldflags,$(1),$(4)} -o $$@
 ifneq ($(or $(6),$$(MODULETYPE$$($(1)_TYPE)_KMODE)),)
        $$(ECHO_PEFIXUP)
        $$(Q)$$(PEFIXUP_TARGET) $$@ $(if $(6),-exports) $$(if $$(MODULETYPE$($(1)_TYPE)_KMODE),-sections)
 ifneq ($(or $(6),$$(MODULETYPE$$($(1)_TYPE)_KMODE)),)
        $$(ECHO_PEFIXUP)
        $$(Q)$$(PEFIXUP_TARGET) $$@ $(if $(6),-exports) $$(if $$(MODULETYPE$($(1)_TYPE)_KMODE),-sections)
index aa4c3fe..ab66fb2 100644 (file)
@@ -480,8 +480,11 @@ MingwBackend::GenerateGlobalVariables () const
                fputs ( "BUILTIN_CXXINCLUDES+= $(TARGET_CPPFLAGS)\n", fMakefile );
 
                fprintf ( fMakefile, "PROJECT_CCLIBS := \"$(shell ${TARGET_CC} -print-libgcc-file-name)\"\n" );
                fputs ( "BUILTIN_CXXINCLUDES+= $(TARGET_CPPFLAGS)\n", fMakefile );
 
                fprintf ( fMakefile, "PROJECT_CCLIBS := \"$(shell ${TARGET_CC} -print-libgcc-file-name)\"\n" );
-               fprintf ( fMakefile, "PROJECT_CXXLIBS := \"$(shell ${TARGET_CPP} -print-file-name=libstdc++.a)\" \"$(shell ${TARGET_CPP} -print-file-name=libgcc.a)\" \"$(shell ${TARGET_CPP} -print-file-name=libmingw32.a)\" \"$(shell ${TARGET_CPP} -print-file-name=libmingwex.a)\" \"$(shell ${TARGET_CPP} -print-file-name=libcoldname.a)\"\n" );
-
+               
+               // We use our proprietary "ofmt_stub.a" to implement a stub for "_get_output_format" required by "libmingwex.a".
+               // This archive just contains the compiled "ofmt_stub.s" supplied with the MinGW Runtime sources.
+               fprintf ( fMakefile, "PROJECT_CXXLIBS := \"$(shell ${TARGET_CPP} -print-file-name=libstdc++.a)\" \"$(shell ${TARGET_CPP} -print-libgcc-file-name)\" \"$(shell ${TARGET_CPP} -print-file-name=libmingw32.a)\" \"$(shell ${TARGET_CPP} -print-file-name=libmingwex.a)\" \"$(shell ${TARGET_CPP} -print-file-name=ofmt_stub.a)\" \"$(shell ${TARGET_CPP} -print-file-name=libcoldname.a)\"\n" );
+               
                /* hack to get libgcc_eh.a, should check mingw version or something */
                if (Environment::GetArch() == "amd64")
                {
                /* hack to get libgcc_eh.a, should check mingw version or something */
                if (Environment::GetArch() == "amd64")
                {
@@ -844,7 +847,7 @@ MingwBackend::GetVersionString ( const string& versionCommand )
        buffer[i] = '\0';
        pclose ( fp );
 
        buffer[i] = '\0';
        pclose ( fp );
 
-       char separators[] = " ()";
+       char separators[] = " ()\n";
        char *token;
        char *prevtoken = NULL;
 
        char *token;
        char *prevtoken = NULL;
 
@@ -888,7 +891,7 @@ MingwBackend::GetNetwideAssemblerVersion ( const string& nasmCommand )
 string
 MingwBackend::GetCompilerVersion ( const string& compilerCommand )
 {
 string
 MingwBackend::GetCompilerVersion ( const string& compilerCommand )
 {
-       string versionCommand = ssprintf ( "%s --version gcc",
+       string versionCommand = ssprintf ( "%s --version",
                                           compilerCommand.c_str (),
                                           NUL,
                                           NUL );
                                           compilerCommand.c_str (),
                                           NUL,
                                           NUL );
@@ -908,7 +911,7 @@ MingwBackend::GetBinutilsVersion ( const string& binutilsCommand )
 bool
 MingwBackend::IsSupportedCompilerVersion ( const string& compilerVersion )
 {
 bool
 MingwBackend::IsSupportedCompilerVersion ( const string& compilerVersion )
 {
-       if ( strcmp ( compilerVersion.c_str (), "3.4.2") < 0 )
+       if ( strcmp ( compilerVersion.c_str (), "4.4.0") < 0 )
                return false;
        else
                return true;
                return false;
        else
                return true;
@@ -970,27 +973,32 @@ MingwBackend::GetBinutilsVersionDate ( const string& binutilsCommand )
 bool
 MingwBackend::IsSupportedBinutilsVersion ( const string& binutilsVersion )
 {
 bool
 MingwBackend::IsSupportedBinutilsVersion ( const string& binutilsVersion )
 {
-       if ( manualBinutilsSetting ) return true;
-
-       /* linux */
-       if ( binutilsVersion.find('.') != std::string::npos )
+       int digit = binutilsVersion.find_last_of(".");
+       if(digit == -1)
        {
        {
-               /* TODO: blacklist versions on version number instead of date */
-               return true;
-       }
-
-       /*
-        * - Binutils older than 2003/10/01 have broken windres which can't handle
-        *   icons with alpha channel.
-        * - Binutils between 2004/09/02 and 2004/10/08 have broken handling of
-        *   forward exports in dlltool.
-        */
-       if ( ( ( strcmp ( binutilsVersion.c_str (), "20040902") >= 0 ) &&
-              ( strcmp ( binutilsVersion.c_str (), "20041008") <= 0 ) ) ||
-              ( strcmp ( binutilsVersion.c_str (), "20031001") < 0 ) )
+               printf("Unable to detect binutils version!\n");
                return false;
                return false;
+       }
+       
+       string date = string(binutilsVersion, digit + 1);
+       if(date.length() == 8)
+       {
+               /* This is a real date in the format YYYYMMDD.
+                  Check whether we have at least Binutils 20091016 (the oldest one
+                  we were still using after upgrading to RosBE 1.5). */
+               if(strcmp(date.c_str(), "20091016") < 0)
+                       return false;
+       }
        else
        else
-               return true;
+       {
+               /* This is no date, so binutilsVersion should just contain the version
+                  number.
+                  Binutils 2.20 will hopefully contain the required features. */
+               if(strcmp(binutilsVersion.c_str(), "2.20") < 0)
+                       return false;
+       }
+       
+       return true;
 }
 
 void
 }
 
 void
index 40e30f7..f76e9b0 100644 (file)
@@ -259,7 +259,7 @@ ${call RBUILD_intermediate_path_noext,$(2)}_c.c ${call RBUILD_intermediate_path_
        $$(ECHO_WIDL)
        $$(Q)$$(widl_TARGET) ${call RBUILD_midlflags,$(1),$(4),-I${call RBUILD_dir,$(2)}} -h -H ${call RBUILD_intermediate_path_noext,$(2)}_c.h -c -C ${call RBUILD_intermediate_path_noext,$(2)}_c.c $(2)
 
        $$(ECHO_WIDL)
        $$(Q)$$(widl_TARGET) ${call RBUILD_midlflags,$(1),$(4),-I${call RBUILD_dir,$(2)}} -h -H ${call RBUILD_intermediate_path_noext,$(2)}_c.h -c -C ${call RBUILD_intermediate_path_noext,$(2)}_c.c $(2)
 
-${call RBUILD_CC,$(1),${call RBUILD_intermediate_path_noext,$(2)}_c.c,,-fno-unit-at-a-time,${call RBUILD_intermediate_path_noext,$(2)}_c.o}
+${call RBUILD_CC,$(1),${call RBUILD_intermediate_path_noext,$(2)}_c.c,,,${call RBUILD_intermediate_path_noext,$(2)}_c.o}
 
 endef
 
 
 endef
 
@@ -272,7 +272,7 @@ ${call RBUILD_intermediate_path_noext,$(2)}_s.c ${call RBUILD_intermediate_path_
        $$(ECHO_WIDL)
        $$(Q)$$(widl_TARGET) ${call RBUILD_midlflags,$(1),$(4),-I${call RBUILD_dir,$(2)}} -h -H ${call RBUILD_intermediate_path_noext,$(2)}_s.h -s -S ${call RBUILD_intermediate_path_noext,$(2)}_s.c $(2)
 
        $$(ECHO_WIDL)
        $$(Q)$$(widl_TARGET) ${call RBUILD_midlflags,$(1),$(4),-I${call RBUILD_dir,$(2)}} -h -H ${call RBUILD_intermediate_path_noext,$(2)}_s.h -s -S ${call RBUILD_intermediate_path_noext,$(2)}_s.c $(2)
 
-${call RBUILD_CC,$(1),${call RBUILD_intermediate_path_noext,$(2)}_s.c,,-fno-unit-at-a-time,${call RBUILD_intermediate_path_noext,$(2)}_s.o}
+${call RBUILD_CC,$(1),${call RBUILD_intermediate_path_noext,$(2)}_s.c,,,${call RBUILD_intermediate_path_noext,$(2)}_s.o}
 
 endef
 
 
 endef
 
@@ -285,7 +285,7 @@ ${call RBUILD_intermediate_path_noext,$(2)}_p.c ${call RBUILD_intermediate_path_
        $$(ECHO_WIDL)
        $$(Q)$$(widl_TARGET) ${call RBUILD_midlflags,$(1),$(4),-I${call RBUILD_dir,$(2)}} -h -H ${call RBUILD_intermediate_path_noext,$(2)}_p.h -p -P ${call RBUILD_intermediate_path_noext,$(2)}_p.c $(2)
 
        $$(ECHO_WIDL)
        $$(Q)$$(widl_TARGET) ${call RBUILD_midlflags,$(1),$(4),-I${call RBUILD_dir,$(2)}} -h -H ${call RBUILD_intermediate_path_noext,$(2)}_p.h -p -P ${call RBUILD_intermediate_path_noext,$(2)}_p.c $(2)
 
-${call RBUILD_CC,$(1),${call RBUILD_intermediate_path_noext,$(2)}_p.c,,-fno-unit-at-a-time,${call RBUILD_intermediate_path_noext,$(2)}_p.o}
+${call RBUILD_CC,$(1),${call RBUILD_intermediate_path_noext,$(2)}_p.c,,,${call RBUILD_intermediate_path_noext,$(2)}_p.o}
 
 endef
 
 
 endef
 
@@ -298,7 +298,7 @@ ${call RBUILD_intermediate_path_noext,$(2)}_i.c: $(2) $(3) $$(widl_TARGET) | ${c
        $$(ECHO_WIDL)
        $$(Q)$$(widl_TARGET) ${call RBUILD_midlflags,$(1),$(4),-I${call RBUILD_dir,$(2)}} -u -U $$@ $$<
 
        $$(ECHO_WIDL)
        $$(Q)$$(widl_TARGET) ${call RBUILD_midlflags,$(1),$(4),-I${call RBUILD_dir,$(2)}} -u -U $$@ $$<
 
-${call RBUILD_CC,$(1),${call RBUILD_intermediate_path_noext,$(2)}_i.c,,-fno-unit-at-a-time,${call RBUILD_intermediate_path_noext,$(2)}_i.o}
+${call RBUILD_CC,$(1),${call RBUILD_intermediate_path_noext,$(2)}_i.c,,,${call RBUILD_intermediate_path_noext,$(2)}_i.o}
 
 endef
 
 
 endef