From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from rn-mailsvcp-ppex-lapp45.apple.com (rn-mailsvcp-ppex-lapp45.apple.com [17.179.253.49]) by mx.groups.io with SMTP id smtpd.web10.540.1635896078665952243 for ; Tue, 02 Nov 2021 16:34:38 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@apple.com header.s=20180706 header.b=DGQMVeg5; spf=pass (domain: apple.com, ip: 17.179.253.49, mailfrom: afish@apple.com) Received: from pps.filterd (rn-mailsvcp-ppex-lapp45.rno.apple.com [127.0.0.1]) by rn-mailsvcp-ppex-lapp45.rno.apple.com (8.16.1.2/8.16.1.2) with SMTP id 1A2NWbmI010779; Tue, 2 Nov 2021 16:34:20 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=mK9omDAgzLwCQ7PERV147AfxNm6HevJm6/8wUZaB490=; b=DGQMVeg5BFM+aKMUifVs7LBKV2JTct78DjzFlNAOwacQWUhMF0T7opPAHLTQNZr1nzMl RFU9dGBwlkOqSn9oyRqRAtuLzPGR9VdnhiS6uLpCbaR7l42plcEdO+3An0AuAokTJWwV dapArOAdcl5aMH4F+R/QdVycNE7iKW4SJWJR6ID66GTOuFKaBSkC3hVEEDpzTrgMc9+u 2t42MgukNSIMsl915JBpBaLdra07UOT96g4oNBIeBSAH9GGXKJwb26TJDS8iH2A/dG6l virA/hTcrvX4tSKgtkWNP05egI8HLY8YXwl03lY97O1VBbVUg/faANXuFC2Nnh7EsJR4 jw== Received: from rn-mailsvcp-mta-lapp01.rno.apple.com (rn-mailsvcp-mta-lapp01.rno.apple.com [10.225.203.149]) by rn-mailsvcp-ppex-lapp45.rno.apple.com with ESMTP id 3c14bw128a-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Tue, 02 Nov 2021 16:34:20 -0700 Received: from rn-mailsvcp-mmp-lapp04.rno.apple.com (rn-mailsvcp-mmp-lapp04.rno.apple.com [17.179.253.17]) by rn-mailsvcp-mta-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPS id <0R1Y00UBNXH6JCI0@rn-mailsvcp-mta-lapp01.rno.apple.com>; Tue, 02 Nov 2021 16:34:18 -0700 (PDT) Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp04.rno.apple.com by rn-mailsvcp-mmp-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) id <0R1Y00P00X8EHQ00@rn-mailsvcp-mmp-lapp04.rno.apple.com>; Tue, 02 Nov 2021 16:34:18 -0700 (PDT) X-Va-A: X-Va-T-CD: fcd940a3063d28518664f76484c3e186 X-Va-E-CD: 6fefdb4ce1bdddb8e800821ec554a6f1 X-Va-R-CD: cea9025379e3658a64f522047f98fd26 X-Va-CD: 0 X-Va-ID: d573ba1a-5452-47f2-8303-ce8adbf90358 X-V-A: X-V-T-CD: fcd940a3063d28518664f76484c3e186 X-V-E-CD: 6fefdb4ce1bdddb8e800821ec554a6f1 X-V-R-CD: cea9025379e3658a64f522047f98fd26 X-V-CD: 0 X-V-ID: 941f5a34-c6fa-473f-b165-aaffc4e758ba X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425,18.0.790 definitions=2021-11-02_05:2021-11-01,2021-11-02 signatures=0 Received: from [17.235.17.139] (unknown [17.235.17.139]) by rn-mailsvcp-mmp-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPSA id <0R1Y003NNXH4VX00@rn-mailsvcp-mmp-lapp04.rno.apple.com>; Tue, 02 Nov 2021 16:34:18 -0700 (PDT) From: "Andrew Fish" Message-id: <400DC68B-F514-40DD-9405-84ED342BB948@apple.com> MIME-version: 1.0 (Mac OS X Mail 14.0 \(3654.20.0.2.1\)) Subject: Re: [EXTERNAL] [edk2-devel] [PATCH v1 06/16] ArmPkg and BaseTools: Move the GccLto binaries from ArmPkg to BaseTools Date: Tue, 02 Nov 2021 16:34:15 -0700 In-reply-to: Cc: "Lindholm, Leif" , "brbarkel@microsoft.com" , Ard Biesheuvel , "Feng, Bob C" , Liming Gao , "Chen, Yuwei" , Sean Brogan To: edk2-devel-groups-io , bret.barkelew@microsoft.com References: <20211101195648.6420-1-brbarkel@microsoft.com> <20211101195648.6420-7-brbarkel@microsoft.com> <20211102095514.o5ermrxjikklgy3n@leviathan> X-Mailer: Apple Mail (2.3654.20.0.2.1) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425,18.0.790 definitions=2021-11-02_05:2021-11-01,2021-11-02 signatures=0 Content-type: multipart/alternative; boundary="Apple-Mail=_59A5F5EF-7DE1-4562-9F95-D5B120508F28" --Apple-Mail=_59A5F5EF-7DE1-4562-9F95-D5B120508F28 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Nov 2, 2021, at 12:45 PM, Bret Barkelew via groups.io wrote: >=20 > Good call. Maintainers, your opinion? > =20 > - Bret > =20 > From: Leif Lindholm via groups.io > Sent: Tuesday, November 2, 2021 2:55 AM > To: brbarkel@microsoft.com > Cc: devel@edk2.groups.io ; Ard Biesheuvel ; Feng, Bob C = ; Liming Gao ; Chen, Yuwei ; Sean Brogan > Subject: [EXTERNAL] Re: [edk2-devel] [PATCH v1 06/16] ArmPkg and BaseTool= s: Move the GccLto binaries from ArmPkg to BaseTools > =20 > On Mon, Nov 01, 2021 at 12:56:38 -0700, brbarkel@microsoft.com wrote: > > From: Bret Barkelew > > >=20 > > This aligns better with Mu's philosophy around dependency structuring > > and is one of the steps to enable Basecore to have zero CI dependencies > > on other Mu repos. > >=20 > > REF: https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%= 2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3650&data=3D04%7C01%7Cbr= et.barkelew%40microsoft.com%7Cc9129586336447a44c3908d99de6e1d1%7C72f988bf86= f141af91ab2d7cd011db47%7C1%7C0%7C637714437251132216%7CUnknown%7CTWFpbGZsb3d= 8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&= amp;sdata=3DijjQG1L4fScVxSn5nIBQGrFHLVtNbuTfd0YYLGdw8sg%3D&reserved=3D0= > >=20 > > Cc: Leif Lindholm > > > Cc: Ard Biesheuvel > > > Cc: Bob Feng > > > Cc: Liming Gao > > > Cc: Yuwei Chen > > > Cc: Sean Brogan > > > Signed-off-by: Bret Barkelew > >=20 > No objections to this for any of my use-cases, but I'd like for one of > the BaseTools maintainers to comment on whether this breaks anything > with regards to EDK_TOOLS_PATH, or if we can finally get rid of that > and replace it with $WORKSPACE/BaseTools globally. >=20 >=20 Our internal repo uses EDK_TOOLS_PATH. In our case it is $(WORKSPACE)/edk2/= BaseTools. We have a PACKAGES_PATH set to $(WORKSPACE)/edk2 and magic happe= ns.=20 So I=E2=80=99m thinking maybe: $(EDK_TOOLS_PATH)/Bin/GccLto Vs: $(WORKSPACE)/BaseTools/Bin/GccLto If EDK_TOOLS_PATH gets ripped out, it should be one atomic remove, but let = us not stick that on Bret.=20 Thanks, Andrew Fish > / > Leif >=20 > > --- > > {ArmPkg/Library =3D> BaseTools/Bin}/GccLto/liblto-aarch64.a | Bin > > {ArmPkg/Library =3D> BaseTools/Bin}/GccLto/liblto-aarch64.s | 0 > > {ArmPkg/Library =3D> BaseTools/Bin}/GccLto/liblto-arm.a | Bin > > {ArmPkg/Library =3D> BaseTools/Bin}/GccLto/liblto-arm.s | 0 > > BaseTools/Conf/tools_def.template | 19 ++++++= ++++--------- > > 5 files changed, 10 insertions(+), 9 deletions(-) > >=20 > > diff --git a/ArmPkg/Library/GccLto/liblto-aarch64.a b/BaseTools/Bin/Gcc= Lto/liblto-aarch64.a > > similarity index 100% > > rename from ArmPkg/Library/GccLto/liblto-aarch64.a > > rename to BaseTools/Bin/GccLto/liblto-aarch64.a > > diff --git a/ArmPkg/Library/GccLto/liblto-aarch64.s b/BaseTools/Bin/Gcc= Lto/liblto-aarch64.s > > similarity index 100% > > rename from ArmPkg/Library/GccLto/liblto-aarch64.s > > rename to BaseTools/Bin/GccLto/liblto-aarch64.s > > diff --git a/ArmPkg/Library/GccLto/liblto-arm.a b/BaseTools/Bin/GccLto/= liblto-arm.a > > similarity index 100% > > rename from ArmPkg/Library/GccLto/liblto-arm.a > > rename to BaseTools/Bin/GccLto/liblto-arm.a > > diff --git a/ArmPkg/Library/GccLto/liblto-arm.s b/BaseTools/Bin/GccLto/= liblto-arm.s > > similarity index 100% > > rename from ArmPkg/Library/GccLto/liblto-arm.s > > rename to BaseTools/Bin/GccLto/liblto-arm.s > > diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_d= ef.template > > index 2e6b382ab623..cd8899d24d4a 100755 > > --- a/BaseTools/Conf/tools_def.template > > +++ b/BaseTools/Conf/tools_def.template > > @@ -15,7 +15,8 @@ > > # 2.00 - Initial version with changes for CI > > # - Change RC path to use plugin > > # > > -#!VERSION=3D2.00 > > +# 2.10 - Move GccLto files to a tools path to be more repository layou= t agnostic > > +#!VERSION=3D2.10 > > =20 > > IDENTIFIER =3D Default TOOL_CHAIN_CONF > > =20 > > @@ -2386,10 +2387,10 @@ RELEASE_GCC5_X64_DLINK_FLAGS =3D DEF(GCC5_X= 64_DLINK_FLAGS) -flto -Os > > *_GCC5_ARM_CC_XIPFLAGS =3D DEF(GCC5_ARM_CC_XIPFLAGS) > > =20 > > DEBUG_GCC5_ARM_CC_FLAGS =3D DEF(GCC5_ARM_CC_FLAGS) -flto -Wno= -unused-but-set-variable -Wno-unused-const-variable > > - DEBUG_GCC5_ARM_DLINK_FLAGS =3D DEF(GCC5_ARM_DLINK_FLAGS) -flto -= Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=3D-pass-t= hrough=3D-llto-arm > > + DEBUG_GCC5_ARM_DLINK_FLAGS =3D DEF(GCC5_ARM_DLINK_FLAGS) -flto -= Os -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-arm -Wl,-plugin-opt=3D-pass-th= rough=3D-llto-arm > > =20 > > RELEASE_GCC5_ARM_CC_FLAGS =3D DEF(GCC5_ARM_CC_FLAGS) -flto -Wno= -unused-but-set-variable -Wno-unused-const-variable > > -RELEASE_GCC5_ARM_DLINK_FLAGS =3D DEF(GCC5_ARM_DLINK_FLAGS) -flto -= Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=3D-pass-t= hrough=3D-llto-arm > > +RELEASE_GCC5_ARM_DLINK_FLAGS =3D DEF(GCC5_ARM_DLINK_FLAGS) -flto -= Os -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-arm -Wl,-plugin-opt=3D-pass-th= rough=3D-llto-arm > > =20 > > NOOPT_GCC5_ARM_CC_FLAGS =3D DEF(GCC5_ARM_CC_FLAGS) -O0 > > NOOPT_GCC5_ARM_DLINK_FLAGS =3D DEF(GCC5_ARM_DLINK_FLAGS) -O0 > > @@ -2420,11 +2421,11 @@ RELEASE_GCC5_ARM_DLINK_FLAGS =3D DEF(GCC5_A= RM_DLINK_FLAGS) -flto -Os -L$(WORKS > > *_GCC5_AARCH64_CC_XIPFLAGS =3D DEF(GCC5_AARCH64_CC_XIPFLAGS) > > =20 > > DEBUG_GCC5_AARCH64_CC_FLAGS =3D DEF(GCC5_AARCH64_CC_FLAGS) -flto = -Wno-unused-but-set-variable -Wno-unused-const-variable > > - DEBUG_GCC5_AARCH64_DLINK_FLAGS =3D DEF(GCC5_AARCH64_DLINK_FLAGS) -fl= to -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt= =3D-pass-through=3D-llto-aarch64 -Wno-lto-type-mismatch > > + DEBUG_GCC5_AARCH64_DLINK_FLAGS =3D DEF(GCC5_AARCH64_DLINK_FLAGS) -fl= to -Os -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-aarch64 -Wl,-plugin-opt=3D= -pass-through=3D-llto-aarch64 -Wno-lto-type-mismatch > > DEBUG_GCC5_AARCH64_DLINK_XIPFLAGS =3D -z common-page-size=3D0x20 > > =20 > > RELEASE_GCC5_AARCH64_CC_FLAGS =3D DEF(GCC5_AARCH64_CC_FLAGS) -flto = -Wno-unused-but-set-variable -Wno-unused-const-variable > > -RELEASE_GCC5_AARCH64_DLINK_FLAGS =3D DEF(GCC5_AARCH64_DLINK_FLAGS) -fl= to -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt= =3D-pass-through=3D-llto-aarch64 -Wno-lto-type-mismatch > > +RELEASE_GCC5_AARCH64_DLINK_FLAGS =3D DEF(GCC5_AARCH64_DLINK_FLAGS) -fl= to -Os -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-aarch64 -Wl,-plugin-opt=3D= -pass-through=3D-llto-aarch64 -Wno-lto-type-mismatch > > RELEASE_GCC5_AARCH64_DLINK_XIPFLAGS =3D -z common-page-size=3D0x20 > > =20 > > NOOPT_GCC5_AARCH64_CC_FLAGS =3D DEF(GCC5_AARCH64_CC_FLAGS) -O0 > > @@ -2681,11 +2682,11 @@ DEFINE CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG3= 8_ARM_TARGET) DEF(GCC_ARM_DLINK_FLA > > *_CLANG38_ARM_CC_XIPFLAGS =3D DEF(GCC_ARM_CC_XIPFLAGS) > > =20 > > DEBUG_CLANG38_ARM_CC_FLAGS =3D DEF(CLANG38_ARM_CC_FLAGS) $(ARCHC= C_FLAGS) $(PLATFORM_FLAGS) -flto -O1 > > - DEBUG_CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG38_ARM_DLINK_FLAGS) -flt= o -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=3D= -pass-through=3D-llto-arm > > + DEBUG_CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG38_ARM_DLINK_FLAGS) -flt= o -Wl,-O1 -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-arm -Wl,-plugin-opt=3D-= pass-through=3D-llto-arm > > NOOPT_CLANG38_ARM_CC_FLAGS =3D DEF(CLANG38_ARM_CC_FLAGS) $(ARCHC= C_FLAGS) $(PLATFORM_FLAGS) -O0 > > NOOPT_CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG38_ARM_DLINK_FLAGS) > > RELEASE_CLANG38_ARM_CC_FLAGS =3D DEF(CLANG38_ARM_CC_FLAGS) $(ARCHC= C_FLAGS) $(PLATFORM_FLAGS) -flto -O3 > > -RELEASE_CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG38_ARM_DLINK_FLAGS) -flt= o -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=3D= -pass-through=3D-llto-arm > > +RELEASE_CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG38_ARM_DLINK_FLAGS) -flt= o -Wl,-O3 -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-arm -Wl,-plugin-opt=3D-= pass-through=3D-llto-arm > > =20 > > ################## > > # CLANG38 AARCH64 definitions > > @@ -2727,11 +2728,11 @@ DEFINE CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLA= NG38_AARCH64_TARGET) DEF(GCC_AARCH6 > > *_CLANG38_AARCH64_CC_XIPFLAGS =3D DEF(GCC_AARCH64_CC_XIPFLAGS) > > =20 > > DEBUG_CLANG38_AARCH64_CC_FLAGS =3D DEF(CLANG38_AARCH64_CC_FLAGS) = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -flto -O1 > > - DEBUG_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_DLINK_FLAG= S) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-pl= ugin-opt=3D-pass-through=3D-llto-aarch64 > > + DEBUG_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_DLINK_FLAG= S) -flto -Wl,-O1 -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-aarch64 -Wl,-plu= gin-opt=3D-pass-through=3D-llto-aarch64 > > NOOPT_CLANG38_AARCH64_CC_FLAGS =3D DEF(CLANG38_AARCH64_CC_FLAGS) = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O0 > > NOOPT_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_DLINK_FLAG= S) > > RELEASE_CLANG38_AARCH64_CC_FLAGS =3D DEF(CLANG38_AARCH64_CC_FLAGS) = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -flto -O3 > > -RELEASE_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_DLINK_FLAG= S) -flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-pl= ugin-opt=3D-pass-through=3D-llto-aarch64 > > +RELEASE_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_DLINK_FLAG= S) -flto -Wl,-O3 -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-aarch64 -Wl,-plu= gin-opt=3D-pass-through=3D-llto-aarch64 > > =20 > > ######################################################################= ############## > > # > > --=20 > > 2.31.1.windows.1 > >=20 >=20 >=20 >=20 >=20 >=20 > =20 >=20 --Apple-Mail=_59A5F5EF-7DE1-4562-9F95-D5B120508F28 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8

