When kbuild on usr-merged distro like: make INSTALL_MOD_PATH="$BUILD_DIR_C/mods" \ MODLIB="$BUILD_DIR_C/mods/usr/lib/modules/$release" \ modules_install (notice the '/usr' insert) where release=$(make -s kernelrelease) depmod fails: > DEPMOD /var/tmp/build/mods/usr/lib/modules/6.5.0-rc5-default > ln: failed to create symbolic link '/var/tmp/build/mods/lib/modules/99.98.6.5.0-rc5-default': No such file or directory > depmod: ERROR: could not open directory /var/tmp/build/mods/usr/lib/modules/99.98.6.5.0-rc5-default: No such file or directory > depmod: FATAL: could not search modules: No such file or directory I used kmod-30-8.1.x86_64 (openSUSE Tumbleweed with usr-merge). The explicit MODLIB doesn't cut it because of another path dependency in depmod's hack. That provision was added in commit bfe5424a8b31 ("kbuild: Hack for depmod not handling X.Y versions") (2011, v3.0). It says the hack is needed for module-init-tools < 3.13, 3.13 is from 2011 too. Actually, it seems to be a cautious action between 2.6.xx series and an expected 3.0 but it ended up as 3.0.0 and SUBLEVEL=0 has been since then (so even the busybox's depmod should work without the hack). Remove the hack to make builds with custom INSTALL_MOD_PATH on usr-merged distros possible. Link: https://lore.kernel.org/r/CAK7LNAT6mQ0EpwmKUCBhv9Acaf_qyGq4hu%3DXvSWRuZ-pNAFWVw@xxxxxxxxxxxxxx/ Signed-off-by: Michal Koutný <mkoutny@xxxxxxxx> --- scripts/depmod.sh | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/scripts/depmod.sh b/scripts/depmod.sh index 3643b4f896ed..84311255e4bf 100755 --- a/scripts/depmod.sh +++ b/scripts/depmod.sh @@ -23,24 +23,6 @@ if [ -z $(command -v $DEPMOD) ]; then exit 0 fi -# older versions of depmod require the version string to start with three -# numbers, so we cheat with a symlink here -depmod_hack_needed=true -tmp_dir=$(mktemp -d ${TMPDIR:-/tmp}/depmod.XXXXXX) -mkdir -p "$tmp_dir/lib/modules/$KERNELRELEASE" -if "$DEPMOD" -b "$tmp_dir" $KERNELRELEASE 2>/dev/null; then - if test -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep" -o \ - -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep.bin"; then - depmod_hack_needed=false - fi -fi -rm -rf "$tmp_dir" -if $depmod_hack_needed; then - symlink="$INSTALL_MOD_PATH/lib/modules/99.98.$KERNELRELEASE" - ln -s "$KERNELRELEASE" "$symlink" - KERNELRELEASE=99.98.$KERNELRELEASE -fi - set -- -ae -F System.map if test -n "$INSTALL_MOD_PATH"; then set -- "$@" -b "$INSTALL_MOD_PATH" -- 2.41.0