diff options
author | Liming Gao <liming.gao@intel.com> | 2019-10-17 14:55:48 +0800 |
---|---|---|
committer | Liming Gao <liming.gao@intel.com> | 2019-10-24 09:41:32 +0800 |
commit | 70bebafd1b77e6edd034a12ba47656669a833a80 (patch) | |
tree | fe14ae4ee449f23e370a0d03e977c0392bc3683b | |
parent | 3d312a1fec2eff60212859849fdb407018e47ca8 (diff) | |
download | edk2-70bebafd1b77e6edd034a12ba47656669a833a80.zip edk2-70bebafd1b77e6edd034a12ba47656669a833a80.tar.gz edk2-70bebafd1b77e6edd034a12ba47656669a833a80.tar.bz2 |
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>
-rw-r--r-- | MdePkg/Include/Base.h | 6 | ||||
-rw-r--r-- | MdePkg/Include/Ia32/ProcessorBind.h | 4 | ||||
-rw-r--r-- | MdePkg/Include/X64/ProcessorBind.h | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h index d94b8a5..4680e64 100644 --- a/MdePkg/Include/Base.h +++ b/MdePkg/Include/Base.h @@ -621,9 +621,9 @@ typedef char* VA_LIST; #define VA_END(Marker) (Marker = (VA_LIST) 0)
#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.
//
@@ -1274,7 +1274,7 @@ typedef UINTN RETURN_STATUS; **/
#define RETURN_ADDRESS(L) ((L == 0) ? _ReturnAddress() : (VOID *) 0)
-#elif defined(__GNUC__)
+#elif defined (__GNUC__) || defined (__clang__)
void * __builtin_return_address (unsigned int level);
/**
Get the return address of the calling function.
diff --git a/MdePkg/Include/Ia32/ProcessorBind.h b/MdePkg/Include/Ia32/ProcessorBind.h index 497c58b..fa4b7e8 100644 --- a/MdePkg/Include/Ia32/ProcessorBind.h +++ b/MdePkg/Include/Ia32/ProcessorBind.h @@ -281,7 +281,7 @@ typedef INT32 INTN; /// Microsoft* compiler specific method for EFIAPI calling convention.
///
#define EFIAPI __cdecl
-#elif defined(__GNUC__)
+#elif defined(__GNUC__) || defined(__clang__)
///
/// GCC specific method for EFIAPI calling convention.
///
@@ -294,7 +294,7 @@ typedef INT32 INTN; #define EFIAPI
#endif
-#if defined(__GNUC__)
+#if defined(__GNUC__) || defined(__clang__)
///
/// For GNU assembly code, .global or .globl can declare global symbols.
/// Define this macro to unify the usage.
diff --git a/MdePkg/Include/X64/ProcessorBind.h b/MdePkg/Include/X64/ProcessorBind.h index 6f65acd..387e9c5 100644 --- a/MdePkg/Include/X64/ProcessorBind.h +++ b/MdePkg/Include/X64/ProcessorBind.h @@ -313,7 +313,7 @@ typedef INT64 INTN; #define EFIAPI
#endif
-#if defined(__GNUC__)
+#if defined(__GNUC__) || defined(__clang__)
///
/// For GNU assembly code, .global or .globl can declare global symbols.
/// Define this macro to unify the usage.
|