[RFCv3] Azure/GitLab: Move to gcc-11.1.0 and LLVM-11

Bin Meng bmeng.cn at gmail.com
Thu Jun 17 16:24:18 CEST 2021


On Thu, Jun 17, 2021 at 10:14 PM Tom Rini <trini at konsulko.com> wrote:
>
> On Thu, Jun 17, 2021 at 10:09:20PM +0800, Bin Meng wrote:
> > On Thu, Jun 17, 2021 at 8:31 PM Tom Rini <trini at konsulko.com> wrote:
> > >
> > > On Thu, Jun 17, 2021 at 04:27:11PM +0800, Bin Meng wrote:
> > > > Hi Tom,
> > > >
> > > > On Thu, Jun 17, 2021 at 4:00 AM Tom Rini <trini at konsulko.com> wrote:
> > > > >
> > > > > - Move to gcc-11.1.0 builds from kernel.org for supported platforms and
> > > > >   LLVM-11 for those tests.
> > > > > - grub-2.06 does not build with gcc-11.1.0 on riscv32 as seen here:
> > > > >   https://www.mail-archive.com/grub-devel@gnu.org/msg30736.html
> > > > >   so drop it.
> > > > > - Update to newer Xtensa (gcc-9.2.0) and ARC (gcc-10.2) toolchains
> > > > >
> > > > > Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
> > > > > Cc: Bin Meng <bmeng.cn at gmail.com>
> > > > > Cc: Simon Glass <sjg at chromium.org>
> > > > > Cc: Rick Chen <rick at andestech.com>
> > > > > Signed-off-by: Tom Rini <trini at konsulko.com>
> > > > > ---
> > > > > Changes in v3:
> > > > > - Post the right patch this time.
> > > > > - Switch to gcc-11.1.0 builds rather than pre-release
> > > > > - grub-2.06 is out, use that rather than -rc1
> > > > > - Update Xtensa and ARC toolchains.
> > > > > - Note that right now this causes x86 to fail to link, which I did not
> > > > >   see with gcc-11.0 tests.
> > > >
> > > > Did you mean x86 fails to link with LLVM 11, not GCC 11?
> > >
> > > It fails to run for qemu-x86:
> > > https://source.denx.de/u-boot/u-boot/-/jobs/279345#L39
> > > And fails to link on other configs:
> > > https://dev.azure.com/u-boot/u-boot/_build/results?buildId=2378&view=logs&j=8a1d3be7-a4c9-55b6-774d-e7f1a8f80847&t=b2f224a7-1103-5b52-edbc-3784ae727e03
> > >
> > > Sorry I forgot to add the CI links.
> >
> > Just had a quick look. The u-boot.rom (qemu-x86_defconfig) built with
> > GCC 11.1.0 does not boot. It fails at the very early stage at
> > fdtdec_prepare_fdt(). It turns out gd->fdt_blob which is set to _end
> > does not point to a valid DT.
> >
> > This may have something to do with:
> >
> > x86_64-linux-ld.bfd: arch/x86/cpu/start.o: warning: relocation in
> > read-only section `.text.start'
> > x86_64-linux-ld.bfd: warning: creating DT_TEXTREL in a PIE
>
> Yeah, I suspect that's the problem.  I just don't know where to start
> looking for what to change to address that.

The following changes seem to fix the issue:

diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index a283c290ee..22fde01e74 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -105,6 +105,7 @@ SECTIONS
        /DISCARD/ : { *(.plt*) }
        /DISCARD/ : { *(.interp*) }
        /DISCARD/ : { *(.gnu*) }
+       /DISCARD/ : { *(.note.gnu.property) }

 #ifdef CONFIG_X86_16BIT_INIT
        /*

Not sure if this is something introduced by using --whole-archive?

Regards,
Bin


More information about the U-Boot mailing list