On Nov 2, 202= 1, at 12:45 PM, Bret Barkelew via g= roups.io <bret.barkelew=3Dmicrosoft.com@groups.io> wrote:
Good call. Maintainers, your opinion?
 
- Bret
 
From: Leif Lindholm v= ia groups.io
Sent: Tuesday, November 2, 2021 2:55 AM
To: = brbarkel@microsoft.com
Cc: devel@edk2.groups.io; Ard Biesheuvel; Feng, B= ob C; Liming Gao; = Chen, Yuwei; Sean BroganSubject:&n= bsp;[EXTERNAL] Re: [edk2-devel] [PATCH v1 06/16] ArmPkg and Base= Tools: Move the GccLto binaries from ArmPkg to BaseTools
 

On= Mon, Nov 01, 2021 at 12:56:38 -0700,=  brbarkel@microsoft.com wrote:
> From:= Bret Barkelew <brbarkel@microsoft.com&= gt;
> > This aligns better with Mu's philosophy around dependency= structuring
> and is one of the steps to enable Basecore = to have zero CI dependencies
> on other Mu repos.
> 
> REF: https://nam= 06.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fbugzilla.tianocore= .org%2Fshow_bug.cgi%3Fid%3D3650&amp;data=3D04%7C01%7Cbret.barkelew%40mi= crosoft.com%7Cc9129586336447a44c3908d99de6e1d1%7C72f988bf86f141af91ab2d7cd0= 11db47%7C1%7C0%7C637714437251132216%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjA= wMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=3D= ijjQG1L4fScVxSn5nIBQGrFHLVtNbuTfd0YYLGdw8sg%3D&amp;reserved=3D0
> 
> Cc: Leif Lindholm <leif@nuviainc.com<= /a>>
> Cc: Ard Biesheuvel <
ardb+tianocore@kernel.org>
> Cc: Bob Feng &l= t;bob.c.feng@intel.com>
>= ; Cc: Liming Gao <gaoliming@byosoft.com.c= n>
> Cc: Yuwei Chen <= yuwei.chen@intel.com>
> Cc: Sean Brogan <sean.brogan@microsoft.com>
&g= t; Signed-off-by: Bret Barkelew <bret.= barkelew@microsoft.com>

