Mesa (11.2): st/nine: specify WINAPI only for i386 and amd64
Emil Velikov
evelikov at kemper.freedesktop.org
Thu Apr 14 19:39:06 UTC 2016
Module: Mesa
Branch: 11.2
Commit: c5f8a417102b1dcc2fd5708fad8a5e31bf7ce779
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5f8a417102b1dcc2fd5708fad8a5e31bf7ce779
Author: Christian Schmidbauer <ch.schmidbauer at gmail.com>
Date: Sun Mar 13 22:50:31 2016 +0100
st/nine: specify WINAPI only for i386 and amd64
Currently mesa fails building with the x32 abi as ms_abi is not defined
in such a case.
The patch uses ms_abi only for amd64 targets and stdcall only for i386
targets to be sure that those are defined.
This patch additionally checks for __GNUC__ to guarantee that
__attribute__ is available.
CC: "11.1 11.2" <mesa-stable at lists.freedesktop.org>
Signed-off-by: Christian Schmidbauer <ch.schmidbauer at gmail.com>
Acked-by: Axel Davy <axel.davy at ens.fr>
(cherry picked from commit 2a529a8ac810b3b40e7a9a071d9544b168928b94)
---
include/D3D9/d3d9types.h | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/include/D3D9/d3d9types.h b/include/D3D9/d3d9types.h
index d74ce80..e0b8652 100644
--- a/include/D3D9/d3d9types.h
+++ b/include/D3D9/d3d9types.h
@@ -178,11 +178,17 @@ typedef struct _RGNDATA {
#undef WINAPI
#endif /* WINAPI*/
-#if defined(__x86_64__) || defined(_M_X64)
-#define WINAPI __attribute__((ms_abi))
-#else /* x86_64 */
-#define WINAPI __attribute__((__stdcall__))
-#endif /* x86_64 */
+#ifdef __GNUC__
+ #if (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64)
+ #define WINAPI __attribute__((ms_abi))
+ #elif defined(__i386) || defined(_M_IX86)
+ #define WINAPI __attribute__((__stdcall__))
+ #else /* neither amd64 nor i386 */
+ #define WINAPI
+ #endif
+#else /* __GNUC__ */
+ #define WINAPI
+#endif
/* Implementation caps */
#define D3DPRESENT_BACK_BUFFERS_MAX 3
More information about the mesa-commit
mailing list