[PATCH 27/31] Makefile: Disable LTO when building with MSYS2

Pali Rohár pali at kernel.org
Thu Apr 27 18:48:12 CEST 2023


On Thursday 27 April 2023 10:25:13 Simon Glass wrote:
> Hi Pali,
> 
> On Wed, 26 Apr 2023 at 01:07, Pali Rohár <pali at kernel.org> wrote:
> >
> > On Tuesday 25 April 2023 19:04:10 Simon Glass wrote:
> > > Hi Pali,
> > >
> > > On Tue, 25 Apr 2023 at 10:28, Pali Rohár <pali at kernel.org> wrote:
> > > >
> > > > On Monday 24 April 2023 17:08:32 Simon Glass wrote:
> > > > > This creates a lot of errors of the form:
> > > > >
> > > > > `__stack_chk_fail' referenced in section `.text' of ...ltrans.o: defined
> > > > >    in discarded section `.text' of common/stackprot.o (symbol from plugin)
> > > >
> > > > This issue should be rather fixed...
> > > >
> > > > > Drop LTO for now.
> > > >
> > > > ... and until it happens is not CONFIG_LTO for disabling enough?
> > > >
> > > > LTO does not work for more other boards / platforms and it is just _not_
> > > > enabled via CONFIG_LTO in those cases...
> > >
> > > The thing is, LTO is enabled for sandbox normally (clang and gcc). It
> > > is just the MSYS2 platform where there are problems.
> >
> > So what about having CONFIG_LTO by default 'n' for CONFIG_MSYS2?
> 
> But that would require creating a new board. I am trying to use the
> same board, just building it in a different environment.

Sorry, but I do not understand why you need a new board. Just introduce
a new Kconfig symbol CONFIG_MSYS2 which value is by default assigned
from the detected compiler and then set default value for CONFIG_LTO
symbol to "n" when CONFIG_MSYS2 is "y". This does not require a new
board and neither menuconfig user changes of (default) symbols.

> 
> >
> > > I am not sure how to fix it, since I don't know what discarded section
> > > it is referring to.
> 
> Regards,
> Simon


More information about the U-Boot mailing list