No objections t= o this for any of my use-cases, but I'd like for one of
the B= aseTools maintainers to comment on whether this breaks anything
with regards to EDK_TOOLS_PATH, or if we can finally get rid of that
and replace it with $WORKSPACE/BaseTools globally.

Our internal repo uses ED= K_TOOLS_PATH. In our case it is $(WORKSPACE)/edk2/BaseTools. We have a PACK= AGES_PATH set to $(WORKSPACE)/edk2 and magic happens. 

So I=E2=80=99m thinking maybe:
  $(EDK_= TOOLS_PATH)/Bin/GccLto
Vs:
  $(WORKSPACE)/BaseTool= s/Bin/GccLto

If EDK_TOOLS_PATH gets rip= ped out, it should be one atomic remove, but let us not stick that on Bret.=  

Thanks,

Andrew Fish

/
 &nb= sp;  Leif

> ---
>&nbs= p; {ArmPkg/Library =3D> BaseTools/Bin}/GccLto/liblto-aarch64.a | Bin
>  {ArmPkg/Library =3D> BaseTools/Bin}/GccLto/liblto-= aarch64.s |   0
>  {ArmPkg/Library =3D> = BaseTools/Bin}/GccLto/liblto-arm.a     | Bin
>  {ArmPkg/Library =3D> BaseTools/Bin}/GccLto/liblto-arm.s=      |   0
>  BaseTools= /Conf/tools_def.template        &nb= sp;            =     |  19 ++++++++++---------
>  = 5 files changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git = a/ArmPkg/Library/GccLto/liblto-aarch64.a b/BaseTools/Bin/GccLto/liblto-aarc= h64.a
> similarity index 100%
> rename fr= om ArmPkg/Library/GccLto/liblto-aarch64.a
> rename to Base= Tools/Bin/GccLto/liblto-aarch64.a
> diff --git a/ArmPkg/Li= brary/GccLto/liblto-aarch64.s b/BaseTools/Bin/GccLto/liblto-aarch64.s
> similarity index 100%
> rename from ArmPkg/L= ibrary/GccLto/liblto-aarch64.s
> rename to BaseTools/Bin/G= ccLto/liblto-aarch64.s
> diff --git a/ArmPkg/Library/GccLt= o/liblto-arm.a b/BaseTools/Bin/GccLto/liblto-arm.a
> simil= arity index 100%
> rename from ArmPkg/Library/GccLto/liblt= o-arm.a
> rename to BaseTools/Bin/GccLto/liblto-arm.a
> diff --git a/ArmPkg/Library/GccLto/liblto-arm.s b/BaseTools/= Bin/GccLto/liblto-arm.s
> similarity index 100%
> rename from ArmPkg/Library/GccLto/liblto-arm.s
>= ; rename to BaseTools/Bin/GccLto/liblto-arm.s
> diff --git= a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template> index 2e6b382ab623..cd8899d24d4a 100755
>= --- a/BaseTools/Conf/tools_def.template
> +++ b/BaseTools= /Conf/tools_def.template
> @@ -15,7 +15,8 @@
>  # 2.00 - Initial version with changes for CI
>=   #      - Change RC path to use plugin
>  #
> -#!VERSION=3D2.00
&g= t; +# 2.10 - Move GccLto files to a tools path to be more repository layout= agnostic
> +#!VERSION=3D2.10
 
