From 9a1729d47ea279a63c29e45ffee9892f95ed18c2 Mon Sep 17 00:00:00 2001 From: rpm-build Date: Mon, 6 May 2024 19:18:02 +0800 Subject: [PATCH] fix function ptr relocation and strip .BTF section for ko --- kpatch-build/create-diff-object.c | 2 +- kpatch-build/kpatch-build | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/kpatch-build/create-diff-object.c b/kpatch-build/create-diff-object.c index 5de19f4..73b8337 100644 --- a/kpatch-build/create-diff-object.c +++ b/kpatch-build/create-diff-object.c @@ -3444,7 +3444,7 @@ static int function_ptr_rela(const struct rela *rela) int entry_offset = 0; if (getenv("CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS")) - entry_offset = 20; + entry_offset = 16; return (rela_toc && rela_toc->sym->type == STT_FUNC && !rela_toc->sym->parent && diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build index 17cb83d..edc05b3 100755 --- a/kpatch-build/kpatch-build +++ b/kpatch-build/kpatch-build @@ -1555,6 +1555,9 @@ if [[ "$USE_KLP" -eq 1 ]]; then [[ "$rc" -ne 0 ]] && die "create-klp-module: exited with return code: $rc" fi +objcopy --remove-section=.BTF "$TEMPDIR/patch/$MODNAME.ko" "$TEMPDIR/patch/${MODNAME}_tmp.ko" +mv "$TEMPDIR/patch/${MODNAME}_tmp.ko" "$TEMPDIR/patch/$MODNAME.ko" + if [[ -n "$CONFIG_MODVERSIONS" ]]; then # Check that final module does not reference symbols with different version # than the target kernel -- 2.33.0