MdePkg Base.h: Add definition for CLANG9 tool chain

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1603
CLANG9 tool chain defines __clang__ macro only,
doesn't define __GNUC__ macro. But, it uses some same definitions with GCC.
So, update base definition for CLANG9 tool chain.

Signed-off-by: Liming Gao <liming.gao@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
Liming Gao 2019-10-17 14:55:48 +08:00
parent 3d312a1fec
commit 70bebafd1b
3 changed files with 6 additions and 6 deletions

View File

@ -621,9 +621,9 @@ typedef char* VA_LIST;
#define VA_END(Marker) (Marker = (VA_LIST) 0) #define VA_END(Marker) (Marker = (VA_LIST) 0)
#define VA_COPY(Dest, Start) ((void)((Dest) = (Start))) #define VA_COPY(Dest, Start) ((void)((Dest) = (Start)))
#elif defined(__GNUC__) #elif defined(__GNUC__) || defined(__clang__)
#if defined(MDE_CPU_X64) && !defined(NO_MSABI_VA_FUNCS) #if defined(MDE_CPU_X64) && !defined(NO_MSABI_VA_FUNCS) && !defined(__clang__)
// //
// X64 only. Use MS ABI version of GCC built-in macros for variable argument lists. // X64 only. Use MS ABI version of GCC built-in macros for variable argument lists.
// //
@ -1274,7 +1274,7 @@ typedef UINTN RETURN_STATUS;
**/ **/
#define RETURN_ADDRESS(L) ((L == 0) ? _ReturnAddress() : (VOID *) 0) #define RETURN_ADDRESS(L) ((L == 0) ? _ReturnAddress() : (VOID *) 0)
#elif defined(__GNUC__) #elif defined (__GNUC__) || defined (__clang__)
void * __builtin_return_address (unsigned int level); void * __builtin_return_address (unsigned int level);
/** /**
Get the return address of the calling function. Get the return address of the calling function.

View File

@ -281,7 +281,7 @@ typedef INT32 INTN;
/// Microsoft* compiler specific method for EFIAPI calling convention. /// Microsoft* compiler specific method for EFIAPI calling convention.
/// ///
#define EFIAPI __cdecl #define EFIAPI __cdecl
#elif defined(__GNUC__) #elif defined(__GNUC__) || defined(__clang__)
/// ///
/// GCC specific method for EFIAPI calling convention. /// GCC specific method for EFIAPI calling convention.
/// ///
@ -294,7 +294,7 @@ typedef INT32 INTN;
#define EFIAPI #define EFIAPI
#endif #endif
#if defined(__GNUC__) #if defined(__GNUC__) || defined(__clang__)
/// ///
/// For GNU assembly code, .global or .globl can declare global symbols. /// For GNU assembly code, .global or .globl can declare global symbols.
/// Define this macro to unify the usage. /// Define this macro to unify the usage.

View File

@ -313,7 +313,7 @@ typedef INT64 INTN;
#define EFIAPI #define EFIAPI
#endif #endif
#if defined(__GNUC__) #if defined(__GNUC__) || defined(__clang__)
/// ///
/// For GNU assembly code, .global or .globl can declare global symbols. /// For GNU assembly code, .global or .globl can declare global symbols.
/// Define this macro to unify the usage. /// Define this macro to unify the usage.