Build ID is missing for arm64 with CONFIG_MODVERSIONS=y using ld >= 2.36 on 5.4, 5.10, and 5.15
Backport Build ID fixes, which work-around ld behavior by modifying vmlinux linker script.
This has been build tested this on {x86_64, arm64, riscv, powerpc, s390, sh}.
Simple test case: $ readelf -n vmlinux | grep "Build ID"
Changes for v3: - per Greg, add justification for backporting: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") which has "Fixes:" to v6.2 only content. - rebase to v5.15.96
Changes for v2: - rebase 5/5 c1c551bebf92 ("sh: define RUNTIME_DISCARD_EXIT") from upstream
Previous threads: [1] v2 https://lore.kernel.org/all/20230210-tsaeger-upstream-linux-5-10-y-v2-0-ada7... [2] v1 https://lore.kernel.org/all/cover.1674851705.git.tom.saeger@oracle.com/ [3] https://lore.kernel.org/all/3df32572ec7016e783d37e185f88495831671f5d.1671143... [4] https://lore.kernel.org/all/cover.1670358255.git.tom.saeger@oracle.com/
Signed-off-by: Tom Saeger tom.saeger@oracle.com --- Masahiro Yamada (2): arch: fix broken BuildID for arm64 and riscv s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36
Michael Ellerman (2): powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds
Tom Saeger (1): sh: define RUNTIME_DISCARD_EXIT
arch/powerpc/kernel/vmlinux.lds.S | 6 +++++- arch/s390/kernel/vmlinux.lds.S | 2 ++ arch/sh/kernel/vmlinux.lds.S | 1 + include/asm-generic/vmlinux.lds.h | 5 +++++ 4 files changed, 13 insertions(+), 1 deletion(-) --- base-commit: 22d269bb30db7f5a4e71a8a813a0f4df5255f7de change-id: 20230210-tsaeger-upstream-linux-5-10-y-e443820440f6
Best regards,