• Andrii Nakryiko's avatar
    kbuild: Skip module BTF generation for out-of-tree external modules · e732b538
    Andrii Nakryiko authored
    In some modes of operation, Kbuild allows to build modules without having
    vmlinux image around. In such case, generation of module BTF is impossible.
    This patch changes the behavior to emit a warning about impossibility of
    generating kernel module BTF, instead of breaking the build. This is especially
    important for out-of-tree external module builds.
    
    In vmlinux-less mode:
    
    $ make clean
    $ make modules_prepare
    $ touch drivers/acpi/button.c
    $ make M=drivers/acpi
    ...
      CC [M]  drivers/acpi/button.o
      MODPOST drivers/acpi/Module.symvers
      LD [M]  drivers/acpi/button.ko
      BTF [M] drivers/acpi/button.ko
    Skipping BTF generation for drivers/acpi/button.ko due to unavailability of vmlinux
    ...
    $ readelf -S ~/linux-build/default/drivers/acpi/button.ko | grep BTF -A1
    ... empty ...
    
    Now with normal build:
    
    $ make all
    ...
    LD [M]  drivers/acpi/button.ko
    BTF [M] drivers/acpi/button.ko
    ...
    $ readelf -S ~/linux-build/default/drivers/acpi/button.ko | grep BTF -A1
      [60] .BTF              PROGBITS         0000000000000000  00029310
           000000000000ab3f  0000000000000000           0     0     1
    
    Fixes: 5f9ae91f ("kbuild: Build kernel module BTFs if BTF is enabled and pahole supports it")
    Reported-by: default avatarBruce Allan <bruce.w.allan@intel.com>
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    Link: https://lore.kernel.org/bpf/20201121070829.2612884-1-andrii@kernel.org
    e732b538
Makefile.modfinal 2.66 KB