diff --git a/scripts/depmod.sh b/scripts/depmod.sh index 9f205dafed36..3b029cba2baf 100755 --- a/scripts/depmod.sh +++ b/scripts/depmod.sh @@ -18,8 +18,31 @@ fi if ! test -r System.map -a -x "$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 +mkdir -p .tmp_depmod/lib/modules/$KERNELRELEASE +if "$DEPMOD" -b .tmp_depmod $KERNELRELEASE 2>/dev/null; then + if test -e .tmp_depmod/lib/modules/$KERNELRELEASE/modules.dep -o \ + -e .tmp_depmod/lib/modules/$KERNELRELEASE/modules.dep.bin; then + depmod_hack_needed=false + fi +fi +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" fi -exec "$DEPMOD" "$@" "$KERNELRELEASE" +"$DEPMOD" "$@" "$KERNELRELEASE" +ret=$? + +if $depmod_hack_needed; then + rm -f "$symlink" +fi + +exit $ret