public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Liming Gao" <liming.gao@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"leif.lindholm@linaro.org" <leif.lindholm@linaro.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: Re: [edk2-devel] [Patch 0/7] Add new CLANG8ELF tool chain for new LLVM/CLANG8
Date: Tue, 30 Apr 2019 04:21:29 +0000	[thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E43FCA8@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <20190429165124.cnacggdw4guz2e64@bivouac.eciton.net>

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Leif Lindholm
> Sent: Tuesday, April 30, 2019 12:51 AM
> To: devel@edk2.groups.io; Gao, Liming <liming.gao@intel.com>
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Subject: Re: [edk2-devel] [Patch 0/7] Add new CLANG8ELF tool chain for new LLVM/CLANG8
> 
> On Sun, Apr 28, 2019 at 12:55:02AM +0000, Liming Gao wrote:
> > >> This tool chain can be used to compile the firmware code. On windows OS,
> > >> Visual Studio is still required to compile BaseTools C tools and
> > >> provide nmake.exe for makefile. On Linux/Mac OS, gcc is used to compile
> > >> BaseTools C tools. make is used for makefile.
> > >>
> > >> This tool chain is verified on OVMF Ia32, X64 and Ia32X64 to boot Shell.
> > >> This tool chain is verified in Windows/Linux and Mac OS.
> > >
> > >Hello Liming,
> > >
> > >This series confuses me. The existing CLANGxx toolchains already use
> > >GenFw and ELF to PE/COFF conversion, so the name CLANG8ELF is
> > >misleading.
> > >
> > LLVM/CLANG8.0 compiler supports to generate PE image or ELF
> > image. This tool chain is to generate ELF image and be converted to
> > PE image.
> 
> Which is what CLANG38 does - so why do we need a completely new
> toolchain profile? (Shortly after we got rid of a bunch of unneeded
> ones.)
> 
CLANG38 depends on GNU binutils linker. It supports Linux only. It requires CLANG source code to be compiled, and be used. 
CLANG8ELF depends on LLVM LLD. LLVM/CLANG release provides the prebuilt binaries 
for Windows/Linux/Mac. It is easy for user to setup the environment. User can also use this tool chain in the different OS.

> > I am investigating another tool chain with CLANG8.0 to
> > directly generate PE image. To differentiate them, I use the tool
> > chain name CLANG8ELF and CLANG8PE for them.
> 
> Why do we want two different toolchain profiles that generate
> identical output in different ways, using the same tools?
Generate	the different debug symbols (DWARF, PDB) for the different debugger. Windows user may use
WinDbg for the source level debug. Generate the different executable image to run Emulator in Windows or Linux.
I need that CLANG8 tool chain provides the same functionality to VS2015, GCC and XCODE tool chain. 
If so, the developer can use the single tool chain for his development. 
> 
> > >Also, it seems that the primary difference is using LLD instead of GNU
> > >ld, but this has nothing to do with the Clang version.
> > >
> > >What is the benefit of using LLD over GNU ld? It seems we are working
> > >around various incompatibilities, and I think this is only justified
> > >if LLD has some benefit over GNU ld.
> >
> > LLD is part of LLVM/CLANG8 tool set. User can get all required
> > compilers and linkers from
> > http://releases.llvm.org/download.html#8.0.0.
> > LLVM8 release includes Windows/Linux/Mac version. User can download
> > it and install them together. This tool chain is the unified tool
> > chain to be used in Windows/Linux/Mac OS.
> 
> Can we note already build under all of these operating systems with
> the GNU binutils linker?
> 

I am not sure. Now, I use VS2015 on Windows OS, use GCC5 on Linux OS, and XCODE5 on Mac OS.
VS2015 and XCODE5 doesn't use GNU binutils linker.

> When developing under Linux, I will use the toolchain provided by my
> distribution.
> 
> /
>     Leif
> 
> 


  reply	other threads:[~2019-04-30  4:21 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-26 14:42 [Patch 0/7] Add new CLANG8ELF tool chain for new LLVM/CLANG8 Liming Gao
2019-04-26 14:42 ` [Patch 1/7] BaseTools: Add ClangBase.lds for CLANG8 tool chain with max-page-size Liming Gao
2019-04-26 14:42 ` [Patch 2/7] BaseTools GenFw: Support CLANG8ELF with conversion ELF to PE/COFF image Liming Gao
2019-04-26 14:42 ` [Patch 3/7] BaseTools: Update build_rule.template for ASLC rule with full C flags Liming Gao
2019-04-26 14:42 ` [Patch 4/7] BaseTools: Update build_rule to skip CLANG resource section generation Liming Gao
2019-04-26 14:42 ` [Patch 5/7] BaseTools: Update tools_def.template to directly refer to AutoGen.h Liming Gao
2019-04-26 14:42 ` [Patch 6/7] BaseTools: Add new CLANG8ELF tool chain for new LLVM/CLANG8 Liming Gao
2019-05-17  1:16   ` [edk2-devel] " Bob Feng
2019-04-26 14:42 ` [Patch 7/7] OvmfPkg: Update DSC/FDF to support CLANG8ELF tool chain Liming Gao
2019-05-19 13:24   ` [edk2-devel] " Ard Biesheuvel
2019-05-19 13:45     ` Liming Gao
2019-05-20 14:33   ` Laszlo Ersek
2019-04-26 16:33 ` [edk2-devel] [Patch 0/7] Add new CLANG8ELF tool chain for new LLVM/CLANG8 Ard Biesheuvel
2019-04-28  0:55   ` Liming Gao
2019-04-29 16:51     ` Leif Lindholm
2019-04-30  4:21       ` Liming Gao [this message]
2019-04-30 11:01         ` Leif Lindholm
2019-04-30 13:11           ` Steven Shi
2019-05-05  6:18           ` Liming Gao
     [not found]           ` <159BB5054AE8ABA6.12625@groups.io>
2019-05-16 13:29             ` Liming Gao
2019-05-19 20:14     ` Jordan Justen
2019-05-20 13:47       ` Liming Gao
2019-05-20 22:52         ` Andrew Fish
2019-05-21  2:18           ` Liming Gao
2019-05-21  3:36             ` Andrew Fish
     [not found] ` <15990D503F545BBC.4588@groups.io>
2019-05-19 11:59   ` [edk2-devel] [Patch 7/7] OvmfPkg: Update DSC/FDF to support CLANG8ELF tool chain Liming Gao
2019-05-21 21:13 ` [edk2-devel] [Patch 0/7] Add new CLANG8ELF tool chain for new LLVM/CLANG8 Laszlo Ersek

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=4A89E2EF3DFEDB4C8BFDE51014F606A14E43FCA8@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