On Wed, 19 Jan 2022 at 09:00, Linus Torvalds torvalds@linux-foundation.org wrote:
On Wed, Jan 19, 2022 at 9:30 AM Naresh Kamboju naresh.kamboju@linaro.org wrote:
Inconsistent kallsyms data
This tends to be a "odd build environment" problem, and very very random. Triggered by very particular compiler versions and just some odd code modement details.
I'd suggest doing a completely clean build and disabling ccache, and seeing if that makes it go away.
Clean build without ccache didn't help.
It seams that it fails randomly based on the size of the rodata section. This could probably happen with another toolchain too, trying enough configurations.
Diff of tmp_vmlinux.kallsyms2.symbols and tmp_vmlinux.kallsyms3.symbols [1] show why it fails to converge, while said that the __stop_notes address is on the page boundary, so __end_rodata has the same value as __stop_notes. All 3 tmp_vmlinux.kallsyms(1|2|3).symbols files can be found [2].
Inserting padding before __end_rodata [3], or blacklisting __stop_notes [4] in kallsyms.c works around the problem, but neither of those seems like a good fix.
The linker version I'm using are 'GNU ld (GNU Binutils for Debian) 2.35.2'.
Cheers, Anders [1] http://ix.io/3ML7 [2] https://people.linaro.org/~anders.roxell/kallsyms/ [3] http://ix.io/3MN2 [4] http://ix.io/3MN4