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

Steven Newbury steve at snewbury.org.uk
Mon Mar 21 13:10:07 UTC 2016


On Thu, 2016-03-17 at 20:12 +0100, 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.
> 
Being quite involved with with getting things to build on x32 I have
encountered this.  The patch looks correct

Does an x32 build of st/nine make any sense?  As far as I know, st/nine
deliberately works only with Wine which only exists in x86 and amd64
flavours (amd ARM?), or unless this has changed and there's an
intention of creating a native d3d9 library wouldn't it be better to
simply prevent st/nine being built at configure time on unusable
targets?

Or does an x32 build work with Windows x64 binaries? I've never tried.

> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/mesa-stable/attachments/20160321/2d424a48/attachment-0001.sig>


More information about the mesa-stable mailing list