public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ni, Ray" <ray.ni@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Ni, Ray" <ray.ni@intel.com>,
	"Gao, Liming" <liming.gao@intel.com>,
	"afish@apple.com" <afish@apple.com>,
	Leif Lindholm <leif.lindholm@linaro.org>
Cc: "Justen, Jordan L" <jordan.l.justen@intel.com>,
	"Shi, Steven" <steven.shi@intel.com>
Subject: Re: [edk2-devel] [Patch v3 10/11] EmulatorPkg: Enable CLANG9 tool chain
Date: Tue, 12 Nov 2019 03:10:16 +0000	[thread overview]
Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C358F2F@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <15D646FBD4763D55.27853@groups.io>

My point is if we choose CLANGPE, for LLVM toolchain supporting DWARF debug symbol,
there is no proper name left: we cannot use CLANGELF.

Andrew, you said CLANGPDE. A typo?

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ni, Ray
> Sent: Tuesday, November 12, 2019 9:46 AM
> To: Gao, Liming <liming.gao@intel.com>; devel@edk2.groups.io;
> afish@apple.com; Leif Lindholm <leif.lindholm@linaro.org>
> Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Shi, Steven
> <steven.shi@intel.com>
> Subject: Re: [edk2-devel] [Patch v3 10/11] EmulatorPkg: Enable CLANG9 tool
> chain
> 
> Liming,
> What name will be chosen when in future someone wants a LLVM toolchain
> which supports DWARF debug symbol?
> 
> 
> > -----Original Message-----
> > From: Gao, Liming <liming.gao@intel.com>
> > Sent: Tuesday, November 12, 2019 8:41 AM
> > To: devel@edk2.groups.io; afish@apple.com; Leif Lindholm
> > <leif.lindholm@linaro.org>
> > Cc: Ni, Ray <ray.ni@intel.com>; Justen, Jordan L
> > <jordan.l.justen@intel.com>; Shi, Steven <steven.shi@intel.com>; Gao,
> > Liming <liming.gao@intel.com>
> > Subject: RE: [edk2-devel] [Patch v3 10/11] EmulatorPkg: Enable CLANG9
> > tool chain
> >
> > Thanks for your feedback. I will choose CLANGPE as the tool chain name.
> >
> > Thanks
> > Liming
> > >-----Original Message-----
> > >From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> > >Andrew Fish via Groups.Io
> > >Sent: Tuesday, November 12, 2019 12:52 AM
> > >To: Leif Lindholm <leif.lindholm@linaro.org>
> > >Cc: Ni, Ray <ray.ni@intel.com>; Gao, Liming <liming.gao@intel.com>;
> > >devel@edk2.groups.io; Justen, Jordan L <jordan.l.justen@intel.com>;
> > >Shi, Steven <steven.shi@intel.com>
> > >Subject: Re: [edk2-devel] [Patch v3 10/11] EmulatorPkg: Enable CLANG9
> > >tool chain
> > >
> > >Either works for me too. I like the PDE ending a little more, but
> > >agree it is a little more obscure.
> > >> On Nov 11, 2019, at 8:39 AM, Leif Lindholm
> > >> <leif.lindholm@linaro.org>
> > wrote:
> > >>
> > >> On Fri, Nov 08, 2019 at 03:34:59AM +0000, Ni, Ray wrote:
> > >>> Liming,
> > >>> PE is UEFI spec required executable binary format. I like CLANGPDB
> > >>> more than CLANGPE given LLVM may generate DRAWF debug symbol
> > >even
> > >>> when generating PE.
> > >>
> > >> Just a comment here to point out that while (as I stated in reply
> > >> to
> > >> Liming) my preference would be CLANGPE, I see the logic in the
> > >> above, and would be happy with either.
> > >>
> > >> (My reason for preferring CLANGPE is not exactly techincal - I just
> > >> expect more people to know what PE is than who know what PDB is.)
> > >>
> > >> Regards,
> > >>
> > >> Leif
> > >>
> > >>>> -----Original Message-----
> > >>>> From: Gao, Liming <liming.gao@intel.com>
> > >>>> Sent: Friday, November 8, 2019 9:50 AM
> > >>>> To: devel@edk2.groups.io; leif.lindholm@linaro.org; Andrew Fish
> > ><afish@apple.com>
> > >>>> Cc: Ni, Ray <ray.ni@intel.com>; Justen, Jordan L
> > ><jordan.l.justen@intel.com>; Gao, Liming <liming.gao@intel.com>; Shi,
> > >>>> Steven <steven.shi@intel.com>
> > >>>> Subject: RE: [edk2-devel] [Patch v3 10/11] EmulatorPkg: Enable
> > >>>> CLANG9
> > >tool chain
> > >>>>
> > >>>> Andrew and Leif:
> > >>>>  Thanks for your comment. CLANG9 is different from CLANG38. And,
> > >CLANG9 will support LLVM9 or the above.
> > >>>>  So, this tool chain should have the specific word for its
> > >>>> purpose, and
> > >remove the version 9 to avoid the confuse.
> > >>>>
> > >>>>  I prefer the tool chain name as CLANGPE or CLANGPDB. CLANGPE
> may
> > >be better. Now, CLANG9 tool chain
> > >>>>  build rule family just uses CLANGPE. CLANGPE lets user know this
> > >>>> tool
> > >chain generates PE/COFF image.
> > >>>>  And, PE/COFF image debug symbol is PDB. So, PE also means PDB.
> > >>>>
> > >>>>  Last, I just review the changes. Tool chain name update is not
> > >>>> big. If you
> > >accept CLANGPE as tool chain name,
> > >>>>  I will send the patch soon to catch 201911 stable tag.
> > >>>>
> > >>>> Thanks
> > >>>> Liming
> > >>>>> -----Original Message-----
> > >>>>> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On
> > Behalf
> > >Of Leif
> > >>>>> Lindholm
> > >>>>> Sent: Friday, November 08, 2019 2:37 AM
> > >>>>> To: Andrew Fish <afish@apple.com>
> > >>>>> Cc: devel@edk2.groups.io; Gao, Liming <liming.gao@intel.com>;
> > >>>>> Ni, Ray <ray.ni@intel.com>; Justen, Jordan L
> > >>>>> <jordan.l.justen@intel.com>
> > >>>>> Subject: Re: [edk2-devel] [Patch v3 10/11] EmulatorPkg: Enable
> > >>>>> CLANG9
> > >tool
> > >>>>> chain
> > >>>>>
> > >>>>> Hi Andrew,
> > >>>>>
> > >>>>> Yeah, I'm pretty easy with regards to what we change it to.
> > >>>>> Although if we're bikeshedding, I would prefer not using _ in
> > >>>>> the toolchain profile name.
> > >>>>>
> > >>>>> I'm ... optimistic ... it won't break any of my existing
> > >>>>> scripts, but since the build system uses it as a <toolchain
> > >>>>> profile>_<architecture>_<build target> separator, it would be
> > >>>>> profile>nice
> > >>>>> if we didn't risk confusion there.
> > >>>>>
> > >>>>> (I would be totally happy with PECLANG, CLANGPE, PDBCLANG,
> > >CLANGPDB or
> > >>>>> something along those lines.)
> > >>>>>
> > >>>>> Regards,
> > >>>>>
> > >>>>> Leif
> > >>>>>
> > >>>>> On Thu, Nov 07, 2019 at 11:54:04AM -0600, Andrew Fish wrote:
> > >>>>>> Leif,
> > >>>>>>
> > >>>>>> I think I proposed CLANG_PDB or CLANG_PECOFF. I seem to like
> > >>>>> CLANG_PDB as assuming the PDE debugging experience is
> > >awesome/exists
> > >>>>> on Linux and macOS is not a given.
> > >>>>>>
> > >>>>>> Thanks,
> > >>>>>>
> > >>>>>> Andrew Fish
> > >>>>>>
> > >>>>>>> On Nov 7, 2019, at 11:19 AM, Leif Lindholm
> > >>>>>>> <leif.lindholm@linaro.org>
> > >>>>> wrote:
> > >>>>>>>
> > >>>>>>> Oops, sorry, missed this in search.
> > >>>>>>>
> > >>>>>>> On Wed, Oct 30, 2019 at 03:43:44PM +0000, Liming Gao wrote:
> > >>>>>>>> Andrew:
> > >>>>>>>>
> > >>>>>>>> I prefer to keep short CLANG9 as the tool chain name. I add
> > >>>>>>>> wiki page
> > >>>>>>>>
> https://github.com/tianocore/tianocore.github.io/wiki/CLANG9-
> > >Tools-
> > >>>>> Chain
> > >>>>>>>> to introduce it.
> > >>>>>>>
> > >>>>>>> Why should users be expected to go and read documentation in
> > >order to
> > >>>>>>> learn that fundamental and incompatible changes to output and
> > >debug
> > >>>>>>> format has been made as part of what looks like a simple
> > >>>>>>> version
> > >bump?
> > >>>>>>>
> > >>>>>>>> And, we have CLANG38 tool chain. It generates ELF image and
> > >>>>>>>> DWARF debug symbol format. It can work with LLVM 9.0 release.
> > >>>>>>>> Current tool chain tag name includes compiler name and version.
> > >>>>>>>> There is no specific info in the tool chain name. The
> > >>>>>>>> developer can get the more tool chain information from wiki
> page.
> > >>>>>>>
> > >>>>>>> We aleady have the problem that people think they need to use
> > >GCC5 to
> > >>>>>>> build EDK2 since that is the highest named GCC toolchain profile.
> > >>>>>>>
> > >>>>>>> Let's not make this situation *worse* by setting up a
> > >multidimensional
> > >>>>>>> feature matrix, based off random numerical values.
> > >>>>>>>
> > >>>>>>> So say that we next have a pressing need to create a new
> > >>>>>>> toolchain profile for clang 10, using the old ELF mechanism.
> > >>>>>>> Are you then suggesting we set up a table on said wiki page
> > >>>>>>> where people have to
> > >go
> > >>>>>>> and look up what the object and debug formats are for each
> > >CLANG##
> > >>>>>>> toolchain profile?
> > >>>>>>>
> > >>>>>>> And what if you then end up needing to do the same for the PDB
> > >>>>>>> flavour?
> > >>>>>>>
> > >>>>>>>> CLANG9 is designed to support Emulator for Windows host only.
> > >>>>>>>
> > >>>>>>> Which is why it makes no sense to name it as a successor of
> > >>>>>>> CLANG38.
> > >>>>>>>
> > >>>>>>>> CLANG38 may be used for Emulator in Linux or Mac. I don’t try
> > >>>>>>>> it before.
> > >>>>>>>>
> > >>>>>>>> CLANG9 goal is to align the same compiler in the different
> > >>>>>>>> host development environment. It can replace VS or GCC
> > >>>>>>>> compiler. On Windows Host, I verify VS debugger for the source
> level debug.
> > >>>>>>>> On Linux host, I have not verified llvm debugger. I will
> > >>>>>>>> investigate the debugger solution for OVMF in Linux host.
> > >>>>>>>
> > >>>>>>> We are not asking you to throw out this toolchain profile.
> > >>>>>>>
> > >>>>>>> We are saying that since the functionality it provides is
> > >>>>>>> completely unrelated to that of CLANG38, it should not be
> > >>>>>>> named in a way that suggests it is merely a revision update.
> > >>>>>>>
> > >>>>>>> /
> > >>>>>>>   Leif
> > >>>>>>>
> > >>>>>>>> Thanks
> > >>>>>>>> Liming
> > >>>>>>>> From: afish@apple.com <afish@apple.com>
> > >>>>>>>> Sent: Saturday, October 26, 2019 2:45 AM
> > >>>>>>>> To: devel@edk2.groups.io; Gao, Liming <liming.gao@intel.com>
> > >>>>>>>> Cc: Ni, Ray <ray.ni@intel.com>; Justen, Jordan L
> > >>>>> <jordan.l.justen@intel.com>
> > >>>>>>>> Subject: Re: [edk2-devel] [Patch v3 10/11] EmulatorPkg:
> > >>>>>>>> Enable
> > >CLANG9
> > >>>>> tool chain
> > >>>>>>>>
> > >>>>>>>> Liming,
> > >>>>>>>>
> > >>>>>>>> Sorry I missed this mail. Thanks for the info! I was doing
> > >>>>>>>> some
> > >research
> > >>>>> into this too and now I think I finally understand. I think the
> > >>>>> name for
> > >the tool
> > >>>>> chain really confused me and we should think about changing the
> > name.
> > >>>>>>>>
> > >>>>>>>> From what I understand CLANG9 means produce PE/COFF
> directly
> > >and
> > >>>>> used the PDB debugging format. I see from the llvm site that the
> > >>>>> linker
> > >can
> > >>>>> produce PDB directly as you mention. This all makes sense to me
> > >>>>> now as
> > >LLVM
> > >>>>> tries to make it easy to be a drop in replacement for VC++ or GCC.
> > >>>>> So
> > >this tool
> > >>>>> chain is designed to be able to cross build a "Windows App" on a
> > >>>>> Linux or macOS. It also looks like the llvm debugger, lldb, is
> > >>>>> lagging in its support
> > >for
> > >>>>> PDB based debugging.
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> Anyway I think Leif and I agree the toolchain name is very
> > confusing.
> > >I'd
> > >>>>> rather see it called CLANG9_WIN or CLANG_PDB.
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> On Oct 18, 2019, at 7:27 AM, Liming Gao
> > >>>>> <liming.gao@intel.com<mailto:liming.gao@intel.com>> wrote:
> > >>>>>>>>
> > >>>>>>>> Andrew:
> > >>>>>>>> Here is the cover letter on CLANG9 introduction.
> > >>>>> https://edk2.groups.io/g/devel/message/49157
> > >>>>>>>>
> > >>>>>>>> 1)      Yes. CLANG9 tool chain is added to directly generate
> PE/COFF
> > >image
> > >>>>> (EFI image).
> > >>>>>>>> This tool chain uses LLVM clang C compiler and lld linker,
> > >>>>>>>> generates
> > >>>>> PE/COFF
> > >>>>>>>> image and PDB compatible debug symbol format. Now, it
> > supports
> > >>>>> IA32/X64 Archs.
> > >>>>>>>> LLVM clang C compiler and lld linker are the standalone tool set.
> > >They
> > >>>>> don’t depend other lib to generate PE/COFF image.
> > >>>>>>>>
> > >>>>>>>> 2)      Yes. CLANG9 is the cross OS tool chain. It can work on
> > >>>>> Windows/Linux/Mac host OS.
> > >>>>>>>> LLVM LLD linker uses Windows style arguments. I verify CLANG9
> > >>>>>>>> for
> > >>>>> Ovmf3264 in Windows/Linux host OS.
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> On Linux can you source level debug Ovmf?
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> 3)     This patch enables WinHost in Windows. It doesn’t enable
> > >UnixHost.
> > >>>>> Now, EmulatorPkg with CLANG9 only works on Windows Host.
> > >>>>>>>> This patch can make other modules pass build in
> > >Windows/Linux/Mac
> > >>>>> only if LLVM9 tool set is installed.
> > >>>>>>>> But, the generated image may not work on Linux/Mac. I agree
> > >below
> > >>>>> linker flags are specific to windows host.
> > >>>>>>>> So, I suggest to add the conditional statement of
> > >$(WIN_HOST_BUILD)
> > >>>>> == TRUE for them.
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> For the EmulatorPkg the Host is a native App for that OS you
> > >>>>>>>> build on,
> > >but
> > >>>>> it seems like CLANG9 is targeted to build Windows Apps. I'm not
> > >>>>> sure
> > >but you
> > >>>>> might be able to override all the linker commands to build a
> > >>>>> native app,
> > >or just
> > >>>>> use the system linker for the Host?
> > >>>>>>>>
> > >>>>>>>> I'm not sure how well debugging will work mixing PDB and
> > >>>>>>>> DWARF
> > >>>>> symbol formats?
> > >>>>>>>>
> > >>>>>>>> Thanks,
> > >>>>>>>>
> > >>>>>>>> Andrew Fish
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> !if $(WIN_HOST_BUILD) == TRUE
> > >>>>>>>> GCC:*_CLANG9_*_DLINK_FLAGS     = /ALIGN:4096
> > /FILEALIGN:4096
> > >>>>> /SUBSYSTEM:CONSOLE
> > >>>>>>>> GCC:DEBUG_CLANG9_*_DLINK_FLAGS =
> > >>>>> /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
> > >>>>>>>> GCC:NOOPT_CLANG9_*_DLINK_FLAGS =
> > >>>>> /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
> > >>>>>>>> !endif
> > >>>>>>>>
> > >>>>>>>> Thanks
> > >>>>>>>> Liming
> > >>>>>>>> From: afish@apple.com<mailto:afish@apple.com>
> > >>>>> <afish@apple.com<mailto:afish@apple.com>>
> > >>>>>>>> Sent: Friday, October 18, 2019 1:15 AM
> > >>>>>>>> To: Ni, Ray <ray.ni@intel.com<mailto:ray.ni@intel.com>>
> > >>>>>>>> Cc: Gao, Liming
> > ><liming.gao@intel.com<mailto:liming.gao@intel.com>>;
> > >>>>> devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Justen,
> > Jordan
> > >>>>> L <jordan.l.justen@intel.com<mailto:jordan.l.justen@intel.com>>
> > >>>>>>>> Subject: Re: [Patch v3 10/11] EmulatorPkg: Enable CLANG9 tool
> > >>>>>>>> chain
> > >>>>>>>>
> > >>>>>>>> Ray,
> > >>>>>>>>
> > >>>>>>>> Sorry I'm coming a little late to this and I'm confused. I
> > >>>>>>>> have some
> > >>>>> questions?
> > >>>>>>>> 1) Does CLANG9 imply CLANGPE?
> > >>>>>>>> 2) Does CLANGPE work on Linux and macOS? Can you pass the
> > >Windows
> > >>>>> style arguments to CLANGPE linker on Linux and macOS?
> > >>>>>>>> 3) For the EmulatorPkg don't you have the extra requirement
> > >>>>>>>> that
> > >>>>> compiler needs a standard C lib (or platform specific libs) to function?
> > >>>>>>>>      a) GCC:*_CLANG9_*_DLINK_FLAGS in EmulatorPkg.dsc
> seems
> > to
> > >>>>> imply the Linux and macOS systems will have a Windows SKD dir
> > >>>>> and a
> > >lot of
> > >>>>> Windows DLLs? Does all that come when you install CLANG9 when
> > you
> > >install
> > >>>>> it on Linux or macOS?
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> So I guess I'm asking is the linker really the same for
> > >>>>>>>> CLANG9 on all
> > >>>>> systems? I guess the answer could be yes, but it seems the C lib
> > >>>>> for the
> > >Host
> > >>>>> App is still an App for that OS and is OS dependent?
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> Sorry if I'm missing something fundamental and this is a dumb
> > >question.
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> Thanks,
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> Andrew Fish
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> On Oct 17, 2019, at 12:27 AM, Ni, Ray
> > >>>>> <ray.ni@intel.com<mailto:ray.ni@intel.com>> wrote:
> > >>>>>>>>
> > >>>>>>>> Liming,
> > >>>>>>>> Emulator is using a generic SEC module. The host specific
> > >>>>>>>> module is
> > >called
> > >>>>> "Host".
> > >>>>>>>> So I prefer to change the macro to "WIN_HOST_BUILD", with
> > >>>>>>>> this
> > >change,
> > >>>>> Reviewed-by: Ray Ni <ray.ni@intel.com<mailto:ray.ni@intel.com>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> -----Original Message-----
> > >>>>>>>> From: Gao, Liming
> > ><liming.gao@intel.com<mailto:liming.gao@intel.com>>
> > >>>>>>>> Sent: Thursday, October 17, 2019 2:56 PM
> > >>>>>>>> To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>
> > >>>>>>>> Cc: Justen, Jordan L
> > >>>>> <jordan.l.justen@intel.com<mailto:jordan.l.justen@intel.com>>;
> > >Andrew
> > >>>>> Fish
> > >>>>>>>> <afish@apple.com<mailto:afish@apple.com>>; Ni, Ray
> > >>>>> <ray.ni@intel.com<mailto:ray.ni@intel.com>>
> > >>>>>>>> Subject: [Patch v3 10/11] EmulatorPkg: Enable CLANG9 tool
> > >>>>>>>> chain
> > >>>>>>>>
> > >>>>>>>> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1603
> > >>>>>>>> 1. Add WIN_SEC_BUILD macro check for CLANG9 tool chain build
> > >>>>>>>> -
> > p
> > >>>>>>>> EmulatorPkg\EmulatorPkg.dsc -a IA32 -DWIN_SEC_BUILD=TRUE
> -t
> > >>>>> CLANG9
> > >>>>>>>> build -p EmulatorPkg\EmulatorPkg.dsc -a X64 -
> > >DWIN_SEC_BUILD=TRUE -t
> > >>>>>>>> CLANG9 2. Append CLANG CC and LINK flags to generate
> windows
> > >HOST.
> > >>>>>>>> 3. Fix WinHost issue to call GetProcessAffinityMask() API.
> > >>>>>>>> The input parameter should be UINTN pointer instead of
> UINT32
> > >pointer.
> > >>>>>>>>
> > >>>>>>>> Cc: Jordan Justen
> > >>>>> <jordan.l.justen@intel.com<mailto:jordan.l.justen@intel.com>>
> > >>>>>>>> Cc: Andrew Fish <afish@apple.com<mailto:afish@apple.com>>
> > >>>>>>>> Cc: Ray Ni <ray.ni@intel.com<mailto:ray.ni@intel.com>>
> > >>>>>>>> Signed-off-by: Liming Gao
> > >>>>> <liming.gao@intel.com<mailto:liming.gao@intel.com>>
> > >>>>>>>> ---
> > >>>>>>>> EmulatorPkg/Win/Host/WinHost.c   | 6 +++---
> > >>>>>>>> EmulatorPkg/EmulatorPkg.dsc      | 7 ++++++-
> > >>>>>>>> EmulatorPkg/Win/Host/WinHost.inf | 6 ++++++
> > >>>>>>>> 3 files changed, 15 insertions(+), 4 deletions(-)
> > >>>>>>>>
> > >>>>>>>> diff --git a/EmulatorPkg/Win/Host/WinHost.c
> > >>>>>>>> b/EmulatorPkg/Win/Host/WinHost.c index
> > 9aba3c8959..e40ce32548
> > >>>>> 100644
> > >>>>>>>> --- a/EmulatorPkg/Win/Host/WinHost.c
> > >>>>>>>> +++ b/EmulatorPkg/Win/Host/WinHost.c
> > >>>>>>>> @@ -356,7 +356,7 @@ Returns:
> > >>>>>>>> INTN
> > >>>>>>>> EFIAPI
> > >>>>>>>> main (
> > >>>>>>>> -  IN  INTN  Argc,
> > >>>>>>>> +  IN  INT  Argc,
> > >>>>>>>> IN  CHAR8 **Argv,
> > >>>>>>>> IN  CHAR8 **Envp
> > >>>>>>>> )
> > >>>>>>>> @@ -391,8 +391,8 @@ Returns:
> > >>>>>>>> VOID                  *SecFile;
> > >>>>>>>> CHAR16                *MemorySizeStr;
> > >>>>>>>> CHAR16                *FirmwareVolumesStr;
> > >>>>>>>> -  UINT32                ProcessAffinityMask;
> > >>>>>>>> -  UINT32                SystemAffinityMask;
> > >>>>>>>> +  UINTN                 ProcessAffinityMask;
> > >>>>>>>> +  UINTN                 SystemAffinityMask;
> > >>>>>>>> INT32                 LowBit;
> > >>>>>>>>
> > >>>>>>>> //
> > >>>>>>>> diff --git a/EmulatorPkg/EmulatorPkg.dsc
> > >>>>> b/EmulatorPkg/EmulatorPkg.dsc
> > >>>>>>>> index 20f1187713..72532f5daf 100644
> > >>>>>>>> --- a/EmulatorPkg/EmulatorPkg.dsc
> > >>>>>>>> +++ b/EmulatorPkg/EmulatorPkg.dsc
> > >>>>>>>> @@ -237,9 +237,10 @@
> > >>>>>>>>
> > >>>>>>>> [Components]
> > >>>>>>>> !if "IA32" in $(ARCH) || "X64" in $(ARCH)
> > >>>>>>>> -  !if "MSFT" in $(FAMILY)
> > >>>>>>>> +  !if "MSFT" in $(FAMILY) || $(WIN_SEC_BUILD) == TRUE
> > >>>>>>>>   ##
> > >>>>>>>>   #  Emulator, OS WIN application
> > >>>>>>>> +    #  CLANG9 is cross OS tool chain. It depends on
> > >>>>>>>> + WIN_SEC_BUILD
> > >>>>> macro.
> > >>>>>>>>   ##
> > >>>>>>>>   EmulatorPkg/Win/Host/WinHost.inf !else @@ -419,7 +420,11
> > @@
> > >>>>>>>>
> > >>>>>>>> MSFT:DEBUG_*_*_CC_FLAGS = /Od /Oy-
> > MSFT:NOOPT_*_*_CC_FLAGS =
> > >>>>>>>> /Od /Oy-
> > >>>>>>>> +  GCC:DEBUG_CLANG9_*_CC_FLAGS =-O0 -Wno-unused-
> > >command-
> > >>>>> line-
> > >>>>>>>> argument
> > >>>>>>>> + -Wno-incompatible-pointer-types -Wno-enum-conversion
> > >>>>>>>> + -Wno-incompatible-pointer-types -Wno-sometimes-
> > uninitialized
> > >>>>>>>> + -Wno-constant-conversion -Wno-main-return-type
> > >>>>>>>>
> > >>>>>>>> MSFT:*_*_*_DLINK_FLAGS     = /ALIGN:4096 /FILEALIGN:4096
> > >>>>>>>> /SUBSYSTEM:CONSOLE
> > >>>>>>>> MSFT:DEBUG_*_*_DLINK_FLAGS =
> > >>>>>>>> /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT)
> /BASE:0x10000
> > >>>>>>>> MSFT:NOOPT_*_*_DLINK_FLAGS =
> > >>>>>>>> /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT)
> /BASE:0x10000
> > >>>>>>>> +  GCC:*_CLANG9_*_DLINK_FLAGS     = /ALIGN:4096
> > >/FILEALIGN:4096
> > >>>>>>>> /SUBSYSTEM:CONSOLE
> > >>>>>>>> +  GCC:DEBUG_CLANG9_*_DLINK_FLAGS =
> > >>>>>>>> + /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT)
> > /BASE:0x10000
> > >>>>>>>> + GCC:NOOPT_CLANG9_*_DLINK_FLAGS =
> > >>>>>>>> + /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT)
> > /BASE:0x10000
> > >>>>>>>> diff --git a/EmulatorPkg/Win/Host/WinHost.inf
> > >>>>>>>> b/EmulatorPkg/Win/Host/WinHost.inf
> > >>>>>>>> index 631d5a6470..1adca10d79 100644
> > >>>>>>>> --- a/EmulatorPkg/Win/Host/WinHost.inf
> > >>>>>>>> +++ b/EmulatorPkg/Win/Host/WinHost.inf
> > >>>>>>>> @@ -95,3 +95,9 @@
> > >>>>>>>> MSFT:*_VS2017_X64_DLINK_FLAGS      =
> > >>>>>>>> /LIBPATH:"%VCToolsInstallDir%lib\x64"
> > >>>>>>>>
> /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64"
> > >>>>>>>>
> > >/LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64"
> > >>>>>>>> /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB
> /IGNORE:4086
> > >/MAP
> > >>>>>>>> /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG Kernel32.lib
> > >MSVCRTD.lib
> > >>>>>>>> vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib
> > Advapi32.lib
> > >>>>>>>> MSFT:*_*_X64_ASM_FLAGS            == /nologo /W3 /WX /c /Cx
> /Zd
> > >/W0
> > >>>>> /Zi
> > >>>>>>>> MSFT:*_*_X64_ASMLINK_FLAGS        == /link /nologo
> > >>>>>>>> +
> > >>>>>>>> +  GCC:*_CLANG9_X64_DLINK_FLAGS ==
> > >>>>>>>> /out:"$(BIN_DIR)\$(BASE_NAME).exe" /base:0x10000000
> > >>>>>>>> /pdb:"$(BIN_DIR)\$(BASE_NAME).pdb"
> > >>>>>>>>
> /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64"
> > >>>>>>>>
> > >/LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64"
> > >>>>>>>> /LIBPATH:"%VCToolsInstallDir%lib\x64"   /NOLOGO
> > >>>>> /SUBSYSTEM:CONSOLE
> > >>>>>>>> /NODEFAULTLIB /IGNORE:4086  /OPT:REF /DEBUG
> > >/MACHINE:AMD64
> > >>>>>>>> Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib
> > >User32.lib
> > >>>>>>>> Winmm.lib Advapi32.lib /lldmap
> > >>>>>>>> /EXPORT:InitializeDriver=_ModuleEntryPoint
> > >>>>>>>> +  GCC:*_CLANG9_X64_CC_FLAGS == -m64 -g -fshort-wchar
> > >>>>>>>> + -fno-strict-aliasing -Wall -c -include AutoGen.h -D
> > >>>>>>>> + _CRT_SECURE_NO_WARNINGS -Wnonportable-include-path
> -D
> > >>>>> UNICODE
> > >>>>>>>> -D
> > >>>>>>>> + _CRT_SECURE_NO_DEPRECATE
> > >>>>>>>> +
> > >>>>>>>> +  GCC:*_CLANG9_IA32_DLINK_FLAGS ==
> > >>>>>>>> /out:"$(BIN_DIR)\$(BASE_NAME).exe" /base:0x10000000
> > >>>>>>>> /pdb:"$(BIN_DIR)\$(BASE_NAME).pdb"
> > >>>>>>>>
> /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86"
> > >>>>>>>>
> > >/LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86"
> > >>>>>>>> /LIBPATH:"%VCToolsInstallDir%ib\x86"   /NOLOGO
> > >>>>> /SUBSYSTEM:CONSOLE
> > >>>>>>>> /NODEFAULTLIB /IGNORE:4086  /OPT:REF /DEBUG
> /MACHINE:I386
> > >>>>>>>> Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib
> > >User32.lib
> > >>>>>>>> Winmm.lib Advapi32.lib /lldmap
> > >>>>>>>> /EXPORT:InitializeDriver=_ModuleEntryPoint
> > >>>>>>>> +  GCC:*_CLANG9_IA32_CC_FLAGS == -m32 -g -fshort-wchar
> > >>>>>>>> + -fno-strict-aliasing -Wall -c -include AutoGen.h -D
> > >>>>>>>> + _CRT_SECURE_NO_WARNINGS -Wnonportable-include-path
> -D
> > >>>>> UNICODE
> > >>>>>>>> -D
> > >>>>>>>> + _CRT_SECURE_NO_DEPRECATE
> > >>>>>>>> --
> > >>>>>>>> 2.13.0.windows.1
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>
> > >>>
> > >
> > >
> 
> 
> 


  parent reply	other threads:[~2019-11-12  3:10 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-17  6:55 [Patch v3 00/11] New Cross OS tool chain CLANG9 Liming Gao
2019-10-17  6:55 ` [Patch v3 01/11] BaseTools tools_def.template: Remove unnecessary $(DEST_DIR_DEBUG) path Liming Gao
2019-10-17  6:55 ` [Patch v3 02/11] BaseTools tools_def: Add CLANG9 tool chain to directly generate PE image Liming Gao
2019-10-17  8:18   ` Bob Feng
2019-10-17  6:55 ` [Patch v3 03/11] BaseTools GenFw: Fix the issue to update the wrong size as SectionSize Liming Gao
2019-10-17  8:17   ` Bob Feng
2019-10-17  6:55 ` [Patch v3 04/11] MdePkg Base.h: Add definition for CLANG9 tool chain Liming Gao
2019-10-22  1:44   ` [edk2-devel] " Michael D Kinney
2019-10-17  6:55 ` [Patch v3 05/11] MdePkg BaseIoLibIntrinsic: Remove __inline__ attribute for IO functions Liming Gao
2019-10-17  6:55 ` [Patch v3 06/11] MdeModulePkg LzmaCustomDecompressLib: Update macro to be same in CLANG tool Liming Gao
2019-10-17  6:55 ` [Patch v3 07/11] MdeModulePkg RegularExpressionDxe: Disable warning for CLANG9 tool chain Liming Gao
2019-10-17  6:55 ` [Patch v3 08/11] CryptoPkg: Append options to make CLANG9 tool chain pass build Liming Gao
2019-10-17  6:55 ` [Patch v3 09/11] CryptoPkg IntrinsicLib: Make _fltused always be used Liming Gao
2019-10-17  6:55 ` [Patch v3 10/11] EmulatorPkg: Enable CLANG9 tool chain Liming Gao
2019-10-17  7:27   ` Ni, Ray
2019-10-17 17:15     ` Andrew Fish
2019-10-18 14:27       ` Liming Gao
2019-10-25 18:45         ` [edk2-devel] " Andrew Fish
2019-10-30 15:43           ` Liming Gao
2019-11-07 17:19             ` Leif Lindholm
2019-11-07 17:54               ` Andrew Fish
2019-11-07 18:37                 ` Leif Lindholm
2019-11-08  0:44                   ` Andrew Fish
2019-11-08  1:49                   ` Liming Gao
2019-11-08  3:34                     ` Ni, Ray
2019-11-11 16:39                       ` Leif Lindholm
2019-11-11 16:51                         ` Andrew Fish
2019-11-11 16:51                         ` Andrew Fish
2019-11-12  0:40                           ` Liming Gao
2019-11-12  1:46                             ` Ni, Ray
     [not found]                             ` <15D646FBD4763D55.27853@groups.io>
2019-11-12  3:10                               ` Ni, Ray [this message]
     [not found]                               ` <15D64B9456F8C33A.2582@groups.io>
2019-11-12  3:22                                 ` Ni, Ray
2019-11-12  3:48                                   ` Michael D Kinney
2019-11-12  6:48                                     ` Ni, Ray
2019-11-12 15:26                                       ` Liming Gao
2019-11-11 16:36                     ` Leif Lindholm
2019-11-07 17:06           ` Leif Lindholm
2019-10-17  6:55 ` [Patch v3 11/11] OvmfPkg: " Liming Gao
2019-10-17 16:30 ` [edk2-devel] [Patch v3 00/11] New Cross OS tool chain CLANG9 Leif Lindholm
2019-10-18 13:21   ` Liming Gao

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=734D49CCEBEEF84792F5B80ED585239D5C358F2F@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