On 11/01/2020 23.44, Rasmus Villemoes wrote: > On 10/01/2020 15.34, Tom Rini wrote: >> On Fri, Jan 10, 2020 at 02:28:54PM +0000, Rasmus Villemoes wrote: >>> On 15/12/2019 23.29, Rasmus Villemoes wrote: >>>> I'm also seeing the build failure that commit >>>> >>>> 7d4776545b env: solve compilation error in SPL >>>> >>> >>> Yeah, I think this is a difference in how the linker works on ppc vs >>> arm. Doing >>> >>> >>> For reference, I have >>> >>> $ ${CROSS_COMPILE}ld --version >>> GNU ld (GNU Binutils for Ubuntu) 2.30 >> >> Which SPL are you using on PowerPC? There's the one based >> CONFIG_SPL_FRAMEWORK and the one that's not. I suspect it's a framework >> vs not problem here rather than linker exactly. >> > > No, it's nothing to do with SPL per se.
OK, I think I found it. On powerpc, the .fixup section contains a reference to .data.rel.env_htab, and all of .fixup is kept (because of KEEP(*(.fixup))), so env_htab cannot get garbage collected. Hence anything that section refers to must also exist. So it's not a defect in ppc-ld vs arm-ld, it's just a consequence of ppc having that .fixup section. So, the only way to fix that is by either making sure env_flags_validate exists in the link, or avoiding having env_htab being part of the link in the first place. My patch does the latter. Rasmus