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

Andreas Färber afaerber at suse.de
Sun Mar 9 21:22:34 CET 2014


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

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

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.

Amicalement,
Andreas

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

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg


More information about the U-Boot mailing list