On Thu, Dec 7, 2023 at 4:48 AM Michal Suchanek <msuchanek@xxxxxxx> wrote: > > Some distributions aim at shipping all files in /usr. > > The path under which kernel modules are installed is hardcoded to /lib > which conflicts with this goal. > > When kmod provides kmod.pc, use it to determine the correct module > installation path. > > With kmod that does not provide the config /lib/modules is used as > before. > > While pkg-config does not return an error when a variable does not exist > the kmod configure script puts some effort into ensuring that > module_directory is non-empty. With that empty module_directory from > pkg-config can be used to detect absence of the variable. > > Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx> > --- > v6: > - use ?= instead of := to make it easier to override the value "KERNEL_MODULE_DIRECTORY=/local/usr/lib/modules make modules_install" will override the install destination, but depmod will not be not aware of it. How to avoid the depmod error? > - use shorter expression for determining the module directory assuming > it's non-empty > --- > Makefile | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index 511b5616aa41..84f32bd563d4 100644 > --- a/Makefile > +++ b/Makefile > @@ -1081,7 +1081,9 @@ export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE) > # makefile but the argument can be passed to make if needed. > # > > -MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) > +export KERNEL_MODULE_DIRECTORY ?= $(or $(shell pkg-config --variable=module_directory kmod 2>/dev/null),/lib/modules) > + > +MODLIB = $(INSTALL_MOD_PATH)$(KERNEL_MODULE_DIRECTORY)/$(KERNELRELEASE) > export MODLIB > > PHONY += prepare0 > -- > 2.42.0 > > -- Best Regards Masahiro Yamada