Skip to content
Snippets Groups Projects
  • Parth Pancholi's avatar
    kbuild: switch from lz4c to lz4 for compression · e397a603
    Parth Pancholi authored
    Replace lz4c with lz4 for kernel image compression.
    Although lz4 and lz4c are functionally similar, lz4c has been deprecated
    upstream since 2018. Since as early as Ubuntu 16.04 and Fedora 25, lz4
    and lz4c have been packaged together, making it safe to update the
    requirement from lz4c to lz4.
    
    Consequently, some distributions and build systems, such as OpenEmbedded,
    have fully transitioned to using lz4. OpenEmbedded core adopted this
    change in commit fe167e082cbd ("bitbake.conf: require lz4 instead of
    lz4c"), causing compatibility issues when building the mainline kernel
    in the latest OpenEmbedded environment, as seen in the errors below.
    
    This change also updates the LZ4 compression commands to make it backward
    compatible by replacing stdin and stdout with the '-' option, due to some
    unclear reason, the stdout keyword does not work for lz4 and '-' works for
    both. In addition, this modifies the legacy '-c1' with '-9' which is also
    compatible with both. This fixes the mainline kernel build failures with
    the latest master OpenEmbedded builds associated with the mentioned
    compatibility issues.
    
    LZ4     arch/arm/boot/compressed/piggy_data
    /bin/sh: 1: lz4c: not found
    ...
    ...
    ERROR: oe_runmake failed
    
    Link: https://github.com/lz4/lz4/pull/553
    
    
    Suggested-by: default avatarFrancesco Dolcini <francesco.dolcini@toradex.com>
    Signed-off-by: default avatarParth Pancholi <parth.pancholi@toradex.com>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    e397a603