From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: redhat.com, ip: 209.132.183.28, mailfrom: lersek@redhat.com) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by groups.io with SMTP; Mon, 30 Sep 2019 13:42:17 -0700 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F0439368DA; Mon, 30 Sep 2019 20:42:16 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-121-111.rdu2.redhat.com [10.10.121.111]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2A3F55D9CA; Mon, 30 Sep 2019 20:42:15 +0000 (UTC) Subject: Re: [edk2-devel] [Patch 11/12] OvmfPkg: Enable CLANG9 tool chain To: devel@edk2.groups.io, liming.gao@intel.com References: <1569570395-11240-1-git-send-email-liming.gao@intel.com> <1569570395-11240-12-git-send-email-liming.gao@intel.com> From: "Laszlo Ersek" Message-ID: <4c27bdc4-60b4-26bf-c416-c02b69ef8051@redhat.com> Date: Mon, 30 Sep 2019 22:42:15 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <1569570395-11240-12-git-send-email-liming.gao@intel.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 30 Sep 2019 20:42:17 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Hi Liming, On 09/27/19 09:46, Liming Gao wrote: > 1. Apply CLANG9 Linker option. I'm confused by this, in two regards. - Why do we refer to CLANG9 first as being in the GCC toolchain family (see near mmx/sse), and then under a totally different family name (CLANGPE?) - Regarding the CLANGPE option, does the "/ALIGN:4096" option format work on Linux too? (It seems quite unusual). Another question: - There is another XCODE5-specific exception in OvmfPkg, namely TftpDynamicCommand. Does that build OK with CLANG9? > 2. Add -mno-mmx -mno-sse compiler option I think this remark should be clarified -- the options are *excluded* from the CLANG9 build. Thanks Laszlo > > Signed-off-by: Liming Gao > --- > OvmfPkg/OvmfPkgIa32.dsc | 4 +++- > OvmfPkg/OvmfPkgIa32X64.dsc | 4 +++- > OvmfPkg/OvmfPkgX64.dsc | 4 +++- > 3 files changed, 9 insertions(+), 3 deletions(-) > > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc > index 66e944436a..0fde8e6e84 100644 > --- a/OvmfPkg/OvmfPkgIa32.dsc > +++ b/OvmfPkg/OvmfPkgIa32.dsc > @@ -66,7 +66,7 @@ > GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG > INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG > MSFT:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG > -!if $(TOOL_CHAIN_TAG) != "XCODE5" > +!if $(TOOL_CHAIN_TAG) != "XCODE5" && $(TOOL_CHAIN_TAG) != "CLANG9" > GCC:*_*_*_CC_FLAGS = -mno-mmx -mno-sse > !endif > > @@ -80,12 +80,14 @@ > [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > XCODE:*_*_*_DLINK_FLAGS = > + CLANGPE: *_*_*_DLINK_FLAGS = /ALIGN:4096 > > # Force PE/COFF sections to be aligned at 4KB boundaries to support page level > # protection of DXE_SMM_DRIVER/SMM_CORE modules > [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > XCODE:*_*_*_DLINK_FLAGS = > + CLANGPE: *_*_*_DLINK_FLAGS = /ALIGN:4096 > > ################################################################################ > # > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc > index 51c2bfb44f..c17329878e 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > @@ -66,7 +66,7 @@ > GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG > INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG > MSFT:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG > -!if $(TOOL_CHAIN_TAG) != "XCODE5" > +!if $(TOOL_CHAIN_TAG) != "XCODE5" && $(TOOL_CHAIN_TAG) != "CLANG9" > GCC:*_*_*_CC_FLAGS = -mno-mmx -mno-sse > !endif > !ifdef $(SOURCE_DEBUG_ENABLE) > @@ -85,12 +85,14 @@ > [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > XCODE:*_*_*_DLINK_FLAGS = > + CLANGPE: *_*_*_DLINK_FLAGS = /ALIGN:4096 > > # Force PE/COFF sections to be aligned at 4KB boundaries to support page level > # protection of DXE_SMM_DRIVER/SMM_CORE modules > [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > XCODE:*_*_*_DLINK_FLAGS = > + CLANGPE: *_*_*_DLINK_FLAGS = /ALIGN:4096 > > ################################################################################ > # > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > index ba7a758844..af91265d05 100644 > --- a/OvmfPkg/OvmfPkgX64.dsc > +++ b/OvmfPkg/OvmfPkgX64.dsc > @@ -66,7 +66,7 @@ > GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG > INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG > MSFT:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG > -!if $(TOOL_CHAIN_TAG) != "XCODE5" > +!if $(TOOL_CHAIN_TAG) != "XCODE5" && $(TOOL_CHAIN_TAG) != "CLANG9" > GCC:*_*_*_CC_FLAGS = -mno-mmx -mno-sse > !endif > !ifdef $(SOURCE_DEBUG_ENABLE) > @@ -85,12 +85,14 @@ > [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > XCODE:*_*_*_DLINK_FLAGS = > + CLANGPE: *_*_*_DLINK_FLAGS = /ALIGN:4096 > > # Force PE/COFF sections to be aligned at 4KB boundaries to support page level > # protection of DXE_SMM_DRIVER/SMM_CORE modules > [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > XCODE:*_*_*_DLINK_FLAGS = > + CLANGPE: *_*_*_DLINK_FLAGS = /ALIGN:4096 > > ################################################################################ > # >