[Mesa-dev] [PATCH] st/nine: specify WINAPI only for i386 and amd64

Axel Davy axel.davy at ens.fr
Mon Mar 21 12:45:02 UTC 2016


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



More information about the mesa-dev mailing list