From: "Liming Gao" <liming.gao@intel.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
edk2-devel-groups-io <devel@edk2.groups.io>
Subject: Re: [edk2-devel] [Patch 0/7] Add new CLANG8ELF tool chain for new LLVM/CLANG8
Date: Sun, 28 Apr 2019 00:55:02 +0000 [thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E431937@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <CAKv+Gu8kAD1NAzM6U2fM=TMg2VyrNSRSt9Cq1XbZQKNvrOzoQg@mail.gmail.com>
Ard:
I add my comments.
Thanks
Liming
>-----Original Message-----
>From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
>Sent: Saturday, April 27, 2019 12:33 AM
>To: edk2-devel-groups-io <devel@edk2.groups.io>; Gao, Liming
><liming.gao@intel.com>
>Subject: Re: [edk2-devel] [Patch 0/7] Add new CLANG8ELF tool chain for new
>LLVM/CLANG8
>
>On Fri, 26 Apr 2019 at 16:43, Liming Gao <liming.gao@intel.com> wrote:
>>
>> BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=1603
>> LLVM/CLANG8 formal release
>http://releases.llvm.org/download.html#8.0.0
>> It can be downloaded and installed in Windows/Linux/Mac OS.
>>
>> CLANG8ELF tool chain is added to generate ELF image, and convert to
>PE/COFF.
>> On Windows OS, set CLANG_HOST_BIN=n, set CLANG8_BIN=LLVM installed
>directory
>> CLANG_HOST_BIN is used CLANG_HOST_PREFIX. Prefix n is for nmake.
>> For example:
>> set CLANG_HOST_BIN=n
>> set CLANG8_BIN=C:\Program Files\LLVM\bin\
>> On Linux/Mac, export CLANG8_BIN=LLVM installed directory,
>CLANG_HOST_BIN is
>> not required, because there is no prefix for make.
>> For example:
>> export CLANG8_BIN=/home/clang8/bin/
>>
>> 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. 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.
>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.
>
>Thanks,
>Ard.
>
>
>
>> Liming Gao (7):
>> BaseTools: Add ClangBase.lds for CLANG8 tool chain with max-page-size
>> BaseTools GenFw: Support CLANG8ELF with conversion ELF to PE/COFF
>> image
>> BaseTools: Update build_rule.template for ASLC rule with full C flags
>> BaseTools: Update build_rule to skip CLANG resource section generation
>> BaseTools: Update tools_def.template to directly refer to AutoGen.h
>> BaseTools: Add new CLANG8ELF tool chain for new LLVM/CLANG8
>> OvmfPkg: Update DSC/FDF to support CLANG8ELF tool chain
>>
>> BaseTools/Source/C/GenFw/Elf32Convert.c | 12 +---
>> BaseTools/Source/C/GenFw/Elf64Convert.c | 11 +--
>> BaseTools/Conf/build_rule.template | 8 +--
>> BaseTools/Conf/tools_def.template | 121
>+++++++++++++++++++++++++++++---
>> BaseTools/Scripts/ClangBase.lds | 79 +++++++++++++++++++++
>> OvmfPkg/OvmfPkgIa32.dsc | 4 +-
>> OvmfPkg/OvmfPkgIa32.fdf | 2 +-
>> OvmfPkg/OvmfPkgIa32X64.dsc | 4 +-
>> OvmfPkg/OvmfPkgIa32X64.fdf | 2 +-
>> OvmfPkg/OvmfPkgX64.dsc | 4 +-
>> OvmfPkg/OvmfPkgX64.fdf | 2 +-
>> 11 files changed, 213 insertions(+), 36 deletions(-)
>> create mode 100644 BaseTools/Scripts/ClangBase.lds
>>
>> --
>> 2.13.0.windows.1
>>
>>
>>
>>
next prev parent reply other threads:[~2019-04-28 0:55 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 [this message]
2019-04-29 16:51 ` Leif Lindholm
2019-04-30 4:21 ` Liming Gao
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=4A89E2EF3DFEDB4C8BFDE51014F606A14E431937@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