From: Brad Klingerman Date: Fri, 1 May 2026 14:38:50 +0000 (-0500) Subject: Makefile: remove block from conv=block, sync in SPL alignment dd X-Git-Tag: v2026.07-rc2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26b17dbdb0f19efa67365b30d939d3572871e8ca;p=thirdparty%2Fu-boot.git Makefile: remove block from conv=block, sync in SPL alignment dd The line that produces $(SPL_BIN)-align.bin invokes dd with conv=block,sync but no cbs= operand. The result of dd conv=block without cbs= is unspecified. GNU coreutils outputs anyway, but uutils (default in Ubuntu 26.04 LTS) errors out for files with newlines, including SPL binaries, producing: dd: conv=block or conv=ubnblock specified without cbs=N Either the block operand must be removed, or cbs=N must be added. conv=block is for converting newline-terminated variable-length records to fixed-length space-padded ones, which is meaningless for a binary SPL image. The intent of the rule is 4-byte alignment, which conv=sync alone provides by padding the final block to bs= bytes with NULs. During build, u-boot-spl-align.bin errors silently due to '@'. Reproduced with uutils dd 0.8.0: $ dd if=/dev/urandom of=/tmp/in bs=1 count=10000 $ dd if=/tmp/in of=/tmp/out conv=block,sync bs=4 dd: conv=block or conv=unblock specified without cbs=N $ dd if=/tmp/in of=/tmp/out conv=sync bs=4 [succeeds] Output is byte-identical to GNU dd's output for binary input. Signed-off-by: Brad Klingerman Reviewed-by: Simon Glass Reviewed-by: Tom Rini --- diff --git a/scripts/Makefile.xpl b/scripts/Makefile.xpl index 862a8e6f231..a3fd3e1375f 100644 --- a/scripts/Makefile.xpl +++ b/scripts/Makefile.xpl @@ -257,7 +257,7 @@ MKIMAGEFLAGS_boot.bin = -T zynqmpimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE) \ endif $(obj)/$(SPL_BIN)-align.bin: $(obj)/$(SPL_BIN).bin - @dd if=$< of=$@ conv=block,sync bs=4 2>/dev/null; + @dd if=$< of=$@ conv=sync bs=4 2>/dev/null; spl/boot.bin: $(obj)/$(SPL_BIN)-align.bin FORCE $(call if_changed,mkimage)