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

Albert ARIBAUD
2014-03-02T19:15:50Z

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:
> > Hi Albert,
> >
> > On Thu, 13 Feb 2014 12:39:07 +0100, Albert ARIBAUD
> > <albert.u.boot@aribaud.net> wrote:
> >
> >> Hi Andreas,
> >>
> >> On Mon, 27 Jan 2014 19:46:03 +0100, Andreas F?rber <afaerber@suse.de>
> >> wrote:
> >>
> >>> Hello,
> >>>
> >>> Am 27.01.2014 15:24, schrieb Wolfgang Denk:
> >>>> In message <1390798091-24747-1-git-send-email-afaerber@suse.de> you wrote:
> >>>>> Avoids "could not find output section .gnu.hash" ld.bfd errors on openSUSE.
> >>>>>
> >>>>> Cc: Albert Aribaud <albert.u.boot@aribaud.net>
> >>>>> Cc: Tom Rini <trini@ti.com>
> >>>>> Signed-off-by: Andreas F?rber <afaerber@suse.de>
> >>>>> ---
> >>>>> More changes like this may be needed, but these I compile-tested with
> >>>>> v2014.01 (regression from v2013.10). colibri_t20_iris was runtime-tested.
> >>>>> GCC 4.8.2 r206511, binutils 2.24
> >>>>>
> >>>>> arch/arm/cpu/u-boot.lds | 1 +
> >>>>> board/ti/am335x/u-boot.lds | 1 +
> >>>>> 2 files changed, 2 insertions(+)
> >>>>
> >>>> Is this an ARM specific issue, or other architectures affected as
> >>>> well?
> >>>
> >>> I figured out that the section was apparently not caught by the .gnu*
> >>> wildcard and this patch fixed our build for the following ARM configs:
> >>>
> >>> am335x_evm
> >>> arndale
> >>> colibri_t20_iris
> >>> cubieboard
> >>> highbank
> >>> hyundai_a7hd
> >>> mele_a1000
> >>> mx53loco
> >>> omap3_beagle
> >>> omap4_panda
> >>> paz00
> >>> rpi_b
> >>>
> >>> My guess was that this could be related to the arm-only commit:
> >>> http://git.denx.de/?p=u-boot.git;a=commit;h=47ed5dd031d7d2c587e6afd386e79ccec1a1b7f7
> >>> (which touches on a few more .lds files than mine)
> >>>
> >>> But I see nothing ARM-specific in .gnu.hash sections, so other
> >>> architectures might in theory be affected as well.
> >>> Cf. http://sourceware.org/ml/binutils/2006-10/msg00377.html
> >>>
> >>> I did read your post for ELDK pointing someone to an FAQ entry on not
> >>> using gcc-specific flags with ld, but for one I did not spot such a
> >>> thing in the ld command line, and for another our toolchain did not
> >>> change and v2013.10 builds succeed whereas v2014.01 builds failed
> >>> without the patch. I could try to git-bisect the offending change if
> >>> necessary.
> >>
> >> Using gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu7), I cannot see
> >> any issues on these boards:
> >>
> >> am335x_evm
> >> colibri_t20_iris
> >> highbank
> >> mx53loco
> >> omap3_beagle
> >> omap4_panda
> >> paz00
> >> rpi_b
> >>
> >> On arndale, issues are due to warnings unrelated to linking.
> >>
> >> Cubieboard, hyundai_a7hd, mele_a1000 are not in mainline AFAICT (but I'd
> >> like to see mele_a1000 in, as this might mean mele_a1000g could
> >> follow. :) )
>
> Sorry, missed that. I had merged v2014.01 into the sunxi tree and
> updated our downstream patch from it (v2014.01-sunxi.patch). It did not
> seem to touch on Makefile or ldscript in an interfering way.
> Cf. https://github.com/afaerber/u-boot/commits/sunxi
>
> Other downstream changes include forcing ext4 support for SPL and
> tweaking boot.scr vs. boot.scr.uimg filename inconsistencies.
>
> >> 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?
> >
> > Ping.
>
> Somehow I did not receive the previous message...
>
> 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

> Amicalement,
>
> Andreas

Amicalement,
--
Albert.