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

Albert ARIBAUD
2014-03-09T20:05:11Z

On Mon, 3 Mar 2014 08:00:52 +0100, Albert ARIBAUD
<albert.u.boot@aribaud.net> wrote:

> 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?

Ping.

> > 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.