From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Thu, 13 Mar 2014 16:43:09 +0100 Subject: [U-Boot] [PATCH] arm: Handle .gnu.hash section in ldscripts In-Reply-To: References: <1390798091-24747-1-git-send-email-afaerber@suse.de> <20140127142403.8C31E38033A@gemini.denx.de> <52E6A96B.1080002@suse.de> <20140213123907.6b97040e@lilith> <20140222142753.6f0768b8@lilith> <531370FA.5090207@suse.de> <20140302191552.BF553D48072@smtp5-g21.free.fr> <53139B3E.7010907@suse.de> <5313A9F3.7020907@suse.de> <531CCD8A.5070005@suse.de> <531CD49C.6020500@suse.de> Message-ID: <20140313164309.420a618a@amdc2363> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Albert, Andreas, > Hi Andreas, > > On Sun, 09 Mar 2014 21:52:44 +0100, Andreas F?rber > wrote: > > > Hi, > > > > Am 09.03.2014 21:34, schrieb Albert ARIBAUD: > > > On Sun, 09 Mar 2014 21:22:34 +0100, Andreas F?rber > > > wrote: > > >> Am 09.03.2014 21:05, schrieb Albert ARIBAUD: > > >>> On Mon, 3 Mar 2014 08:00:52 +0100, Albert ARIBAUD > > >>> wrote: > > >>>> On Sun, 02 Mar 2014 23:00:19 +0100, Andreas F?rber > > >>>> 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 > > >>>>>>> wrote: > > >>>>>>>> Am 22.02.2014 14:27, schrieb Albert ARIBAUD: > > >>>>>>>>> On Thu, 13 Feb 2014 12:39:07 +0100, Albert ARIBAUD > > >>>>>>>>> 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 - > > >>>>> > >>>>>> 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 can report the same issue with OBS build of u-boot. When u-boot is build with qemu emulated environment with gcc-4.8.2 (native armv7l toolchain) in the OBS it needs patch prepared by Andreas. However I can build the same code from u-boot directory (without this patch) with following toolchain: arm-v7a-linux-gnueabi-gcc (OSELAS.Toolchain-2013.12.0 linaro-4.8-2013.11) 4.8.3 20131111 Any ideas how to solve this? > > > > 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, -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group