[U-Boot] [BUG] efi-x86_app_defconfig does not build with gcc 8.2

Andy Shevchenko andy.shevchenko at gmail.com
Wed Nov 7 18:02:02 UTC 2018


On Mon, Oct 29, 2018 at 10:41:29PM +0800, Bin Meng wrote:
> On Fri, Oct 26, 2018 at 8:41 PM Andy Shevchenko
> <andy.shevchenko at gmail.com> wrote:
> > On Fri, Oct 26, 2018 at 3:23 PM Bin Meng <bmeng.cn at gmail.com> wrote:
> > > On Thu, Oct 25, 2018 at 10:55 PM Bin Meng <bmeng.cn at gmail.com> wrote:
> > > > On Thu, Oct 11, 2018 at 5:36 PM Andy Shevchenko
> > > > <andriy.shevchenko at linux.intel.com> wrote:
> >
> > > > > That's what I was suspecting after looking how EFI applications are being built.
> > > > >
> > > > > So, someone familiar with compilers probably needs to check the following and act accordingly:
> > > > > - either new compiler provides new switches to change behaviour as it was in GCC < 8, or
> > > > > - create a small verifiable example with this linked list sections and submit a bug report to GCC, or
> > > > > - U-Boot code (for linked lists) should be reconsidered from new requirements of the compiler, or
> > > > > - EFI U-Boot application should have it's own relocation code (like normal U-Boot does), or
> > > > > - ...anything I missed...
> > > > >
> > > > > The issue from my limited knowledge looks like this:
> > > > > EFI loader relies on the sections that are natural for dynamically linked
> > > > > libraries (AKA .so), while U-Boot (when runs on bare metal) has another
> > > > > approach, i.e. specific code that does a relocation based only on .reloc
> > > > > information. The linked list sections in U-Boot are meant to be statically
> > > > > compiled, which is not the case for EFI by some reason.
> > > > >
> > > > > OTOH, it's clearly a compiler behaviour change, since with -fPIC -g it
> > > > > generates DWARF that can't be translated by its own assembler!
> > > > > (See option 2 in above list)
> >
> > > > Thank you for these useful suggestions! I will see if I can create a
> > > > small test program to trigger this issue.
> >
> > > I created a small test case to trigger this issue. A workaround is to
> > > disable '-Os' so that the test case pass. Of course disabling '-fpic'
> > > also works. To me this looks like a bug when compiling pic codes with
> > > optimization on. I will submit a bug report go GCC.
> >
> > Cool! Please, share the bug link whenever it will be filled, thanks!
> >
> 
> Sure, though waited for some time to get my GCC Bugzilla created by the admin ..
> 
> Here it is: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87793

Thanks!
It seems compiler bug has been confirmed!

P.S. Btw, I recommend to read a commit message to a proposed fix.

-- 
With Best Regards,
Andy Shevchenko




More information about the U-Boot mailing list