From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web09.7584.1622600310388156476 for ; Tue, 01 Jun 2021 19:18:31 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: gaoliming@byosoft.com.cn) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Wed, 02 Jun 2021 10:18:24 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , "'Shi, Steven'" Cc: "'Leif Lindholm'" , "'Ard Biesheuvel'" , "'Andrew Fish'" , "'Justen, Jordan L'" References: <20210526082310.1597-1-ray.ni@intel.com> <20210526082310.1597-2-ray.ni@intel.com> ,<000201d7536c$72484030$56d8c090$@byosoft.com.cn> <009101d755cc$530c3fc0$f924bf40$@byosoft.com.cn> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIDEvNF0gQmFzZVRvb2xzOiBDcmVhdGUgQ0xBTkdEV0FSRiB0b29sY2hhaW4=?= Date: Wed, 2 Jun 2021 10:18:24 +0800 Message-ID: <002b01d75755$90ddca50$b2995ef0$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQDN+np5LmVk0lkCLYcaVCRRi2jpIAJZ9ZndAZmd0tgCXgO97gJYihNfAVaDn0oBa/98TKy3UHBg Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Ray: Original CLANGELF tool chain is verified on CLANG8. Can you verify it to= see whether it meet with your requirement?=20 If yes, this tool chain can be renamed to CLANGDWARF to match current CL= ANGPDB tool chain.=20 Thanks Liming > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Ni, Ray > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B46=E6=9C=881=E6=97=A5 = 23:11 > =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io; gaoliming@byosoft.com= .cn; Shi, Steven > > =E6=8A=84=E9=80=81: Leif Lindholm ; Ard Biesheuvel > ; 'Andrew Fish (afish@apple.com)' > ; Justen, Jordan L > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH 1/4] BaseTools: Create CLANG= DWARF > toolchain >=20 > Liming, > I happen to notice the below patches which you sent out two years ago: > https://edk2.groups.io/g/devel/topic/31354044#41053 >=20 > It seems to me that I can drop my CLANGDWARF change completely and use > your patches. >=20 > Correct? >=20 > Thanks, > Ray >=20 > From: devel@edk2.groups.io On Behalf Of gaoliming > Sent: Monday, May 31, 2021 11:23 AM > To: Ni, Ray ; devel@edk2.groups.io; Shi, Steven > > Subject: =E5=9B=9E=E5=A4=8D: [edk2-devel] [PATCH 1/4] BaseTools: Create = CLANGDWARF > toolchain >=20 > Ray: > If the tool chain generates ELF image, its ELF image can be converted t= o EFI > image by Edk2 GenFw tool. Then, this tool chain can be used for EFI > development. >=20 > So, I propose to make CLANGDWARF tool chain generate ELF image and EFI > image both. It can support the usage of ELF image generation. >=20 > Thanks > Liming > =E5=8F=91=E4=BB=B6=E4=BA=BA: Ni, Ray > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B45=E6=9C=8828=E6=97=A5= 22:31 > =E6=94=B6=E4=BB=B6=E4=BA=BA: mailto:devel@edk2.groups.io; mailto:gaolimi= ng@byosoft.com.cn; Shi, > Steven > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH 1/4] BaseTools: Create CLANG= DWARF > toolchain >=20 > Liming, > that is not the intention of this new toolchain. > we want to have a toolchain that can generate elf. or can you suggest a = new > name for this toolchain? >=20 > thanks, > ray > ________________________________________ > From: mailto:devel@edk2.groups.io on > behalf of gaoliming > Sent: Friday, May 28, 2021 10:52:06 AM > To: mailto:devel@edk2.groups.io ; Shi, Stev= en > ; Ni, Ray > Subject: =E5=9B=9E=E5=A4=8D: [edk2-devel] [PATCH 1/4] BaseTools: Create = CLANGDWARF > toolchain >=20 > Ray: > I would like to suggest CLANGDWARF also generate EFI image. If so, the > people can use this tool chain for EFI development with DWARF format deb= ug > symbol. >=20 > In dll generation phase, CLANGDWARF still generates dll image, then co= py > dll image to elf image. In EFI generation phase, dll image will be conve= rted to > EFI image. >=20 > Thanks > Liming > =E5=8F=91=E4=BB=B6=E4=BA=BA: mailto:devel@edk2.groups.io =E4=BB=A3=E8=A1=A8 > Steven Shi > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B45=E6=9C=8826=E6=97=A5= 19:35 > =E6=94=B6=E4=BB=B6=E4=BA=BA: mailto:devel@edk2.groups.io; Ni, Ray > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH 1/4] BaseTools: Create CLANG= DWARF > toolchain >=20 > Some suggestions: >=20 > 1. There are many blanks appending the line =E2=80=9C+ "$(DLINK)"= -o > ${dst} $(DLINK_FLAGS) @$(STATIC_LIBRARY_FILES_LIST) =E2=80=9C >=20 >=20 >=20 > 2. We need a toolchain dependency descirption in the > BaseTools\Conf\tools_def.template. Below is the example for CLANGPDB. > Please add one for the CLANGDWARF. > # CLANGPDB -Linux, Windows, Mac- Requires: > # Clang 9 or above from > http://releases.llvm.org/ > # Optional: > # Required to compile nasm > source: > # nasm compiler from > # NASM -- > http://www.nasm.us/ > # Required to build platforms or > ACPI tables: > # Intel(r) ACPI Compiler from > # https://acpica.org/download > s >=20 > 3. We could merge the CLANG38 and the CLANGDWARF toolchains together > in the future. >=20 >=20 > Thanks > Steven Shi >=20 >=20 > > -----Original Message----- > > From: mailto:devel@edk2.groups.io On > Behalf Of Ni, Ray > > Sent: Wednesday, May 26, 2021 4:23 PM > > To: mailto:devel@edk2.groups.io > > Subject: [edk2-devel] [PATCH 1/4] BaseTools: Create CLANGDWARF > > toolchain > > > > Signed-off-by: Ray Ni > > --- > > BaseTools/Conf/build_rule.template | 10 ++- > > BaseTools/Conf/tools_def.template | 98 > > ++++++++++++++++++++++++++++++ > > 2 files changed, 107 insertions(+), 1 deletion(-) > > > > diff --git a/BaseTools/Conf/build_rule.template > > b/BaseTools/Conf/build_rule.template > > index 1395792cd6..e69f963cc8 100755 > > --- a/BaseTools/Conf/build_rule.template > > +++ b/BaseTools/Conf/build_rule.template > > @@ -293,7 +293,10 @@ > > > > > > $(MAKE_FILE) > > > > > > > > - > > > > + > > > > + $(DEBUG_DIR)(+)$(MODULE_NAME).elf > > > > + > > > > + > > > > $(DEBUG_DIR)(+)$(MODULE_NAME).dll > > > > > > > > > > > > @@ -303,6 +306,11 @@ > > > > > > "$(DLINK)" /OUT:${dst} $(DLINK_FLAGS) $(DLINK_SPATH) > > @$(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) > > > > > > > > + > > > > + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) > @$(STATIC_LIBRARY_FILES_LIST) > > > > + "$(CP)" ${dst} $(DEBUG_DIR)(+)$(MODULE_NAME).debug > > > > + "$(OBJCOPY)" --strip-unneeded -R .eh_frame ${dst} > > > > + > > > > > > > > "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -Wl,--start- > > group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(CC_FLAGS) > > $(DLINK2_FLAGS) > > > > "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst} > > > > diff --git a/BaseTools/Conf/tools_def.template > > b/BaseTools/Conf/tools_def.template > > index 498696e583..390e297cc1 100755 > > --- a/BaseTools/Conf/tools_def.template > > +++ b/BaseTools/Conf/tools_def.template > > @@ -2828,6 +2828,104 @@ > NOOPT_CLANGPDB_X64_DLINK_FLAGS =3D > > /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE > > NOOPT_CLANGPDB_X64_DLINK2_FLAGS =3D > > > > NOOPT_CLANGPDB_X64_GENFW_FLAGS =3D --keepexceptiontable > > > > > > > > +######################################################### > > ########################### > > > > +# > > > > +# CLANGDWARF - This configuration is used to compile under > > Windows/Linux/Mac to produce > > > > +# ELF binaries using LLVM/Clang/LLD with Link Time Optimization > enabled > > > > +# > > > > +######################################################### > > ########################### > > > > +*_CLANGDWARF_*_*_FAMILY =3D GCC > > > > +*_CLANGDWARF_*_*_BUILDRULEFAMILY =3D CLANGDWARF > > > > +*_CLANGDWARF_*_MAKE_PATH =3D > ENV(CLANG_HOST_BIN)make > > > > +*_CLANGDWARF_*_*_DLL =3D > ENV(CLANGPDB_DLL) > > > > +*_CLANGDWARF_*_ASL_PATH =3D DEF(UNIX_IASL_BIN) > > > > + > > > > +*_CLANGDWARF_*_APP_FLAGS =3D > > > > +*_CLANGDWARF_*_ASL_FLAGS =3D > DEF(DEFAULT_WIN_ASL_FLAGS) > > > > +*_CLANGDWARF_*_ASL_OUTFLAGS =3D > > DEF(DEFAULT_WIN_ASL_OUTFLAGS) > > > > +*_CLANGDWARF_*_ASLDLINK_FLAGS =3D > DEF(MSFT_ASLDLINK_FLAGS) > > > > +*_CLANGDWARF_*_DEPS_FLAGS =3D > DEF(GCC_DEPS_FLAGS) > > > > + > > > > +DEFINE CLANGDWARF_IA32_PREFIX =3D ENV(CLANG_BIN) > > > > +DEFINE CLANGDWARF_X64_PREFIX =3D ENV(CLANG_BIN) > > > > + > > > > +DEFINE CLANGDWARF_IA32_TARGET =3D -target i686-pc-linux-gnu > > > > +DEFINE CLANGDWARF_X64_TARGET =3D -target > x86_64-pc-linux-gnu > > > > + > > > > +DEFINE CLANGDWARF_WARNING_OVERRIDES =3D -Wno-parentheses- > > equality -Wno-tautological-compare -Wno-tautological-constant-out-of- > > range-compare -Wno-empty-body -Wno-unused-const-variable -Wno- > > varargs -Wno-unknown-warning-option -Wno-microsoft-enum-forward- > > reference > > > > +DEFINE CLANGDWARF_ALL_CC_FLAGS =3D > DEF(GCC48_ALL_CC_FLAGS) > > DEF(CLANGDWARF_WARNING_OVERRIDES) -fno-stack-protector - > > funsigned-char -ftrap- > > function=3Dundefined_behavior_has_been_optimized_away_by_clang -Wno- > > address -Wno-shift-negative-value -Wno-unknown-pragmas -Wno- > > incompatible-library-redeclaration -Wno-null-dereference -mno-implicit= - > > float -mms-bitfields -mno-stack-arg-probe -nostdlib -nostdlibinc -fseh= - > > exceptions > > > > + > > > > +########################### > > > > +# CLANGDWARF IA32 definitions > > > > +########################### > > > > +*_CLANGDWARF_IA32_CC_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)clang > > > > +*_CLANGDWARF_IA32_SLINK_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)llvm-ar > > > > +*_CLANGDWARF_IA32_DLINK_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)ld.lld > > > > +*_CLANGDWARF_IA32_ASLDLINK_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)clang > > > > +*_CLANGDWARF_IA32_ASM_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)clang > > > > +*_CLANGDWARF_IA32_PP_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)clang > > > > +*_CLANGDWARF_IA32_VFRPP_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)clang > > > > +*_CLANGDWARF_IA32_ASLCC_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)clang > > > > +*_CLANGDWARF_IA32_ASLPP_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)clang > > > > +*_CLANGDWARF_IA32_OBJCOPY_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)llvm-objcopy > > > > + > > > > +*_CLANGDWARF_IA32_ASLCC_FLAGS =3D > DEF(GCC_ASLCC_FLAGS) -m32 > > -fno-lto DEF(CLANGDWARF_IA32_TARGET) > > > > +*_CLANGDWARF_IA32_ASM_FLAGS =3D > DEF(GCC_ASM_FLAGS) -m32 - > > march=3Di386 DEF(CLANGDWARF_IA32_TARGET) > > > > +*_CLANGDWARF_IA32_OBJCOPY_FLAGS =3D > > > > +*_CLANGDWARF_IA32_NASM_FLAGS =3D -f elf32 > > > > +*_CLANGDWARF_IA32_PP_FLAGS =3D > DEF(GCC_PP_FLAGS) > > DEF(CLANGDWARF_IA32_TARGET) > > > > +*_CLANGDWARF_IA32_ASLPP_FLAGS =3D > DEF(GCC_ASLPP_FLAGS) > > DEF(CLANGDWARF_IA32_TARGET) > > > > +*_CLANGDWARF_IA32_VFRPP_FLAGS =3D > DEF(GCC_VFRPP_FLAGS) > > DEF(CLANGDWARF_IA32_TARGET) > > > > + > > > > +DEBUG_CLANGDWARF_IA32_CC_FLAGS =3D > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 -Oz -flto -march=3Di586 > > DEF(CLANGDWARF_IA32_TARGET) -g > > > > +DEBUG_CLANGDWARF_IA32_DLINK_FLAGS =3D --eh-frame-hdr -q > --gc- > > sections -z common-page-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map > > $(DEST_DIR_DEBUG)/$(BASE_NAME).map --whole-archive -O3 -melf_i386 > -- > > format=3Delf > > > > +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS =3D > > > > + > > > > +RELEASE_CLANGDWARF_IA32_CC_FLAGS =3D > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 -Oz -flto -march=3Di586 > > DEF(CLANGDWARF_IA32_TARGET) > > > > +RELEASE_CLANGDWARF_IA32_DLINK_FLAGS =3D --eh-frame-hdr -q > --gc- > > sections -z common-page-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map > > $(DEST_DIR_DEBUG)/$(BASE_NAME).map --whole-archive -O3 -melf_i386 > -- > > format=3Delf > > > > +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS =3D > > > > + > > > > +NOOPT_CLANGDWARF_IA32_CC_FLAGS =3D > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 -O0 -march=3Di586 > > DEF(CLANGDWARF_IA32_TARGET) -g > > > > +NOOPT_CLANGDWARF_IA32_DLINK_FLAGS =3D --eh-frame-hdr -q > --gc- > > sections -z common-page-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map > > $(DEST_DIR_DEBUG)/$(BASE_NAME).map --whole-archive -O0 -melf_i386 > -- > > format=3Delf > > > > +NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS =3D > > > > + > > > > +########################## > > > > +# CLANGDWARF X64 definitions > > > > +########################## > > > > +*_CLANGDWARF_X64_CC_PATH =3D > > DEF(CLANGDWARF_X64_PREFIX)clang > > > > +*_CLANGDWARF_X64_SLINK_PATH =3D > > DEF(CLANGDWARF_X64_PREFIX)llvm-ar > > > > +*_CLANGDWARF_X64_DLINK_PATH =3D > > DEF(CLANGDWARF_X64_PREFIX)ld.lld > > > > +*_CLANGDWARF_X64_ASLDLINK_PATH =3D > > DEF(CLANGDWARF_X64_PREFIX)clang > > > > +*_CLANGDWARF_X64_ASM_PATH =3D > > DEF(CLANGDWARF_X64_PREFIX)clang > > > > +*_CLANGDWARF_X64_PP_PATH =3D > > DEF(CLANGDWARF_X64_PREFIX)clang > > > > +*_CLANGDWARF_X64_VFRPP_PATH =3D > > DEF(CLANGDWARF_X64_PREFIX)clang > > > > +*_CLANGDWARF_X64_ASLCC_PATH =3D > > DEF(CLANGDWARF_X64_PREFIX)clang > > > > +*_CLANGDWARF_X64_ASLPP_PATH =3D > > DEF(CLANGDWARF_X64_PREFIX)clang > > > > +*_CLANGDWARF_X64_OBJCOPY_PATH =3D > > DEF(CLANGDWARF_IA32_PREFIX)llvm-objcopy > > > > + > > > > +*_CLANGDWARF_X64_ASLCC_FLAGS =3D > DEF(GCC_ASLCC_FLAGS) -m64 > > -fno-lto DEF(CLANGDWARF_X64_TARGET) > > > > +*_CLANGDWARF_X64_ASM_FLAGS =3D > DEF(GCC_ASM_FLAGS) -m64 > > DEF(CLANGDWARF_X64_TARGET) > > > > +*_CLANGDWARF_X64_OBJCOPY_FLAGS =3D > > > > +*_CLANGDWARF_X64_NASM_FLAGS =3D -f elf64 > > > > +*_CLANGDWARF_X64_PP_FLAGS =3D > DEF(GCC_PP_FLAGS) > > DEF(CLANGDWARF_X64_TARGET) > > > > +*_CLANGDWARF_X64_ASLPP_FLAGS =3D > DEF(GCC_ASLPP_FLAGS) > > DEF(CLANGDWARF_X64_TARGET) > > > > +*_CLANGDWARF_X64_VFRPP_FLAGS =3D > DEF(GCC_VFRPP_FLAGS) > > DEF(CLANGDWARF_X64_TARGET) > > > > + > > > > +DEBUG_CLANGDWARF_X64_CC_FLAGS =3D > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "- > > DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpi= e -Oz > > -flto DEF(CLANGDWARF_X64_TARGET) -g > > > > +DEBUG_CLANGDWARF_X64_DLINK_FLAGS =3D --eh-frame-hdr -q > --gc- > > sections -z common-page-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map > > $(DEST_DIR_DEBUG)/$(BASE_NAME).map --whole-archive -O3 - > > melf_x86_64 --format=3Delf -pie > > > > +DEBUG_CLANGDWARF_X64_DLINK2_FLAGS =3D > > > > +DEBUG_CLANGDWARF_X64_GENFW_FLAGS =3D > --keepexceptiontable > > > > + > > > > +RELEASE_CLANGDWARF_X64_CC_FLAGS =3D > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "- > > DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpi= e -Oz > > -flto DEF(CLANGDWARF_X64_TARGET) > > > > +RELEASE_CLANGDWARF_X64_DLINK_FLAGS =3D --eh-frame-hdr -q > --gc- > > sections -z common-page-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map > > $(DEST_DIR_DEBUG)/$(BASE_NAME).map --whole-archive -O3 - > > melf_x86_64 --format=3Delf -pie > > > > +RELEASE_CLANGDWARF_X64_DLINK2_FLAGS =3D > > > > +RELEASE_CLANGDWARF_X64_GENFW_FLAGS =3D > > > > + > > > > +NOOPT_CLANGDWARF_X64_CC_FLAGS =3D > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "- > > DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpi= e -O0 > > DEF(CLANGDWARF_X64_TARGET) -g > > > > +NOOPT_CLANGDWARF_X64_DLINK_FLAGS =3D --eh-frame-hdr -q > --gc- > > sections -z common-page-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map > > $(DEST_DIR_DEBUG)/$(BASE_NAME).map --whole-archive -O0 - > > melf_x86_64 --format=3Delf -pie > > > > +NOOPT_CLANGDWARF_X64_DLINK2_FLAGS =3D > > > > +NOOPT_CLANGDWARF_X64_GENFW_FLAGS =3D > --keepexceptiontable > > > > + > > > > # > > > > # > > > > # XCODE5 support > > > > -- > > 2.31.1.windows.1 > > > > > > > > -=3D-=3D-=3D-=3D-=3D-=3D > > Groups.io Links: You receive all messages sent to this group. > > View/Reply Online (#75599): > https://edk2.groups.io/g/devel/message/75599 > > Mute This Topic: https://groups.io/mt/83095853/1781003 > > Group Owner: mailto:devel+owner@edk2.groups.io > > Unsubscribe: https://edk2.groups.io/g/devel/unsub [steven.shi@intel.co= m] > > -=3D-=3D-=3D-=3D-=3D-=3D > > >=20 >=20 >=20 >=20 >=20 >=20