[U-Boot] current mainline build fails for some arm boards

Hello Stephen,
I see when building current mainline with:
$ ./tools/buildman/buildman arm boards.cfg is up to date. Nothing to do. Building current source for 562 boards (8 threads, 1 job per thread) arm: + VCMA9 +arch/arm/lib/lib1funcs.S: Assembler messages: +arch/arm/lib/lib1funcs.S:358: Error: bad size 0 in type specifier +arch/arm/lib/lib1funcs.S:358: Error: bad instruction `_.pushsection .text.__gnu_thumb1_case_uqi,"ax"' +arch/arm/lib/lib1funcs.S:370: Warning: .popsection without corresponding .pushsection; ignored +make[2]: *** [arch/arm/lib/lib1funcs.o] Error 1 +make[1]: *** [arch/arm/lib] Error 2 +make: *** [sub-make] Error 2 [...]
for some boards ...
git bisect says:
$ git bisect good b2f1858455e99a91aeafe59ac73c6c047106d5e8 is the first bad commit commit b2f1858455e99a91aeafe59ac73c6c047106d5e8 Author: Stephen Warren swarren@nvidia.com Date: Fri Jun 3 13:05:11 2016 -0600
arm: lib: fix push/pop-section directives
With the existing code, function symbols are defined in .text, and the body is defined in .text.xxx. This causes (at least some version of) the linker not to emit the function body into the final binary, since it's part of a different section to the symbols being referenced. This of course causes a wide variety of failures.
This change moves the push/pop-section directives before the function symbols, and after any relate ENDPROC macro invocations, so that symbols and bodies are all in the "pushed" sections, and thus the function bodies are emitted into the binary.
This solves (at least) the boot problems currently seen on Tegra systems that use SPL (i.e. all ARMv7 Tegras).
Fixes: 13b0a91a6d48 ("arm: lib: Split asm symbols into different .text subsections") Cc: Marek Vasut marex@denx.de Cc: Tom Warren twarren@nvidia.com Cc: Simon Glass sjg@chromium.org Cc: Masahiro Yamada yamada.masahiro@socionext.com Signed-off-by: Stephen Warren swarren@nvidia.com
:040000 040000 48878602d5d6769533fa4a979b70aec516ee5093 c791993ebe2e3cb88de6bdfdb05f21ea9f1a04b6 M arch pollux:u-boot hs [(kein Branch, binäre Suche begonnen bei master)] $ git bisect log git bisect start # bad: [b2f1858455e99a91aeafe59ac73c6c047106d5e8] arm: lib: fix push/pop-section directives git bisect bad b2f1858455e99a91aeafe59ac73c6c047106d5e8 # good: [03c6f1761ede305637ed54fb238b2059c597451e] serial: 16550: Drop OMAP1510 support git bisect good 03c6f1761ede305637ed54fb238b2059c597451e # good: [383f4a0ec78ee92c89a7ce135acbde47c84c6201] ARM: OMAP5+: Provide enable/disable_usb_clocks() for CONFIG_USB_XHCI_OMAP git bisect good 383f4a0ec78ee92c89a7ce135acbde47c84c6201 # good: [d60198dac2026ca6b6732e5cd6892d3b3bebddaa] arm: am57xx: Fix omap_vcores assignment for am572x-idk git bisect good d60198dac2026ca6b6732e5cd6892d3b3bebddaa # good: [77cd5368cee8b6a5684877e1bf4d544bf271ef08] arm: socfpga: Add missing ',' in CONFIG_BOOTARGS git bisect good 77cd5368cee8b6a5684877e1bf4d544bf271ef08 # good: [e2924e5904ae413e0b4a2a0d407267e7bbc2c7c4] ARM: k2g: Configure reset mux to device reset git bisect good e2924e5904ae413e0b4a2a0d407267e7bbc2c7c4 # good: [edb697cfcc2dda02c5b2a34b3157b8fa8fc01264] Merge branch 'master' of git://git.denx.de/u-boot-socfpga git bisect good edb697cfcc2dda02c5b2a34b3157b8fa8fc01264 # first bad commit: [b2f1858455e99a91aeafe59ac73c6c047106d5e8] arm: lib: fix push/pop-section directives pollux:u-boot hs [(kein Branch, binäre Suche begonnen bei master)] $
Can you take a look on it?
bye, Heiko

Hello Stephen,
Am 06.06.2016 um 08:42 schrieb Heiko Schocher:
Hello Stephen,
I see when building current mainline with:
$ ./tools/buildman/buildman arm boards.cfg is up to date. Nothing to do. Building current source for 562 boards (8 threads, 1 job per thread) arm: + VCMA9 +arch/arm/lib/lib1funcs.S: Assembler messages: +arch/arm/lib/lib1funcs.S:358: Error: bad size 0 in type specifier +arch/arm/lib/lib1funcs.S:358: Error: bad instruction `_.pushsection .text.__gnu_thumb1_case_uqi,"ax"' +arch/arm/lib/lib1funcs.S:370: Warning: .popsection without corresponding .pushsection; ignored +make[2]: *** [arch/arm/lib/lib1funcs.o] Error 1 +make[1]: *** [arch/arm/lib] Error 2 +make: *** [sub-make] Error 2 [...]
for some boards ...
Sorry for the noise, a fix is already sent from Marek:
http://patchwork.ozlabs.org/patch/630318/
bye, Heiko
participants (1)
-
Heiko Schocher