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

Albert ARIBAUD
2014-03-03T07:00:52Z

Hi Andreas,

(seems an answer from me yesterday didn't make it out of the NSA
interceptors...)

On Sun, 02 Mar 2014 23:00:19 +0100, Andreas F?rber
<afaerber@suse.de> wrote:

> Am 02.03.2014 21:57, schrieb Andreas F?rber:
> > Hi Albert,
> >
> > Am 02.03.2014 20:15, schrieb Albert ARIBAUD:
> >> Hi Andreas,
> >>
> >> On Sun, 02 Mar 2014 18:57:14 +0100, Andreas F?rber <afaerber@suse.de>
> >> wrote:
> >>
> >>> Hi Albert,
> >>>
> >>> Am 22.02.2014 14:27, schrieb Albert ARIBAUD:
> >>>> On Thu, 13 Feb 2014 12:39:07 +0100, Albert ARIBAUD
> >>>> <albert.u.boot@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? If it
builds fine, then can you tell me which changes your patch(es) made to
linker scripts in your tree wrt 2014.01?

> https://build.opensuse.org/package/live_build_log/home:a_faerber:branches:Base:System/u-boot-colibrit20iris/openSUSE_Factory_ARM/armv7l
>
> Regards,
> Andreas

Amicalement,
--
Albert.