summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorVivian Wang <wangruikang@iscas.ac.cn>2025-12-30 21:39:17 +0800
committerPaul Walmsley <pjw@kernel.org>2025-12-30 19:57:55 -0700
commit66562b66dcbc8f93c1e28632299f449bb2f5c47d (patch)
tree75c47b79f40f6183beb21cd2cefc7cd071d8c16f /tools/perf/scripts/python/git@git.tavy.me:linux.git
parentf8f9c1f4d0c7a64600e2ca312dec824a0bc2f1da (diff)
riscv: boot: Always make Image from vmlinux, not vmlinux.unstripped
Since commit 4b47a3aefb29 ("kbuild: Restore pattern to avoid stripping .rela.dyn from vmlinux") vmlinux has .rel*.dyn preserved. Therefore, use vmlinux to produce Image, not vmlinux.unstripped. Doing so fixes booting a RELOCATABLE=y Image with kexec. The problem is caused by this chain of events: - Since commit 3e86e4d74c04 ("kbuild: keep .modinfo section in vmlinux.unstripped"), vmlinux.unstripped gets a .modinfo section. - The .modinfo section has SHF_ALLOC, so it ends up in Image, at the end of it. - The Image header's image_size field does not expect to include .modinfo and does not account for it, since it should not be in Image. - If .modinfo is large enough, the file size of Image ends up larger than image_size, which eventually leads to it failing sanity_check_segment_list(). Using vmlinux instead of vmlinux.unstripped means that the unexpected .modinfo section is gone from Image, fixing the file size problem. Cc: stable@vger.kernel.org Fixes: 3e86e4d74c04 ("kbuild: keep .modinfo section in vmlinux.unstripped") Signed-off-by: Vivian Wang <wangruikang@iscas.ac.cn> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Han Gao <gaohan@iscas.ac.cn> Link: https://patch.msgid.link/20251230-riscv-vmlinux-not-unstripped-v1-1-15f49df880df@iscas.ac.cn Signed-off-by: Paul Walmsley <pjw@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions