From: Ard Biesheuvel <ardb+git@google.com>
To: linux-kernel@vger.kernel.org
Cc: x86@kernel.org, Ard Biesheuvel <ardb@kernel.org>, phasta@kernel.org
Subject: [PATCH] x86/boot: Work around broken busybox truncate tool
Date: Thu, 24 Apr 2025 12:19:18 +0200 [thread overview]
Message-ID: <20250424101917.1552527-2-ardb+git@google.com> (raw)
From: Ard Biesheuvel <ardb@kernel.org>
The GNU coreutils version of truncate, which is the original, accepts a
% prefix for the -s size argument which means the file in question
should be padded to a multiple of the given size. This is currently used
to pad the setup block of bzImage to a multiple of 4k before appending
the decompressor.
busybux reimplements truncate but does not support this idiom, and
therefore fails the build since commit
9c54baab4401 ("x86/boot: Drop CRC-32 checksum and the build tool that generates it")
Work around this by avoiding truncate altogether, and relying on dd to
perform the padding.
Reported-by: <phasta@kernel.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
I personally think using a busybox environment for building the kernel
is a terrible idea, and does not satisfy the build tool requirements
listed in the documentation. But apparently, it used to work and now it
doesn't, and the workaround is rather straight-forward.
IOW, I don't care whether this gets applied or not, so I will leave it
to others to make the argument.
arch/x86/boot/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
index 81f55da81967..640fcac3af74 100644
--- a/arch/x86/boot/Makefile
+++ b/arch/x86/boot/Makefile
@@ -59,7 +59,7 @@ KBUILD_CFLAGS += $(CONFIG_CC_IMPLICIT_FALLTHROUGH)
$(obj)/bzImage: asflags-y := $(SVGA_MODE)
quiet_cmd_image = BUILD $@
- cmd_image = cp $< $@; truncate -s %4K $@; cat $(obj)/vmlinux.bin >>$@
+ cmd_image = (dd if=$< bs=4k conv=sync status=none; cat $(filter-out $<,$(real-prereqs))) >$@
$(obj)/bzImage: $(obj)/setup.bin $(obj)/vmlinux.bin FORCE
$(call if_changed,image)
--
2.49.0.805.g082f7c87e0-goog
next reply other threads:[~2025-04-24 10:19 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-24 10:19 Ard Biesheuvel [this message]
2025-04-24 10:22 ` [PATCH] x86/boot: Work around broken busybox truncate tool Philipp Stanner
2025-04-24 16:25 ` Ingo Molnar
2025-04-24 16:29 ` Ingo Molnar
2025-04-24 16:39 ` Ard Biesheuvel
2025-04-30 12:00 ` David Laight
2025-04-24 16:45 ` [tip: x86/urgent] x86/boot: Work around broken busybox 'truncate' tool tip-bot2 for Ard Biesheuvel
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=20250424101917.1552527-2-ardb+git@google.com \
--to=ardb+git@google.com \
--cc=ardb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=phasta@kernel.org \
--cc=x86@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.