From: Dylan Hatch <dylanbhatch@google.com>
To: Josh Poimboeuf <jpoimboe@kernel.org>,
Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>,
Joe Lawrence <joe.lawrence@redhat.com>,
Song Liu <song@kernel.org>
Cc: live-patching@vger.kernel.org, linux-kernel@vger.kernel.org,
Dylan Hatch <dylanbhatch@google.com>
Subject: [PATCH] klp-build: Allow passing options to make via '--'
Date: Tue, 3 Nov 2026 23:39:09 +0000 [thread overview]
Message-ID: <20261103233909.1364531-1-dylanbhatch@google.com> (raw)
Livepatch builds rely on reproducing the original kernel build
environment. Currently, klp-build invokes bare 'make', which drops any
command-line variables or flags used during the original build (such as
'LLVM=1', 'CC=...', 'KBUILD_BUILD_TIMESTAMP=...', or custom wrapper
Makefiles via '-f').
Refactor the make invocations to use a common MAKE array and allow
passing arbitrary make options after '--' on the klp-build command line:
klp-build [OPTIONS] PATCH_FILE(s) [-- MAKE_OPTIONS]
Signed-off-by: Dylan Hatch <dylanbhatch@google.com>
---
scripts/livepatch/klp-build | 29 +++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/scripts/livepatch/klp-build b/scripts/livepatch/klp-build
index b52a8489d9f67..1fd405d43ef43 100755
--- a/scripts/livepatch/klp-build
+++ b/scripts/livepatch/klp-build
@@ -125,7 +125,7 @@ trap trap_err ERR
__usage() {
cat <<EOF
-Usage: $SCRIPT [OPTIONS] PATCH_FILE(s)
+Usage: $SCRIPT [OPTIONS] PATCH_FILE(s) [-- MAKE_OPTIONS]
Generate a livepatch module.
Options:
@@ -158,11 +158,23 @@ process_args() {
local long
local args
local patch
+ local klp_args=()
+ local make_args=()
+
+ while [[ $# -gt 0 ]]; do
+ if [[ "$1" == "--" ]]; then
+ shift
+ make_args=("$@")
+ break
+ fi
+ klp_args+=("$1")
+ shift
+ done
short="hfj:o:vdS:T"
long="help,show-first-changed,jobs:,output:,no-replace,verbose,debug,short-circuit:,keep-tmp"
- args=$(getopt --options "$short" --longoptions "$long" -- "$@") || {
+ args=$(getopt --options "$short" --longoptions "$long" -- "${klp_args[@]}") || {
echo; usage; exit
}
eval set -- "$args"
@@ -237,6 +249,7 @@ process_args() {
KEEP_TMP="$keep_tmp"
PATCHES=("$@")
+ MAKE=("make" "${make_args[@]}")
for patch in "${PATCHES[@]}"; do
[[ -f "$patch" ]] || die "$patch doesn't exist"
@@ -317,12 +330,12 @@ set_kernelversion() {
stash_file "$file"
- if [[ -n "$(make -s listnewconfig 2>/dev/null)" ]]; then
+ if [[ -n "$("${MAKE[@]}" -s listnewconfig 2>/dev/null)" ]]; then
die ".config mismatch, check your .config or run 'make olddefconfig'"
fi
- make syncconfig &>/dev/null || die "make syncconfig failed"
+ "${MAKE[@]}" syncconfig &>/dev/null || die "make syncconfig failed"
- kernelrelease="$(make -s kernelrelease)"
+ kernelrelease="$("${MAKE[@]}" -s kernelrelease)"
[[ -z "$kernelrelease" ]] && die "failed to get kernel version"
sed -i "2i echo $kernelrelease; exit 0" scripts/setlocalversion
@@ -526,7 +539,7 @@ fix_patches() {
clean_kernel() {
local cmd=()
- cmd=("make")
+ cmd=("${MAKE[@]}")
cmd+=("--silent")
cmd+=("-j$JOBS")
cmd+=("clean")
@@ -539,7 +552,7 @@ build_kernel() {
local log="$TMP_DIR/build.log"
local cmd=()
- cmd=("make")
+ cmd=("${MAKE[@]}")
# When a patch to a kernel module references a newly created unexported
# symbol which lives in vmlinux or another kernel module, the patched
@@ -859,7 +872,7 @@ build_patch_module() {
cflags+=("-fdata-sections")
[[ $REPLACE -eq 0 ]] && cflags+=("-DKLP_NO_REPLACE")
- cmd=("make")
+ cmd=("${MAKE[@]}")
if [[ -v VERBOSE ]]; then
cmd+=("V=1")
else
--
2.56.0.385.gac671c819a-goog
reply other threads:[~2026-11-03 23:39 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261103233909.1364531-1-dylanbhatch@google.com \
--to=dylanbhatch@google.com \
--cc=joe.lawrence@redhat.com \
--cc=jpoimboe@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=live-patching@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=pmladek@suse.com \
--cc=song@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®