[U-Boot] [PATCH] arm: Handle .gnu.hash section in ldscripts

Albert ARIBAUD albert.u.boot at aribaud.net
Mon Mar 10 08:24:53 CET 2014


Hi Andreas,

On Sun, 09 Mar 2014 21:52:44 +0100, Andreas Färber <afaerber at suse.de>
wrote:

> Hi,
> 
> Am 09.03.2014 21:34, schrieb Albert ARIBAUD:
> > On Sun, 09 Mar 2014 21:22:34 +0100, Andreas Färber <afaerber at suse.de>
> > wrote:
> >> Am 09.03.2014 21:05, schrieb Albert ARIBAUD:
> >>> On Mon, 3 Mar 2014 08:00:52 +0100, Albert ARIBAUD
> >>> <albert.u.boot at aribaud.net> wrote:
> >>>> On Sun, 02 Mar 2014 23:00:19 +0100, Andreas Färber
> >>>> <afaerber at suse.de> wrote:
> >>>>> Am 02.03.2014 21:57, schrieb Andreas Färber:
> >>>>>> Am 02.03.2014 20:15, schrieb Albert ARIBAUD:
> >>>>>>> On Sun, 02 Mar 2014 18:57:14 +0100, Andreas Färber <afaerber at suse.de>
> >>>>>>> wrote:
> >>>>>>>> Am 22.02.2014 14:27, schrieb Albert ARIBAUD:
> >>>>>>>>> On Thu, 13 Feb 2014 12:39:07 +0100, Albert ARIBAUD
> >>>>>>>>> <albert.u.boot at aribaud.net> wrote:
> >>>>>>>>>
> >>>>>>>>>> Can you point me to the toolchain you are using, and if you are not
> >>>>>>>>>> building mainline code, can you make this code available to me somehow?
> >>>>>> [...]
> >>>>>>>> Our latest GCC 4.8.2 can be found here:
> >>>>>>>> https://build.opensuse.org/package/show/openSUSE:Factory:ARM/gcc48
> >>>>>>>>
> >>>>>>>> Matching binutils 2.24 are here:
> >>>>>>>> https://build.opensuse.org/package/show/openSUSE:Factory:ARM/binutils
> >>>>>>>>
> >>>>>>>> Our latest U-Boot tarball and patches:
> >>>>>>>> https://build.opensuse.org/package/show/Base:System/u-boot
> >>>>>>>> Build logs can be found in the u-boot-* packages in the same project,
> >>>>>>>> with underscores stripped, e.g.:
> >>>>>>>> https://build.opensuse.org/package/show/Base:System/u-boot-am335xevm
> >>>>>>>
> >>>>>>> Thanks for your reply. Apparently, the problem does not appear for the
> >>>>>>> boards in mainline U-Boot which I listed above with the source code
> >>>>>>> from our v2014.01 tag and using gcc 4.8.1 from Linaro. I can install
> >>>>>>> 4.8.2, but meanwhile, can you try to build v2014.01 for these boards
> >>>>>>> with your setup?
> >>>>>>>
> >>>>>>> am335x_evm colibri_t20_iris highbank mx53loco omap3_beagle
> >>>>>>> omap4_panda paz00 rpi_b
> >>>>>>
> >>>>>> I have commented out the patch in:
> >>>>>> https://build.opensuse.org/project/show/home:a_faerber:branches:Base:System
> >>>>>>
> >>>>>> While there are apparently frequent rebuilds scheduled ATM, it seemed
> >>>>>> like the colibri_t20_iris config intermittently built OK without it.
> >>>>>> Maybe some gcc 4.8 stable branch update [1] resolved it ... will keep an
> >>>>>> eye on the build status to confirm. If everything builds, I'm happy.
> >>>>>
> >>>>> Nah, still fails without the patch:
> >>>>>
> >>>>> [  178s] gcc -E -g  -Os   -ffunction-sections -fdata-sections
> >>>>> -fno-common -ffixed-r9 -msoft-float  -D__KERNEL__
> >>>>> -DCONFIG_SYS_TEXT_BASE=0x0010E000
> >>>>> -I/home/abuild/rpmbuild/BUILD/u-boot-2014.01/include
> >>>>> -I/home/abuild/rpmbuild/BUILD/u-boot-2014.01/arch/arm/include
> >>>>> -fno-builtin -ffreestanding -nostdinc -isystem
> >>>>> /usr/lib/gcc/armv7hl-suse-linux-gnueabi/4.8/include -pipe  -DCONFIG_ARM
> >>>>> -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux
> >>>>> -mword-relocations -march=armv7-a -include
> >>>>> /home/abuild/rpmbuild/BUILD/u-boot-2014.01/include/u-boot/u-boot.lds.h
> >>>>> -DCPUDIR=arch/arm/cpu/armv7  -ansi -D__ASSEMBLY__ -P -
> >>>>> </home/abuild/rpmbuild/BUILD/u-boot-2014.01/arch/arm/cpu/u-boot.lds
> >>>>>> u-boot.lds
> >>>>> [  178s] cd /home/abuild/rpmbuild/BUILD/u-boot-2014.01 && ld.bfd  -pie
> >>>>> -T u-boot.lds --gc-sections -Bstatic -Ttext 0x0010E000
> >>>>> arch/arm/cpu/armv7/start.o --start-group arch/arm/cpu/armv7/built-in.o
> >>>>> arch/arm/cpu/armv7/tegra20/built-in.o arch/arm/cpu/built-in.o
> >>>>> arch/arm/lib/built-in.o board/toradex/colibri_t20_iris/built-in.o
> >>>>> common/built-in.o disk/built-in.o drivers/built-in.o
> >>>>> drivers/dma/built-in.o drivers/gpio/built-in.o drivers/i2c/built-in.o
> >>>>> drivers/input/built-in.o drivers/mmc/built-in.o drivers/mtd/built-in.o
> >>>>> drivers/mtd/nand/built-in.o drivers/mtd/onenand/built-in.o
> >>>>> drivers/mtd/spi/built-in.o drivers/net/built-in.o
> >>>>> drivers/net/phy/built-in.o drivers/pci/built-in.o
> >>>>> drivers/power/battery/built-in.o drivers/power/built-in.o
> >>>>> drivers/power/fuel_gauge/built-in.o drivers/power/mfd/built-in.o
> >>>>> drivers/power/pmic/built-in.o drivers/serial/built-in.o
> >>>>> drivers/spi/built-in.o drivers/usb/eth/built-in.o
> >>>>> drivers/usb/gadget/built-in.o drivers/usb/host/built-in.o
> >>>>> drivers/usb/musb-new/built-in.o drivers/usb/musb/built-in.o
> >>>>> drivers/usb/phy/built-in.o drivers/usb/ulpi/built-in.o fs/built-in.o
> >>>>> lib/built-in.o lib/libfdt/built-in.o net/built-in.o test/built-in.o
> >>>>> --end-group
> >>>>> /home/abuild/rpmbuild/BUILD/u-boot-2014.01/arch/arm/lib/eabi_compat.o
> >>>>> -L /usr/lib/gcc/armv7hl-suse-linux-gnueabi/4.8 -lgcc -Map u-boot.map -o
> >>>>> u-boot
> >>>>> [  178s] ld.bfd: u-boot: could not find output section .gnu.hash
> >>>>> [  178s] ld.bfd: final link failed: Nonrepresentable section on output
> >>>>> [  178s] Makefile:556: recipe for target 'u-boot' failed
> >>>>> [  178s] make: *** [u-boot] Error 1
> >>>>
> >>>> You are trying this with your codebase, right? If so, can you try and
> >>>> build vanilla v2014.01 with the exact same build environment?
> >>
> >> Commented out all our patches at:
> >> https://build.opensuse.org/project/show/home:a_faerber:branches:Base:System
> >>
> >> Failure of any sunxi-added targets is to be expected, of course.
> > 
> > Not sure I'm getting this: if you build vanilla v2014.01, there
> > shouldn't be any sunxi target built at all, should it?
> 
> I removed the patches from the spec file in our build service. That
> doesn't drop the packages for those no longer patched-in targets, so
> failures of those targets are to be expected. I am not building locally.
> 
> Here's a vanilla "highbank" target failing:
> https://build.opensuse.org/package/live_build_log/home:a_faerber:branches:Base:System/u-boot-highbank/openSUSE_Factory_ARM/armv7l
> 
> >>> If it
> >>>> builds fine, then can you tell me which changes your patch(es) made to
> >>>> linker scripts in your tree wrt 2014.01?
> >>>
> >>> Ping.
> >>
> >> I had previously pointed to our patches and explained that they do not
> >> touch on any existing linker scripts. They merely change CONFIG_
> >> options, tweak environment settings and add the sunxi targets.
> > 
> > I am not asking about changing linker scripts; I am asking about
> > trying your build environment on the pristine v2014.01 codebase, e.g.
> > build all mainline ARM targets with your toolchains.
> 
> You did ask above "which changes" our patches "made to linker scripts".
> And the answer is: None, apart from the already commented-out
> gnuhash.patch, which corresponds to this very patch under discussion.

Understood -- my question about linker script changes was conditioned
to succeeding in building pristine v2014.01, so I had mentally put it
aside until v2014.01 build results are known.

> >> As for the other open question, OBS does not package build
> >> intermediaries of failed builds, so I'll need to reproduce it locally.
> >> ATM I'm lacking time because QEMU is about to enter Hard Freeze for 2.0.
> > 
> > Could you just run this in a git clone of U-Boot with v2014.01 checked
> > out?
> > 
> > 	ARCH=arm CROSS_COMPILE=your-toolchain-prefix- ./MAKEALL -a arm
> > 
> > It would build all targets unattended using your toolchain (assuming it
> > is in your PATH of course). 
> 
> My local ARM machines are all 13.1, not Factory, but I can try running
> that command there later.

Thanks!

> Amicalement,
> Andreas

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list