CONFIG_DEBUG_INFO_BTF_MODULES is enabled on most/all void kernels, and
thus pahole is used when generating BTF information during compilation of
external modules. on cross-built kernels, the absence of pahole will
remove CONFIG_DEBUG_INFO_BTF_MODULES from
/usr/src/kernel-headers-$version/include/generated/autoconf.h when
the dkms kernel.d hook runs for the first time (because cross-built
kernels have their host tools removed).
When this is removed, part of the module struct in include/linux/module.h
is missing, resulting in a mismatch in the size of the __this_module
struct (.gnu.link_once.this_module section of the .ko) in external
modules of exactly 64 bytes.
struct module {
// ...
#ifdef CONFIG_DEBUG_INFO_BTF_MODULES
unsigned int btf_data_size;
void *btf_data;
#endif
// ...
}
fixes#51005