From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com []) by mx.groups.io with SMTP id smtpd.web10.3108.1571295367890091277 for ; Wed, 16 Oct 2019 23:56:10 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: liming.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Oct 2019 23:56:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,306,1566889200"; d="scan'208";a="208577864" Received: from shwde7172.ccr.corp.intel.com ([10.239.158.22]) by fmsmga001.fm.intel.com with ESMTP; 16 Oct 2019 23:56:09 -0700 From: "Liming Gao" To: devel@edk2.groups.io Cc: Michael Kinney Subject: [Patch v3 04/11] MdePkg Base.h: Add definition for CLANG9 tool chain Date: Thu, 17 Oct 2019 14:55:48 +0800 Message-Id: <1571295356-11608-5-git-send-email-liming.gao@intel.com> X-Mailer: git-send-email 2.8.0.windows.1 In-Reply-To: <1571295356-11608-1-git-send-email-liming.gao@intel.com> References: <1571295356-11608-1-git-send-email-liming.gao@intel.com> 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 Cc: Michael Kinney Reviewed-by: Philippe Mathieu-Daude --- MdePkg/Include/Base.h | 6 +++--- MdePkg/Include/Ia32/ProcessorBind.h | 4 ++-- 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 d94b8a5f93..4680e64136 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 497c58b33b..fa4b7e8e98 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 6f65acd609..387e9c5c9c 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. -- 2.13.0.windows.1