From: "Liming Gao" <liming.gao@intel.com>
To: Laszlo Ersek <lersek@redhat.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Subject: Re: [edk2-devel] [Patch 11/12] OvmfPkg: Enable CLANG9 tool chain
Date: Tue, 8 Oct 2019 15:02:18 +0000 [thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E5124FA@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <4c27bdc4-60b4-26bf-c416-c02b69ef8051@redhat.com>
Laszlo:
> -----Original Message-----
> From: Laszlo Ersek <lersek@redhat.com>
> Sent: Tuesday, October 1, 2019 4:42 AM
> To: devel@edk2.groups.io; Gao, Liming <liming.gao@intel.com>
> Subject: Re: [edk2-devel] [Patch 11/12] OvmfPkg: Enable CLANG9 tool chain
>
> 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?)
CLANGPE is used to override GCC option. GCC is used to append GCC options.
You can see XCODE5 take the same way.
CLANG9 tool chain doesn't recognize -z common-page-size=0x1000 option.
So, here CLANGPE is used to specify /ALIGN:4096 option.
>
> - Regarding the CLANGPE option, does the "/ALIGN:4096" option format
> work on Linux too? (It seems quite unusual).
>
Yes. CLANG9 tool chain is CLANG compiler + LLVM LLD linker.
This linker is to generate PE/COFF image. Its linker option is same to VS linker.
This linker works on Linux and Mac.
> Another question:
>
> - There is another XCODE5-specific exception in OvmfPkg, namely
> TftpDynamicCommand. Does that build OK with CLANG9?
>
Yes. LLVM provides llvm-rc to generate resource section.
> > 2. Add -mno-mmx -mno-sse compiler option
>
> I think this remark should be clarified -- the options are *excluded*
> from the CLANG9 build.
Right. I will update comments.
>
> Thanks
> Laszlo
>
> >
> > Signed-off-by: Liming Gao <liming.gao@intel.com>
> > ---
> > 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
> >
> > ################################################################################
> > #
> >
next prev parent reply other threads:[~2019-10-08 15:02 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-27 7:46 [Patch 00/12] New Cross OS tool chain CLANG9 Liming Gao
2019-09-27 7:46 ` [Patch 01/12] BaseTools tools_def.template: Remove unnecessary $(DEST_DIR_DEBUG) path Liming Gao
2019-09-27 7:46 ` [Patch 02/12] BaseTools tools_def: Add CLANG9 tool chain to directly generate PE image Liming Gao
2019-09-27 10:13 ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-27 7:46 ` [Patch 03/12] BaseTools GenFw: Fix the issue to update the wrong size as SectionSize Liming Gao
2019-09-27 10:15 ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-27 7:46 ` [Patch 04/12] MdePkg Base.h: Add definition for CLANG9 tool chain Liming Gao
2019-09-27 7:46 ` [Patch 05/12] MdePkg BaseIoLibIntrinsic: Remove __inline__ attribute for IO functions Liming Gao
2019-09-30 20:35 ` [edk2-devel] " Laszlo Ersek
2019-09-30 21:11 ` Andrew Fish
2019-10-08 14:47 ` Liming Gao
2019-10-08 20:22 ` Laszlo Ersek
2019-10-10 12:32 ` Liming Gao
2019-10-10 16:32 ` Laszlo Ersek
2019-10-11 1:28 ` Liming Gao
2019-10-11 19:22 ` Jordan Justen
2019-10-12 6:18 ` Liming Gao
2019-09-27 7:46 ` [Patch 06/12] MdeModulePkg LzmaCustomDecompressLib: Update macro to be same in CLANG tool Liming Gao
2019-09-27 7:46 ` [Patch 07/12] MdeModulePkg RegularExpressionDxe: Disable warning for CLANG9 tool chain Liming Gao
2019-09-27 7:46 ` [Patch 08/12] CryptoPkg: Append options to make CLANG9 tool chain pass build Liming Gao
2019-09-27 7:46 ` [Patch 09/12] CryptoPkg IntrinsicLib: Make _fltused always be used Liming Gao
2019-09-27 8:34 ` [edk2-devel] " Yao, Jiewen
2019-09-29 6:32 ` Liming Gao
2019-09-27 7:46 ` [Patch 10/12] EmulatorPkg: Enable CLANG9 tool chain Liming Gao
2019-09-27 7:46 ` [Patch 11/12] OvmfPkg: " Liming Gao
2019-09-30 20:42 ` [edk2-devel] " Laszlo Ersek
2019-10-08 15:02 ` Liming Gao [this message]
2019-10-08 22:29 ` Laszlo Ersek
2019-10-08 23:08 ` Andrew Fish
2019-10-09 13:43 ` Laszlo Ersek
2019-10-09 14:44 ` Liming Gao
2019-10-09 16:22 ` [edk2-devel] [Patch 11/12] OvmfPkg: Enable CLANG9 tool chain - Andrew Fish
2019-10-10 7:35 ` Laszlo Ersek
2019-10-10 12:18 ` Liming Gao
2019-10-10 16:29 ` [edk2-devel] [Patch 11/12] OvmfPkg: Enable CLANG9 tool chain Andrew Fish
2019-10-10 16:43 ` [edk2-devel] [Patch 11/12] OvmfPkg: Enable CLANG9 tool chain - Laszlo Ersek
2019-10-11 1:47 ` Liming Gao
2019-10-11 9:57 ` Laszlo Ersek
2019-10-11 9:37 ` [edk2-devel] [Patch 11/12] OvmfPkg: Enable CLANG9 tool chain Laszlo Ersek
2019-10-12 8:22 ` Liming Gao
2019-09-27 7:46 ` [Patch 12/12] OvmfPkg SecMain: Add build option "-fno-omit-frame-pointer" for CLANG9 X64 Liming Gao
2019-09-30 21:09 ` [edk2-devel] " Laszlo Ersek
2019-10-08 15:09 ` Liming Gao
[not found] ` <15CBB488DC5DB3E9.15045@groups.io>
2019-10-10 14:08 ` Liming Gao
2019-10-10 17:35 ` Laszlo Ersek
2019-10-11 1:30 ` Liming Gao
2019-10-11 9:48 ` Laszlo Ersek
2019-09-27 8:33 ` [edk2-devel] [Patch 00/12] New Cross OS tool chain CLANG9 Yao, Jiewen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A89E2EF3DFEDB4C8BFDE51014F606A14E5124FA@SHSMSX104.ccr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox