• Masahiro Yamada's avatar
    kbuild: rename cmd_{bzip2,lzma,lzo,lz4,xzkern,zstd22} · 7ce7e984
    Masahiro Yamada authored
    GZIP-compressed files end with 4 byte data that represents the size
    of the original input. The decompressors (the self-extracting kernel)
    exploit it to know the vmlinux size beforehand. To mimic the GZIP's
    trailer, Kbuild provides cmd_{bzip2,lzma,lzo,lz4,xzkern,zstd22}.
    Unfortunately these macros are used everywhere despite the appended
    size data is only useful for the decompressors.
    
    There is no guarantee that such hand-crafted trailers are safely ignored.
    In fact, the kernel refuses compressed initramdfs with the garbage data.
    That is why usr/Makefile overrides size_append to make it no-op.
    
    To limit the use of such broken compressed files, this commit renames
    the existing macros as follows:
    
      cmd_bzip2   --> cmd_bzip2_with_size
      cmd_lzma    --> cmd_lzma_with_size
      cmd_lzo     --> cmd_lzo_with_size
      cmd_lz4     --> cmd_lz4_with_size
      cmd_xzkern  --> cmd_xzkern_with_size
      cmd_zstd22  --> cmd_zstd22_with_size
    
    To keep the decompressors working, I updated the following Makefiles
    accordingly:
    
      arch/arm/boot/compressed/Makefile
      arch/h8300/boot/compressed/Makefile
      arch/mips/boot/compressed/Makefile
      arch/parisc/boot/compressed/Makefile
      arch/s390/boot/compressed/Makefile
      arch/sh/boot/compressed/Makefile
      arch/x86/boot/compressed/Makefile
    
    I reused the current macro names for the normal usecases; they produce
    the compressed data in the proper format.
    
    I did not touch the following:
    
      arch/arc/boot/Makefile
      arch/arm64/boot/Makefile
      arch/csky/boot/Makefile
      arch/mips/boot/Makefile
      arch/riscv/boot/Makefile
      arch/sh/boot/Makefile
      kernel/Makefile
    
    This means those Makefiles will stop appending the size data.
    
    I dropped the 'override size_append' hack from usr/Makefile.
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Reviewed-by: default avatarNicolas Schier <n.schier@avm.de>
    7ce7e984
Makefile 2.68 KB