From: Roger Pau Monné Date: Thu, 4 Feb 2021 13:02:32 +0000 (+0100) Subject: x86/efi: enable MS ABI attribute on clang X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~42^2~949 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=92f5ffa58d188c9f9a9f1bcdccb6d6348d9df612;p=xen.git x86/efi: enable MS ABI attribute on clang Or else the EFI service calls will use the wrong calling convention. The __ms_abi__ attribute is available on all supported versions of clang. Add a specific Clang check because the GCC version reported by Clang is below the required 4.4 to use the __ms_abi__ attribute. Signed-off-by: Roger Pau Monné Acked-by: Andrew Cooper Reviewed-by: Ian Jackson Release-Acked-by: Ian Jackson --- diff --git a/xen/include/asm-x86/x86_64/efibind.h b/xen/include/asm-x86/x86_64/efibind.h index b013db175d..ddcfae07ec 100644 --- a/xen/include/asm-x86/x86_64/efibind.h +++ b/xen/include/asm-x86/x86_64/efibind.h @@ -172,7 +172,7 @@ typedef uint64_t UINTN; #ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options #ifdef _MSC_EXTENSIONS #define EFIAPI __cdecl // Force C calling convention for Microsoft C compiler - #elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) + #elif __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) #define EFIAPI __attribute__((__ms_abi__)) // Force Microsoft ABI #else #define EFIAPI // Substitute expresion to force C calling convention