>  ID= ENTIFIER =3D Default TOOL_CHAIN_CONF
 
> @@ -2386,10 +2387,= 10 @@ RELEASE_GCC5_X64_DLINK_FLAGS     =3D DEF(GCC5_X64= _DLINK_FLAGS) -flto -Os
>  *_GCC5_ARM_CC_XIPFLAGS&nbs= p;          =3D DEF(GCC5_ARM_C= C_XIPFLAGS)
&= nbsp;
>    DEBUG_GCC5_ARM_CC_FLAGS&n= bsp;       =3D DEF(GCC5_ARM_CC_FLAGS) -flto -= Wno-unused-but-set-variable -Wno-unused-const-variable
> -=   DEBUG_GCC5_ARM_DLINK_FLAGS     =3D DEF(GCC5_ARM_= DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-= plugin-opt=3D-pass-through=3D-llto-arm
> +  DEBUG_GCC= 5_ARM_DLINK_FLAGS     =3D DEF(GCC5_ARM_DLINK_FLAGS) -fl= to -Os -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-arm -Wl,-plugin-opt=3D-pas= s-through=3D-llto-arm
 
>  RELEASE_GCC5_ARM_CC_FLAGS&n= bsp;       =3D DEF(GCC5_ARM_CC_FLAGS) -flto -= Wno-unused-but-set-variable -Wno-unused-const-variable
> -= RELEASE_GCC5_ARM_DLINK_FLAGS     =3D DEF(GCC5_ARM_DLINK= _FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugi= n-opt=3D-pass-through=3D-llto-arm
> +RELEASE_GCC5_ARM_DLIN= K_FLAGS     =3D DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$= (WORKSPACE)/BaseTools/Bin/GccLto -llto-arm -Wl,-plugin-opt=3D-pass-through= =3D-llto-arm
=  
>    NOOPT_GCC5_ARM_CC_FLAGS&= nbsp;       =3D DEF(GCC5_ARM_CC_FLAGS) -O0>    NOOPT_GCC5_ARM_DLINK_FLAGS  &n= bsp;  =3D DEF(GCC5_ARM_DLINK_FLAGS) -O0
> @@ -2420,11= +2421,11 @@ RELEASE_GCC5_ARM_DLINK_FLAGS     =3D DEF(G= CC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKS
>  *_GCC5_AA= RCH64_CC_XIPFLAGS       =3D DEF(GCC5_AARCH64_= CC_XIPFLAGS)
=  
>    DEBUG_GCC5_AARCH64_CC_FL= AGS    =3D DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-= set-variable -Wno-unused-const-variable
> -  DEBUG_GC= C5_AARCH64_DLINK_FLAGS =3D DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os -L$(WORK= SPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=3D-pass-through= =3D-llto-aarch64 -Wno-lto-type-mismatch
> +  DEBUG_GC= C5_AARCH64_DLINK_FLAGS =3D DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os -L$(WORK= SPACE)/BaseTools/Bin/GccLto -llto-aarch64 -Wl,-plugin-opt=3D-pass-through= =3D-llto-aarch64 -Wno-lto-type-mismatch
>   = ; DEBUG_GCC5_AARCH64_DLINK_XIPFLAGS =3D -z common-page-size=3D0x20
 
>  RELEASE_GCC5_AARCH64_CC_FLAGS    =3D DEF(G= CC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-= variable
> -RELEASE_GCC5_AARCH64_DLINK_FLAGS =3D DEF(GCC5_= AARCH64_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-a= arch64 -Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64 -Wno-lto-type-mismat= ch
> +RELEASE_GCC5_AARCH64_DLINK_FLAGS =3D DEF(GCC5_AARCH6= 4_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-aarch64 = -Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64 -Wno-lto-type-mismatch
>  RELEASE_GCC5_AARCH64_DLINK_XIPFLAGS =3D -z common-page= -size=3D0x20
=  
>    NOOPT_GCC5_AARCH64_CC_FL= AGS    =3D DEF(GCC5_AARCH64_CC_FLAGS) -O0
>= @@ -2681,11 +2682,11 @@ DEFINE CLANG38_ARM_DLINK_FLAGS   =3D DEF= (CLANG38_ARM_TARGET) DEF(GCC_ARM_DLINK_FLA
>  *_CLANG= 38_ARM_CC_XIPFLAGS        =3D DEF(GCC_AR= M_CC_XIPFLAGS)
 
>    DEBUG_CLANG38_ARM_CC_F= LAGS     =3D DEF(CLANG38_ARM_CC_FLAGS) $(ARCHCC_FLAGS) = $(PLATFORM_FLAGS) -flto -O1
> -  DEBUG_CLANG38_ARM_DL= INK_FLAGS  =3D DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPAC= E)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=3D-pass-through=3D-llto-= arm
> +  DEBUG_CLANG38_ARM_DLINK_FLAGS  =3D DEF(= CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/BaseTools/Bin/GccLto = -llto-arm -Wl,-plugin-opt=3D-pass-through=3D-llto-arm
>&nb= sp;   NOOPT_CLANG38_ARM_CC_FLAGS     =3D DEF(= CLANG38_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O0
&= gt;    NOOPT_CLANG38_ARM_DLINK_FLAGS  =3D DEF(CLANG38_A= RM_DLINK_FLAGS)
>  RELEASE_CLANG38_ARM_CC_FLAGS =     =3D DEF(CLANG38_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM= _FLAGS) -flto -O3
> -RELEASE_CLANG38_ARM_DLINK_FLAGS = =3D DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Libra= ry/GccLto -llto-arm -Wl,-plugin-opt=3D-pass-through=3D-llto-arm
> +RELEASE_CLANG38_ARM_DLINK_FLAGS  =3D DEF(CLANG38_ARM_DLINK_FL= AGS) -flto -Wl,-O3 -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto-arm -Wl,-plugi= n-opt=3D-pass-through=3D-llto-arm
 
>  ###############= ###
>  # CLANG38 AARCH64 definitions
&g= t; @@ -2727,11 +2728,11 @@ DEFINE CLANG38_AARCH64_DLINK_FLAGS  =3D DEF= (CLANG38_AARCH64_TARGET) DEF(GCC_AARCH6
>  *_CLANG38_= AARCH64_CC_XIPFLAGS    =3D DEF(GCC_AARCH64_CC_XIPFLAGS)
 
>    DEBUG_CLANG38_AARCH64_CC_FLAGS  = ;  =3D DEF(CLANG38_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)= -flto -O1
> -  DEBUG_CLANG38_AARCH64_DLINK_FLAGS =3D= DEF(CLANG38_AARCH64_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Libra= ry/GccLto -llto-aarch64 -Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64
> +  DEBUG_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_A= ARCH64_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/BaseTools/Bin/GccLto -llto= -aarch64 -Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64
>=     NOOPT_CLANG38_AARCH64_CC_FLAGS    =3D DEF= (CLANG38_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O0
>    NOOPT_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLAN= G38_AARCH64_DLINK_FLAGS)
>  RELEASE_CLANG38_AARCH64_C= C_FLAGS    =3D DEF(CLANG38_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)= $(PLATFORM_FLAGS) -flto -O3
> -RELEASE_CLANG38_AARCH64_DL= INK_FLAGS =3D DEF(CLANG38_AARCH64_DLINK_FLAGS) -flto -Wl,-O3 -L$(WORKSPACE)= /ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=3D-pass-through=3D-llt= o-aarch64
> +RELEASE_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(C= LANG38_AARCH64_DLINK_FLAGS) -flto -Wl,-O3 -L$(WORKSPACE)/BaseTools/Bin/GccL= to -llto-aarch64 -Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64
 
>  #########################################################= ###########################
>  #
> -= - 
> 2.3= 1.1.windows.1
> = ;




 

--Apple-Mail=_59A5F5EF-7DE1-4562-9F95-D5B120508F28--