From 188a41ee740d05a0847525958cc63e48ac99e7bc Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Sun, 16 Jun 2024 06:14:17 +0200 Subject: [PATCH] fix mingw build --- src/IDirect3D/IDirect3D.c | 7 +++++++ src/IDirect3D/IDirect3D2.c | 7 +++++++ src/IDirect3D/IDirect3D3.c | 7 +++++++ src/IDirect3D/IDirect3D7.c | 7 +++++++ src/IDirectDraw/IDirectDraw.c | 8 ++++++++ src/IDirectDraw/IDirectDrawClipper.c | 7 +++++++ src/IDirectDraw/IDirectDrawGammaControl.c | 7 +++++++ src/IDirectDraw/IDirectDrawPalette.c | 7 +++++++ src/IDirectDraw/IDirectDrawSurface.c | 7 +++++++ src/directinput.c | 7 +++++++ src/winapi_hooks.c | 7 +++++++ 11 files changed, 78 insertions(+) diff --git a/src/IDirect3D/IDirect3D.c b/src/IDirect3D/IDirect3D.c index d1e6cc9..7702407 100644 --- a/src/IDirect3D/IDirect3D.c +++ b/src/IDirect3D/IDirect3D.c @@ -2,7 +2,14 @@ #include "IDirect3D.h" #include "debug.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ HRESULT __stdcall IDirect3D__QueryInterface(IDirect3DImpl* This, REFIID riid, void** obj) { diff --git a/src/IDirect3D/IDirect3D2.c b/src/IDirect3D/IDirect3D2.c index d25c2f5..ed8c5dc 100644 --- a/src/IDirect3D/IDirect3D2.c +++ b/src/IDirect3D/IDirect3D2.c @@ -2,7 +2,14 @@ #include "IDirect3D.h" #include "debug.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ HRESULT __stdcall IDirect3D2__QueryInterface(IDirect3D2Impl* This, REFIID riid, void** obj) { diff --git a/src/IDirect3D/IDirect3D3.c b/src/IDirect3D/IDirect3D3.c index 736572a..38d6d64 100644 --- a/src/IDirect3D/IDirect3D3.c +++ b/src/IDirect3D/IDirect3D3.c @@ -2,7 +2,14 @@ #include "IDirect3D.h" #include "debug.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ HRESULT __stdcall IDirect3D3__QueryInterface(IDirect3D3Impl* This, REFIID riid, void** obj) { diff --git a/src/IDirect3D/IDirect3D7.c b/src/IDirect3D/IDirect3D7.c index 364b957..85eb13e 100644 --- a/src/IDirect3D/IDirect3D7.c +++ b/src/IDirect3D/IDirect3D7.c @@ -2,7 +2,14 @@ #include "IDirect3D.h" #include "debug.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ HRESULT __stdcall IDirect3D7__QueryInterface(IDirect3D7Impl* This, REFIID riid, void** obj) { diff --git a/src/IDirectDraw/IDirectDraw.c b/src/IDirectDraw/IDirectDraw.c index 6c58b22..8295bbd 100644 --- a/src/IDirectDraw/IDirectDraw.c +++ b/src/IDirectDraw/IDirectDraw.c @@ -12,7 +12,15 @@ #include "hook.h" #include "config.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ + HRESULT __stdcall IDirectDraw__QueryInterface(IDirectDrawImpl* This, REFIID riid, LPVOID FAR* ppvObj) { diff --git a/src/IDirectDraw/IDirectDrawClipper.c b/src/IDirectDraw/IDirectDrawClipper.c index 9dba68f..7270fd2 100644 --- a/src/IDirectDraw/IDirectDrawClipper.c +++ b/src/IDirectDraw/IDirectDrawClipper.c @@ -3,7 +3,14 @@ #include "ddclipper.h" #include "debug.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ HRESULT __stdcall IDirectDrawClipper__QueryInterface(IDirectDrawClipperImpl* This, REFIID riid, LPVOID FAR* ppvObj) { diff --git a/src/IDirectDraw/IDirectDrawGammaControl.c b/src/IDirectDraw/IDirectDrawGammaControl.c index 71f10d9..d234ba3 100644 --- a/src/IDirectDraw/IDirectDrawGammaControl.c +++ b/src/IDirectDraw/IDirectDrawGammaControl.c @@ -2,7 +2,14 @@ #include "IDirectDrawGammaControl.h" #include "debug.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ HRESULT __stdcall IDirectDrawGammaControl__QueryInterface(IDirectDrawGammaControlImpl* This, REFIID riid, LPVOID FAR* ppvObj) { diff --git a/src/IDirectDraw/IDirectDrawPalette.c b/src/IDirectDraw/IDirectDrawPalette.c index 6d221b6..89c8f2b 100644 --- a/src/IDirectDraw/IDirectDrawPalette.c +++ b/src/IDirectDraw/IDirectDrawPalette.c @@ -4,7 +4,14 @@ #include "ddsurface.h" #include "debug.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ HRESULT __stdcall IDirectDrawPalette__QueryInterface(IDirectDrawPaletteImpl* This, REFIID riid, LPVOID FAR* ppvObj) { diff --git a/src/IDirectDraw/IDirectDrawSurface.c b/src/IDirectDraw/IDirectDrawSurface.c index 48dbca4..8624667 100644 --- a/src/IDirectDraw/IDirectDrawSurface.c +++ b/src/IDirectDraw/IDirectDrawSurface.c @@ -6,7 +6,14 @@ #include "dd.h" #include "debug.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ HRESULT __stdcall IDirectDrawSurface__QueryInterface(IDirectDrawSurfaceImpl* This, REFIID riid, LPVOID FAR* ppvObj) { diff --git a/src/directinput.c b/src/directinput.c index 12382b2..b542bc2 100644 --- a/src/directinput.c +++ b/src/directinput.c @@ -8,7 +8,14 @@ #include "mouse.h" #include "config.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ #ifdef _MSC_VER #include "detours.h" diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c index b1b3ab1..807e3cf 100644 --- a/src/winapi_hooks.c +++ b/src/winapi_hooks.c @@ -20,7 +20,14 @@ #include "hook.h" #include "directinput.h" +#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */ +#undef _ReturnAddress +#undef _AddressOfReturnAddress +#define _ReturnAddress() __builtin_return_address(0) +#define _AddressOfReturnAddress() __builtin_frame_address (0) +#else #pragma intrinsic(_ReturnAddress) +#endif /* __GNUC__ */ BOOL WINAPI fake_GetCursorPos(LPPOINT lpPoint) {