From bfdcd08bd78620eb43fe800ce90bd28f07048b3e Mon Sep 17 00:00:00 2001 From: yinbinbin Date: Tue, 6 Dec 2022 16:52:37 +0800 Subject: [PATCH] kpatch-build: use new klp arch Signed-off-by: yinbinbin --- kpatch-build/kpatch-build | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build index 086d28b..fda9b2f 100755 --- a/kpatch-build/kpatch-build +++ b/kpatch-build/kpatch-build @@ -228,6 +228,11 @@ use_klp_arch() fi } +new_use_klp_arch() +{ + "$READELF" -s --wide "$VMLINUX" | grep -w "arch_klp_init_object_loaded" +} + support_klp_replace() { if kernel_is_rhel; then @@ -1043,12 +1048,6 @@ if [[ -n "$CONFIG_LIVEPATCH" ]] && (kernel_is_rhel || kernel_version_gte 4.9.0); USE_KLP=1 - if use_klp_arch; then - USE_KLP_ARCH=1 - KPATCH_LDFLAGS="--unique=.parainstructions --unique=.altinstructions" - CDO_FLAGS="--klp-arch" - fi - if [[ "$KLP_REPLACE" -eq 1 ]] ; then support_klp_replace || die "The kernel doesn't support klp replace" else @@ -1151,6 +1150,14 @@ fi # shellcheck disable=SC2086 make "${MAKEVARS[@]}" "-j$CPUS" $TARGETS 2>&1 | logger || die +if [[ -n "$CONFIG_LIVEPATCH" ]]; then + if new_use_klp_arch; then + USE_KLP_ARCH=1 + KPATCH_LDFLAGS="--unique=.parainstructions --unique=.altinstructions" + CDO_FLAGS="--klp-arch" + fi +fi + echo "Reading special section data" find_special_section_data -- Gitee