All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86/boot: Work around broken busybox truncate tool
@ 2025-04-24 10:19 Ard Biesheuvel
  2025-04-24 10:22 ` Philipp Stanner
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Ard Biesheuvel @ 2025-04-24 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: x86, Ard Biesheuvel, phasta

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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-04-30 12:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-24 10:19 [PATCH] x86/boot: Work around broken busybox truncate tool Ard Biesheuvel
2025-04-24 10:22 ` 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

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.