mirror of
https://github.com/reactos/reactos.git
synced 2025-05-25 12:14:32 +00:00
The big RosBE 1.5 compatibility patch. You will need RosBE 1.5 from this point!
- Set the minimum GCC version to 4.4.0 and minimum Binutils version to 20091016. - Remove the -fno-unit-at-a-time hacks. - Remove dgorbachev's temporary hacks for user-mode C++ applications. - Merge ntoskrnl's "precomp.h" and "ntoskrnl.h" again, the PCH issues have been fixed. - Use our "ofmt_stub.a" to be compatible with newer MinGW Runtime versions. - Use LD's new -exclude-all-symbols option to not auto-export all symbols in case no DEF file or __declspec(dllexport) was specified. We used to patch our LD version to work around this problem. - Use LD's --start-group and --end-group parameters to allow a more flexible linking order. - Use GCC's -fno-set-stack-executable for amd64 and i386 targets to disable adding the __enable_execute_stack code. - Change the makefile's name to "makefile-$(ARCH).auto" for all architectures. - Remove some -Wno-error flags. See issue #4810 for more details. svn path=/trunk/; revision=45535
This commit is contained in:
parent
1bfa0a72c8
commit
75538f4c0a
35 changed files with 148 additions and 213 deletions
|
@ -169,11 +169,7 @@ else
|
|||
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)
|
||||
|
|
|
@ -120,11 +120,6 @@
|
|||
<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>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?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" />
|
||||
|
|
|
@ -196,8 +196,6 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
|
|||
|
||||
SaveSettings();
|
||||
|
||||
try { throw 0; } catch (int i) { } /* HACK */
|
||||
|
||||
return msg.wParam;
|
||||
}
|
||||
|
||||
|
|
|
@ -154,9 +154,6 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
|
|||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
try { throw 0; } catch (int i) { } /* HACK */
|
||||
|
||||
return msg.wParam;
|
||||
}
|
||||
|
||||
|
|
|
@ -69,6 +69,4 @@
|
|||
<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>
|
||||
|
|
|
@ -42,7 +42,4 @@
|
|||
<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>
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
<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>
|
||||
|
|
|
@ -59,5 +59,4 @@
|
|||
<file>token.c</file>
|
||||
</directory>
|
||||
<file>advapi32.rc</file>
|
||||
<compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
|
||||
</module>
|
||||
|
|
|
@ -42,6 +42,4 @@
|
|||
<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>
|
||||
|
|
|
@ -8,11 +8,9 @@
|
|||
<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="main">
|
||||
<file>dllmain.c</file>
|
||||
</directory>
|
||||
|
@ -49,6 +47,4 @@
|
|||
<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>
|
||||
|
|
|
@ -13,12 +13,8 @@
|
|||
<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>
|
||||
-->
|
||||
<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>
|
||||
|
|
|
@ -63,8 +63,6 @@
|
|||
<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>
|
||||
|
|
|
@ -5,12 +5,8 @@
|
|||
<library>epsapi</library>
|
||||
<library>pseh</library>
|
||||
<library>ntdll</library>
|
||||
<!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
|
||||
<pch>precomp.h</pch>
|
||||
-->
|
||||
<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>
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
<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>
|
||||
|
|
|
@ -39,8 +39,6 @@
|
|||
<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>
|
||||
|
|
|
@ -39,6 +39,4 @@
|
|||
<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>
|
||||
|
|
|
@ -20,6 +20,4 @@
|
|||
<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>
|
||||
|
|
|
@ -11,11 +11,9 @@
|
|||
<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="controls">
|
||||
<file>button.c</file>
|
||||
<file>combo.c</file>
|
||||
|
@ -76,6 +74,4 @@
|
|||
<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>
|
||||
|
|
|
@ -18,6 +18,4 @@
|
|||
<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>
|
||||
|
|
|
@ -8,6 +8,4 @@
|
|||
<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>
|
||||
|
|
|
@ -9,6 +9,4 @@
|
|||
<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>
|
||||
|
|
|
@ -8,6 +8,4 @@
|
|||
<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>
|
||||
|
|
|
@ -8,9 +8,7 @@
|
|||
<library>ntoskrnl</library>
|
||||
<library>hal</library>
|
||||
<directory name="include">
|
||||
<!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
|
||||
<pch>afd.h</pch>
|
||||
-->
|
||||
</directory>
|
||||
<directory name="afd">
|
||||
<file>bind.c</file>
|
||||
|
@ -27,6 +25,4 @@
|
|||
<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>
|
||||
|
|
|
@ -13,11 +13,9 @@
|
|||
<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="datalink">
|
||||
<file>lan.c</file>
|
||||
</directory>
|
||||
|
@ -36,6 +34,4 @@
|
|||
<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>
|
||||
|
|
|
@ -107,9 +107,5 @@
|
|||
<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>
|
||||
-->
|
||||
<!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
|
||||
<compilerflag compilerset="gcc">-fno-unit-at-a-time</compilerflag>
|
||||
</module>
|
||||
|
|
|
@ -1,5 +1,101 @@
|
|||
#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"
|
||||
|
||||
//
|
||||
// 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
|
||||
|
|
|
@ -1,98 +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 ******************************************************************/
|
||||
|
||||
/* 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"
|
||||
|
||||
//
|
||||
// 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
|
|
@ -30,11 +30,9 @@
|
|||
<library>bootvid</library>
|
||||
<library>wdmguid</library>
|
||||
<dependency>bugcodes</dependency>
|
||||
<!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
|
||||
<directory name="include">
|
||||
<pch>precomp.h</pch>
|
||||
<pch>ntoskrnl.h</pch>
|
||||
</directory>
|
||||
-->
|
||||
<directory name="ke">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
|
@ -502,7 +500,4 @@
|
|||
</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>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#include "gdidbg.c"
|
||||
|
||||
/* static */ /* FIXME: -fno-unit-at-a-time breaks this */
|
||||
static
|
||||
BOOL INTERNAL_CALL GDI_CleanupDummy(PVOID ObjectBody);
|
||||
|
||||
/** GLOBALS *******************************************************************/
|
||||
|
@ -140,7 +140,7 @@ DeAllocTypeDataDump(INT TypeInfo)
|
|||
/*
|
||||
* Dummy GDI Cleanup Callback
|
||||
*/
|
||||
/* static */ /* FIXME: -fno-unit-at-a-time breaks this */
|
||||
static
|
||||
BOOL INTERNAL_CALL
|
||||
GDI_CleanupDummy(PVOID ObjectBody)
|
||||
{
|
||||
|
|
|
@ -20,9 +20,7 @@
|
|||
<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>
|
||||
-->
|
||||
|
||||
<directory name="dib" root="intermediate">
|
||||
<file>dib8gen.c</file>
|
||||
|
@ -205,8 +203,5 @@
|
|||
<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>
|
||||
|
|
|
@ -12,6 +12,12 @@ CPPFLAG_UNICODE:=-DUNICODE -D_UNICODE
|
|||
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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -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 $$@
|
||||
$${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)
|
||||
|
|
|
@ -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" );
|
||||
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")
|
||||
{
|
||||
|
@ -844,7 +847,7 @@ MingwBackend::GetVersionString ( const string& versionCommand )
|
|||
buffer[i] = '\0';
|
||||
pclose ( fp );
|
||||
|
||||
char separators[] = " ()";
|
||||
char separators[] = " ()\n";
|
||||
char *token;
|
||||
char *prevtoken = NULL;
|
||||
|
||||
|
@ -888,7 +891,7 @@ MingwBackend::GetNetwideAssemblerVersion ( const string& nasmCommand )
|
|||
string
|
||||
MingwBackend::GetCompilerVersion ( const string& compilerCommand )
|
||||
{
|
||||
string versionCommand = ssprintf ( "%s --version gcc",
|
||||
string versionCommand = ssprintf ( "%s --version",
|
||||
compilerCommand.c_str (),
|
||||
NUL,
|
||||
NUL );
|
||||
|
@ -908,7 +911,7 @@ MingwBackend::GetBinutilsVersion ( const string& binutilsCommand )
|
|||
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;
|
||||
|
@ -970,27 +973,32 @@ MingwBackend::GetBinutilsVersionDate ( const string& binutilsCommand )
|
|||
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;
|
||||
}
|
||||
|
||||
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
|
||||
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
|
||||
|
|
|
@ -263,7 +263,7 @@ ${call RBUILD_intermediate_path_noext,$(2)}_c: $(2) $(3) $$(widl_TARGET) | ${cal
|
|||
$$(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)
|
||||
$${checkpoint} $$@>$(NUL)
|
||||
|
||||
${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
|
||||
|
||||
|
@ -279,7 +279,7 @@ ${call RBUILD_intermediate_path_noext,$(2)}_s: $(2) $(3) $$(widl_TARGET) | ${cal
|
|||
$$(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)
|
||||
$${checkpoint} $$@>$(NUL)
|
||||
|
||||
${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
|
||||
|
||||
|
@ -295,7 +295,7 @@ ${call RBUILD_intermediate_path_noext,$(2)}_p: $(2) $(3) $$(widl_TARGET) | ${cal
|
|||
$$(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)
|
||||
$${checkpoint} $$@>$(NUL)
|
||||
|
||||
${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
|
||||
|
||||
|
@ -308,7 +308,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 $$@ $$<
|
||||
|
||||
${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
|
||||
|
||||
|
|
Loading…
Reference in a new issue