Skip to content
Snippets Groups Projects
Commit dac1e16d authored by Martin Storsjö's avatar Martin Storsjö Committed by Alexandre Julliard
Browse files

include: Check whether the ms_abi attribute is supported on aarch64.


While wine's configure checks and requires that the ms_abi attribute
is supported on aarch64 (without it, variadic functions don't have the
correct ABI), these headers are also included when building widl as a
generic cross compilation tool as part of mingw-w64-tools. In the case
of widl, the functions that use these attributes (and in particular,
their ABI) doesn't matter as they aren't used/called, they're just
included as a side effect of including the headers that widl actually
needs.

This fixes building the widl tool for aarch64 linux with GCC, even if
wine itself can't be built in that configuration.

Only windef.h is used/needed by widl, but update msvcrt/corecrt.h as
well to keep these definitions in sync.

Signed-off-by: default avatarMartin Storsjo <martin@martin.st>
Signed-off-by: default avatarJacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard's avatarAlexandre Julliard <julliard@winehq.org>
parent ada03e76
Branches
Tags
No related merge requests found
......@@ -81,7 +81,7 @@
# endif
# elif defined(__arm__) && defined (__GNUC__) && !defined(__SOFTFP__)
# define __stdcall __attribute__((pcs("aapcs-vfp")))
# elif defined(__aarch64__) && defined (__GNUC__)
# elif defined(__aarch64__) && defined (__GNUC__) && __has_attribute(ms_abi)
# define __stdcall __attribute__((ms_abi))
# else /* __i386__ */
# define __stdcall
......@@ -102,7 +102,7 @@
#endif
#ifndef __ms_va_list
# if (defined(__x86_64__) || defined(__aarch64__)) && defined (__GNUC__)
# if (defined(__x86_64__) || (defined(__aarch64__) && __has_attribute(ms_abi))) && defined (__GNUC__)
# define __ms_va_list __builtin_ms_va_list
# define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg)
# define __ms_va_end(list) __builtin_ms_va_end(list)
......
......@@ -74,7 +74,7 @@ extern "C" {
# endif
# elif defined(__arm__) && defined (__GNUC__) && !defined(__SOFTFP__)
# define __stdcall __attribute__((pcs("aapcs-vfp")))
# elif defined(__aarch64__) && defined (__GNUC__)
# elif defined(__aarch64__) && defined (__GNUC__) && __has_attribute(ms_abi)
# define __stdcall __attribute__((ms_abi))
# else /* __i386__ */
# define __stdcall
......@@ -103,7 +103,7 @@ extern "C" {
#endif
#ifndef __ms_va_list
# if (defined(__x86_64__) || defined(__aarch64__)) && defined (__GNUC__)
# if (defined(__x86_64__) || (defined(__aarch64__) && __has_attribute(ms_abi))) && defined (__GNUC__)
# define __ms_va_list __builtin_ms_va_list
# define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg)
# define __ms_va_end(list) __builtin_ms_va_end(list)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment