Re: [PATCH v2 00/53] objtool/klp: Some klp-build fixes and improvements
Josh Poimboeuf <[email protected]>
| Newsgroups | org.kernel.vger.live-patching,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <cq5uytz6edj75w53f2eubypvqm66hgh4eag7ec2vgqjefzzqts@lcnvt7fcrtmd> |
On Thu, Apr 30, 2026 at 09:07:48PM -0700, Josh Poimboeuf wrote: > Changes since v1 (https://lore.kernel.org/[email protected]): > > - Add comment for find_reloc_by_dest_range() first-match behavior > [Peter] > - Simplify is_cold_func() [Peter] > - Grow __cfi_ symbols [Peter] > - Rename "Ignore __UNIQUE_ID_*() PCI stub functions" to more general > "Don't report uncorrelated functions as new" [Song] > - Move rodata non-correlation into pointer-comparison fix [Miroslav] > - Add comments for convert_reloc_sym() return values [Song] > - Remove redundant SRC/OBJ variables [Song] > - Use "if (mismatch) {} else" in for_each_sym_by_*() [Song] > - Flatten nested if-else chain in short-circuit validation [Song] > - Add comments with examples to symbol correlation algorithm [Song] > - Move callback refactor to earlier in the patch set [Miroslav] > - Fix reloc corruption in convert_reloc_sym_to_secsym() [Sashiko] > - Include offset in object checksum hashing [Sashiko] > - Fix klp-build checksum comparison output for added/removed > instructions [Sashiko] > - Fix kCFI prefix finding/cloning > - Add reloc symbol conversion simplification cleanup > - Improve local label check for uncorrelated symbols > - Drop "Make function prefix handling more generic" for now (refactored > version will come with arm64 patches) > - Refactor inline alternative cloning into separate > clone_inline_alternatives() > - Add Acked-by/Reviewed-by tags I'm squashing a few Sashiko nits (see below) into their relevant patches, along with a minor bisectability issue. latest is at: git://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git klp-build-arm64 diff --git a/scripts/livepatch/klp-build b/scripts/livepatch/klp-build index 31604d48ff49..10145b1dd089 100755 --- a/scripts/livepatch/klp-build +++ b/scripts/livepatch/klp-build @@ -275,7 +275,7 @@ validate_config() { [[ "$CONFIG_AS_VERSION" -lt 200000 ]] && \ die "Clang assembler version < 20 not supported" - "$OBJTOOL" klp 2>&1 | command grep -q "not implemented" && \ + [[ -x "$OBJTOOL" ]] && "$OBJTOOL" klp 2>&1 | command grep -q "not implemented" && \ die "objtool not built with KLP support; install xxhash-devel/libxxhash-dev (version >= 0.8) and recompile" return 0 @@ -741,7 +741,7 @@ diff_objects() { ( cd "$ORIG_CSUM_DIR" - [[ -v VERBOSE ]] && echo "${cmd[@]}" + [[ -v VERBOSE ]] && echo "cd $ORIG_CSUM_DIR && ${cmd[*]}" "${cmd[@]}" \ 1> >(tee -a "$log") \ 2> >(tee -a "$log" | "${filter[@]}" >&2) || \ diff --git a/tools/objtool/check.c b/tools/objtool/check.c index ca360239ea2b..2b03a2d6fc95 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -2494,7 +2494,7 @@ static int __annotate_late(struct objtool_file *file, int type, struct instructi ERROR_INSN(insn, "dodgy NOCFI annotation"); return -1; } - insn_sym(insn)->nocfi = 1; + sym->nocfi = 1; break; default: