Re: [PATCH 2/2] kbuild: remove libelf checks from top Makefile

From: Andrii Nakryiko
Date: Wed May 12 2021 - 16:34:42 EST


On Tue, May 11, 2021 at 11:52 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
>
> 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 matter 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@xxxxxxxxxxxxxx/
>
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> ---
>

resolve_btfids part looks good to me:

Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx>

> Makefile | 78 +++++++++++----------------------------
> scripts/Makefile.build | 2 -
> scripts/Makefile.modfinal | 2 -
> 3 files changed, 22 insertions(+), 60 deletions(-)
>

[...]