x86/boot: Work around broken busybox 'truncate' tool
authorArd Biesheuvel <ardb@kernel.org>
Thu, 24 Apr 2025 10:19:18 +0000 (12:19 +0200)
committerIngo Molnar <mingo@kernel.org>
Thu, 24 Apr 2025 16:23:27 +0000 (18:23 +0200)
commit032ce1ea9442e140a80e41078b5431d4c0fa2893
tree51e698976933e933f8bb0affc9cfc3d40e048d8f
parent4ce385f56434f3810ef103e1baea357ddcc6667e
x86/boot: Work around broken busybox 'truncate' tool

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.

busybox 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")

Since very little build code within the kernel depends on the 'truncate'
utility, work around this incompatibility by avoiding truncate altogether,
and relying on dd to perform the padding.

Fixes: 9c54baab4401 ("x86/boot: Drop CRC-32 checksum and the build tool that generates it")
Reported-by: <phasta@kernel.org>
Tested-by: Philipp Stanner <phasta@kernel.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20250424101917.1552527-2-ardb+git@google.com
arch/x86/boot/Makefile