Skip to content
  • Masahiro Yamada's avatar
    kbuild: remove libelf checks from top Makefile · 0d989ac2
    Masahiro Yamada authored
    I do not see a good reason why only the libelf development package must
    be so carefully checked.
    
    Kbuild generally does not check host tools or libraries.
    
    For example, x86_64 defconfig fails to build with no libssl development
    package installed.
    
    scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: No such file or directory
       21 | #include <openssl/bio.h>
          |          ^~~~~~~~~~~~~~~
    
    To solve the build error, you need to install libssl-dev or openssl-devel
    package, depending on your distribution.
    
    'apt-file search', 'dnf provides', etc. is your frined to find a proper
    package to install.
    
    This commit removes all the libelf checks from the top Makefile.
    
    If libelf is missing, objtool will fail to build in a similar pattern:
    
    .../linux/tools/objtool/include/objtool/elf.h:10:10: fatal error: gelf.h: No such file or directory
       10 | #include <gelf.h>
    
    You need to install libelf-dev, libelf-devel, or elfutils-libelf-devel
    to proceed.
    
    Another remarkable change is, CONFIG_STACK_VALIDATION (without
    CONFIG_UNWINDER_ORC) previously continued to build with a warning,
    but now it will treat missing libelf as an error.
    
    This is just a one-time installation, so it should not hurt to break
    a build and make a user install the package.
    
    BTW, the traditional way to handle such checks is autotool, but according
    to [1], I do not expect the kernel build would have similar scripting
    like './configure' does.
    
    [1]: https://lore.kernel.org/lkml/CA+55aFzr2HTZVOuzpHYDwmtRJLsVzE-yqg2DHpHi_9ePsYp5ug@mail.gmail.com/
    
    
    
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    0d989ac2