diff mbox series

[edk2] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations

Message ID 20190107065541.1854-1-ard.biesheuvel@linaro.org
State New
Headers show
Series [edk2] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations | expand

Commit Message

Ard Biesheuvel Jan. 7, 2019, 6:55 a.m. UTC
GCC for 32-bit ARM chokes on .aslc files when running with LTO
enabled. Since LTO has no benefit whatsoever here, just disable
it.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

---
 BaseTools/Conf/tools_def.template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.20.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Comments

Philippe Mathieu-Daudé Jan. 7, 2019, 10:08 a.m. UTC | #1
Hi Ard,

On 1/7/19 7:55 AM, Ard Biesheuvel wrote:
> GCC for 32-bit ARM chokes on .aslc files when running with LTO

> enabled. Since LTO has no benefit whatsoever here, just disable

> it.

> 

> Contributed-under: TianoCore Contribution Agreement 1.1

> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> ---

>  BaseTools/Conf/tools_def.template | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template

> index f7eb87af14c2..e68cfd9a4997 100755

> --- a/BaseTools/Conf/tools_def.template

> +++ b/BaseTools/Conf/tools_def.template

> @@ -5145,7 +5145,7 @@ RELEASE_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os

>  *_GCC5_ARM_RC_PATH               = ENV(GCC5_ARM_PREFIX)objcopy

>  

>  *_GCC5_ARM_ARCHCC_FLAGS          = -mthumb

> -*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS)

> +*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS) -fno-lto


Why not add it globally to GCC5_ASLCC_FLAGS?

>  *_GCC5_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)

>  *_GCC5_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)

>  *_GCC5_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)

> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Leif Lindholm Jan. 14, 2019, 11:41 a.m. UTC | #2
On Mon, Jan 07, 2019 at 07:55:41AM +0100, Ard Biesheuvel wrote:
> GCC for 32-bit ARM chokes on .aslc files when running with LTO

> enabled. Since LTO has no benefit whatsoever here, just disable

> it.

> 

> Contributed-under: TianoCore Contribution Agreement 1.1

> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


Looks sensible.
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>


> ---

>  BaseTools/Conf/tools_def.template | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template

> index f7eb87af14c2..e68cfd9a4997 100755

> --- a/BaseTools/Conf/tools_def.template

> +++ b/BaseTools/Conf/tools_def.template

> @@ -5145,7 +5145,7 @@ RELEASE_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os

>  *_GCC5_ARM_RC_PATH               = ENV(GCC5_ARM_PREFIX)objcopy

>  

>  *_GCC5_ARM_ARCHCC_FLAGS          = -mthumb

> -*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS)

> +*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS) -fno-lto

>  *_GCC5_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)

>  *_GCC5_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)

>  *_GCC5_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)

> -- 

> 2.20.1

> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Gao, Liming Jan. 14, 2019, 1:18 p.m. UTC | #3
Ard:
  Could you consider the suggestion from https://lists.01.org/pipermail/edk2-devel/2019-January/034698.html?

Thanks
Liming
> -----Original Message-----

> From: Leif Lindholm [mailto:leif.lindholm@linaro.org]

> Sent: Monday, January 14, 2019 7:42 PM

> To: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> Cc: edk2-devel@lists.01.org; Gao, Liming <liming.gao@intel.com>; Feng, Bob C <bob.c.feng@intel.com>

> Subject: Re: [PATCH] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations

> 

> On Mon, Jan 07, 2019 at 07:55:41AM +0100, Ard Biesheuvel wrote:

> > GCC for 32-bit ARM chokes on .aslc files when running with LTO

> > enabled. Since LTO has no benefit whatsoever here, just disable

> > it.

> >

> > Contributed-under: TianoCore Contribution Agreement 1.1

> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> 

> Looks sensible.

> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

> 

> > ---

> >  BaseTools/Conf/tools_def.template | 2 +-

> >  1 file changed, 1 insertion(+), 1 deletion(-)

> >

> > diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template

> > index f7eb87af14c2..e68cfd9a4997 100755

> > --- a/BaseTools/Conf/tools_def.template

> > +++ b/BaseTools/Conf/tools_def.template

> > @@ -5145,7 +5145,7 @@ RELEASE_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os

> >  *_GCC5_ARM_RC_PATH               = ENV(GCC5_ARM_PREFIX)objcopy

> >

