Hi,

This looks good to me, but I'm not expert it compilers at all,
could someone with more experience look at it ?

Axel

On 17/03/2016 20:12, Christian Schmidbauer wrote :
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.
---
  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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to