
On 05/26/2016 10:01 AM, Marek Vasut wrote:
Split each symbol in lib1funcs into different .text.foo section instead of placing all of them into plain .text . This allows the linker to collect and discard unused assembler symbols.
This patch causes Tegra-boards-that-use-SPL (i.e. all ARMv7 boards but not ARMv8) to fail to boot with zero output. Taking u-boot.git master branch and reverting this one patch is enough to make U-Boot work again.
I haven't investigated how to solve this yet. Likely relevant background:
32-bit Tegra SPL runs on an ARM1176 CPU whereas main U-Boot runs on an ARMv7 CPU. We need to use PRIVATE_LIBGCC (at least for SPL) since the libgcc in the toolchains we use is compiled for ARMv7, and hence picking it up in SPL breaks boot. I wonder if these section name changes are causing the linker to pull in the toolchain's libgcc rather than using U-Boot's copy compiled for ARM1176?