> >  *_GCC5_ARM_ARCHCC_FLAGS          = -mthumb

> > -*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS)

> > +*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS) -fno-lto

> >  *_GCC5_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)

> >  *_GCC5_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)

> >  *_GCC5_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)

> > --

> > 2.20.1

> >

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Philippe Mathieu-Daudé Jan. 14, 2019, 1:36 p.m. UTC | #4
On 1/14/19 2:18 PM, Gao, Liming wrote:
> Ard:

>   Could you consider the suggestion from https://lists.01.org/pipermail/edk2-devel/2019-January/034698.html?


There might be a special case for Aarch64, but I'm not seeing it.

> 

> Thanks

> Liming

>> -----Original Message-----

>> From: Leif Lindholm [mailto:leif.lindholm@linaro.org]

>> Sent: Monday, January 14, 2019 7:42 PM

>> To: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>> Cc: edk2-devel@lists.01.org; Gao, Liming <liming.gao@intel.com>; Feng, Bob C <bob.c.feng@intel.com>

>> Subject: Re: [PATCH] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations

>>

>> On Mon, Jan 07, 2019 at 07:55:41AM +0100, Ard Biesheuvel wrote:

>>> GCC for 32-bit ARM chokes on .aslc files when running with LTO

>>> enabled. Since LTO has no benefit whatsoever here, just disable

>>> it.

>>>

>>> Contributed-under: TianoCore Contribution Agreement 1.1

>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>

>> Looks sensible.

>> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

>>

>>> ---

>>>  BaseTools/Conf/tools_def.template | 2 +-

>>>  1 file changed, 1 insertion(+), 1 deletion(-)

>>>

>>> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template

>>> index f7eb87af14c2..e68cfd9a4997 100755

>>> --- a/BaseTools/Conf/tools_def.template

>>> +++ b/BaseTools/Conf/tools_def.template

>>> @@ -5145,7 +5145,7 @@ RELEASE_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os

>>>  *_GCC5_ARM_RC_PATH               = ENV(GCC5_ARM_PREFIX)objcopy

>>>

>>>  *_GCC5_ARM_ARCHCC_FLAGS          = -mthumb

>>> -*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS)

>>> +*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS) -fno-lto

>>>  *_GCC5_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)

>>>  *_GCC5_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)

>>>  *_GCC5_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)

>>> --

>>> 2.20.1

>>>

> _______________________________________________

> edk2-devel mailing list

> edk2-devel@lists.01.org

> https://lists.01.org/mailman/listinfo/edk2-devel

> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Gao, Liming Jan. 14, 2019, 1:38 p.m. UTC | #5
I see IA32 and X64 arch both have this option. I have no idea on AArch64. 

> -----Original Message-----

> From: Philippe Mathieu-Daudé [mailto:philmd@redhat.com]

> Sent: Monday, January 14, 2019 9:36 PM

> To: Gao, Liming <liming.gao@intel.com>; Leif Lindholm <leif.lindholm@linaro.org>; Ard Biesheuvel <ard.biesheuvel@linaro.org>

> Cc: edk2-devel@lists.01.org

> Subject: Re: [edk2] [PATCH] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations

> 

> On 1/14/19 2:18 PM, Gao, Liming wrote:

> > Ard:

> >   Could you consider the suggestion from https://lists.01.org/pipermail/edk2-devel/2019-January/034698.html?

> 

> There might be a special case for Aarch64, but I'm not seeing it.

> 

> >

> > Thanks

> > Liming

> >> -----Original Message-----

> >> From: Leif Lindholm [mailto:leif.lindholm@linaro.org]

> >> Sent: Monday, January 14, 2019 7:42 PM

> >> To: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> >> Cc: edk2-devel@lists.01.org; Gao, Liming <liming.gao@intel.com>; Feng, Bob C <bob.c.feng@intel.com>

> >> Subject: Re: [PATCH] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations

> >>

> >> On Mon, Jan 07, 2019 at 07:55:41AM +0100, Ard Biesheuvel wrote:

> >>> GCC for 32-bit ARM chokes on .aslc files when running with LTO

> >>> enabled. Since LTO has no benefit whatsoever here, just disable

> >>> it.

> >>>

> >>> Contributed-under: TianoCore Contribution Agreement 1.1

> >>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> >>

> >> Looks sensible.

> >> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

> >>

> >>> ---

> >>>  BaseTools/Conf/tools_def.template | 2 +-

