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

From: Masahiro Yamada
Date: Sun May 16 2021 - 22:51:44 EST


(+CC: Josh, Peter)

On Thu, May 13, 2021 at 4:36 AM Andrii Nakryiko
<andrii.nakryiko@xxxxxxxxx> wrote:
>
> 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(-)
> >
>
> [...]



--
Best Regards
Masahiro Yamada