> >>>  1 file changed, 1 insertion(+), 1 deletion(-)

> >>>

> >>> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template

> >>> index f7eb87af14c2..e68cfd9a4997 100755

> >>> --- a/BaseTools/Conf/tools_def.template

> >>> +++ b/BaseTools/Conf/tools_def.template

> >>> @@ -5145,7 +5145,7 @@ RELEASE_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os

> >>>  *_GCC5_ARM_RC_PATH               = ENV(GCC5_ARM_PREFIX)objcopy

> >>>

> >>>  *_GCC5_ARM_ARCHCC_FLAGS          = -mthumb

> >>> -*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS)

> >>> +*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS) -fno-lto

> >>>  *_GCC5_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)

> >>>  *_GCC5_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)

> >>>  *_GCC5_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)

> >>> --

> >>> 2.20.1

> >>>

> > _______________________________________________

> > edk2-devel mailing list

> > edk2-devel@lists.01.org

> > https://lists.01.org/mailman/listinfo/edk2-devel

> >
Ard Biesheuvel Jan. 14, 2019, 1:46 p.m. UTC | #6
On Mon, 14 Jan 2019 at 14:38, Gao, Liming <liming.gao@intel.com> wrote:
>
> I see IA32 and X64 arch both have this option. I have no idea on AArch64.
>

I think we should just add it for all LTO toolchains in the GCC
family. These are fixed size data structures so LTO is entirely
pointless here.


> > -----Original Message-----
> > From: Philippe Mathieu-Daudé [mailto:philmd@redhat.com]
> > Sent: Monday, January 14, 2019 9:36 PM
> > To: Gao, Liming <liming.gao@intel.com>; Leif Lindholm <leif.lindholm@linaro.org>; Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > Cc: edk2-devel@lists.01.org
> > Subject: Re: [edk2] [PATCH] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations
> >
> > On 1/14/19 2:18 PM, Gao, Liming wrote:
> > > Ard:
> > >   Could you consider the suggestion from https://lists.01.org/pipermail/edk2-devel/2019-January/034698.html?
> >
> > There might be a special case for Aarch64, but I'm not seeing it.
> >
> > >
> > > Thanks
> > > Liming
> > >> -----Original Message-----
> > >> From: Leif Lindholm [mailto:leif.lindholm@linaro.org]
> > >> Sent: Monday, January 14, 2019 7:42 PM
> > >> To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > >> Cc: edk2-devel@lists.01.org; Gao, Liming <liming.gao@intel.com>; Feng, Bob C <bob.c.feng@intel.com>
> > >> Subject: Re: [PATCH] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations
> > >>
> > >> On Mon, Jan 07, 2019 at 07:55:41AM +0100, Ard Biesheuvel wrote:
> > >>> GCC for 32-bit ARM chokes on .aslc files when running with LTO
> > >>> enabled. Since LTO has no benefit whatsoever here, just disable
> > >>> it.
> > >>>
> > >>> Contributed-under: TianoCore Contribution Agreement 1.1
> > >>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > >>
> > >> Looks sensible.
> > >> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
> > >>
> > >>> ---
> > >>>  BaseTools/Conf/tools_def.template | 2 +-
> > >>>  1 file changed, 1 insertion(+), 1 deletion(-)
> > >>>
> > >>> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
> > >>> index f7eb87af14c2..e68cfd9a4997 100755
> > >>> --- a/BaseTools/Conf/tools_def.template
> > >>> +++ b/BaseTools/Conf/tools_def.template
> > >>> @@ -5145,7 +5145,7 @@ RELEASE_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os
> > >>>  *_GCC5_ARM_RC_PATH               = ENV(GCC5_ARM_PREFIX)objcopy
> > >>>
> > >>>  *_GCC5_ARM_ARCHCC_FLAGS          = -mthumb
> > >>> -*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS)
> > >>> +*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS) -fno-lto
> > >>>  *_GCC5_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)
> > >>>  *_GCC5_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)
> > >>>  *_GCC5_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)
> > >>> --
> > >>> 2.20.1
> > >>>
> > > _______________________________________________
> > > edk2-devel mailing list
> > > edk2-devel@lists.01.org
> > > https://lists.01.org/mailman/listinfo/edk2-devel
> > >
Gao, Liming Jan. 14, 2019, 1:57 p.m. UTC | #7
That's great. 

> -----Original Message-----

> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ard Biesheuvel

> Sent: Monday, January 14, 2019 9:47 PM

> To: Gao, Liming <liming.gao@intel.com>

> Cc: edk2-devel@lists.01.org

> Subject: Re: [edk2] [PATCH] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations

> 

> On Mon, 14 Jan 2019 at 14:38, Gao, Liming <liming.gao@intel.com> wrote:

> >

> > I see IA32 and X64 arch both have this option. I have no idea on AArch64.

> >

> 

> I think we should just add it for all LTO toolchains in the GCC

> family. These are fixed size data structures so LTO is entirely

> pointless here.

> 

> 

> > > -----Original Message-----

> > > From: Philippe Mathieu-Daudé [mailto:philmd@redhat.com]

> > > Sent: Monday, January 14, 2019 9:36 PM

> > > To: Gao, Liming <liming.gao@intel.com>; Leif Lindholm <leif.lindholm@linaro.org>; Ard Biesheuvel <ard.biesheuvel@linaro.org>

> > > Cc: edk2-devel@lists.01.org

> > > Subject: Re: [edk2] [PATCH] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations

> > >

> > > On 1/14/19 2:18 PM, Gao, Liming wrote:

> > > > Ard:

> > > >   Could you consider the suggestion from https://lists.01.org/pipermail/edk2-devel/2019-January/034698.html?

> > >

> > > There might be a special case for Aarch64, but I'm not seeing it.

> > >

> > > >

> > > > Thanks

> > > > Liming

> > > >> -----Original Message-----

> > > >> From: Leif Lindholm [mailto:leif.lindholm@linaro.org]

> > > >> Sent: Monday, January 14, 2019 7:42 PM

> > > >> To: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> > > >> Cc: edk2-devel@lists.01.org; Gao, Liming <liming.gao@intel.com>; Feng, Bob C <bob.c.feng@intel.com>

> > > >> Subject: Re: [PATCH] BaseTools/tools_def ARM GCC5: disable LTO for ASLC invocations

> > > >>

> > > >> On Mon, Jan 07, 2019 at 07:55:41AM +0100, Ard Biesheuvel wrote:

> > > >>> GCC for 32-bit ARM chokes on .aslc files when running with LTO

> > > >>> enabled. Since LTO has no benefit whatsoever here, just disable

> > > >>> it.

> > > >>>

> > > >>> Contributed-under: TianoCore Contribution Agreement 1.1

> > > >>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> > > >>

> > > >> Looks sensible.

> > > >> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

> > > >>

> > > >>> ---

> > > >>>  BaseTools/Conf/tools_def.template | 2 +-

> > > >>>  1 file changed, 1 insertion(+), 1 deletion(-)

> > > >>>

> > > >>> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template

> > > >>> index f7eb87af14c2..e68cfd9a4997 100755

> > > >>> --- a/BaseTools/Conf/tools_def.template

> > > >>> +++ b/BaseTools/Conf/tools_def.template

> > > >>> @@ -5145,7 +5145,7 @@ RELEASE_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os

> > > >>>  *_GCC5_ARM_RC_PATH               = ENV(GCC5_ARM_PREFIX)objcopy

> > > >>>

> > > >>>  *_GCC5_ARM_ARCHCC_FLAGS          = -mthumb

> > > >>> -*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS)

> > > >>> +*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS) -fno-lto

> > > >>>  *_GCC5_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)

> > > >>>  *_GCC5_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)

> > > >>>  *_GCC5_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)

> > > >>> --

> > > >>> 2.20.1

> > > >>>

> > > > _______________________________________________

> > > > edk2-devel mailing list

> > > > edk2-devel@lists.01.org

> > > > https://lists.01.org/mailman/listinfo/edk2-devel

> > > >

> _______________________________________________

> edk2-devel mailing list

> edk2-devel@lists.01.org

> https://lists.01.org/mailman/listinfo/edk2-devel
diff mbox series

Patch

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index f7eb87af14c2..e68cfd9a4997 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -5145,7 +5145,7 @@  RELEASE_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os
 *_GCC5_ARM_RC_PATH               = ENV(GCC5_ARM_PREFIX)objcopy
 
 *_GCC5_ARM_ARCHCC_FLAGS          = -mthumb
-*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS)
+*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS) -fno-lto
 *_GCC5_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)
 *_GCC5_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)
 *_GCC5_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)