1fc4da9a3SMichal Marek#!/bin/sh 2fc4da9a3SMichal Marek# 3fc4da9a3SMichal Marek# A depmod wrapper used by the toplevel Makefile 4fc4da9a3SMichal Marek 58937e897SJames Hoganif test $# -ne 3; then 68937e897SJames Hogan echo "Usage: $0 /sbin/depmod <kernelrelease> <symbolprefix>" >&2 7fc4da9a3SMichal Marek exit 1 8fc4da9a3SMichal Marekfi 9fc4da9a3SMichal MarekDEPMOD=$1 10fc4da9a3SMichal MarekKERNELRELEASE=$2 118937e897SJames HoganSYMBOL_PREFIX=$3 12fc4da9a3SMichal Marek 13fc4da9a3SMichal Marekif ! test -r System.map -a -x "$DEPMOD"; then 14fc4da9a3SMichal Marek exit 0 15fc4da9a3SMichal Marekfi 168937e897SJames Hogan 178937e897SJames Hogan# older versions of depmod don't support -P <symbol-prefix> 188937e897SJames Hogan# support was added in module-init-tools 3.13 198937e897SJames Hoganif test -n "$SYMBOL_PREFIX"; then 208937e897SJames Hogan release=$("$DEPMOD" --version) 218937e897SJames Hogan package=$(echo "$release" | cut -d' ' -f 1) 228937e897SJames Hogan if test "$package" = "module-init-tools"; then 238937e897SJames Hogan version=$(echo "$release" | cut -d' ' -f 2) 248937e897SJames Hogan later=$(printf '%s\n' "$version" "3.13" | sort -V | tail -n 1) 258937e897SJames Hogan if test "$later" != "$version"; then 268937e897SJames Hogan # module-init-tools < 3.13, drop the symbol prefix 278937e897SJames Hogan SYMBOL_PREFIX="" 288937e897SJames Hogan fi 298937e897SJames Hogan fi 308937e897SJames Hogan if test -n "$SYMBOL_PREFIX"; then 318937e897SJames Hogan SYMBOL_PREFIX="-P $SYMBOL_PREFIX" 328937e897SJames Hogan fi 338937e897SJames Hoganfi 348937e897SJames Hogan 35bfe5424aSMichal Marek# older versions of depmod require the version string to start with three 36bfe5424aSMichal Marek# numbers, so we cheat with a symlink here 37bfe5424aSMichal Marekdepmod_hack_needed=true 388fc62e59SMichal Marektmp_dir=$(mktemp -d ${TMPDIR:-/tmp}/depmod.XXXXXX) 398fc62e59SMichal Marekmkdir -p "$tmp_dir/lib/modules/$KERNELRELEASE" 408fc62e59SMichal Marekif "$DEPMOD" -b "$tmp_dir" $KERNELRELEASE 2>/dev/null; then 418fc62e59SMichal Marek if test -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep" -o \ 428fc62e59SMichal Marek -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep.bin"; then 43bfe5424aSMichal Marek depmod_hack_needed=false 44bfe5424aSMichal Marek fi 45bfe5424aSMichal Marekfi 468fc62e59SMichal Marekrm -rf "$tmp_dir" 47bfe5424aSMichal Marekif $depmod_hack_needed; then 48bfe5424aSMichal Marek symlink="$INSTALL_MOD_PATH/lib/modules/99.98.$KERNELRELEASE" 49bfe5424aSMichal Marek ln -s "$KERNELRELEASE" "$symlink" 50bfe5424aSMichal Marek KERNELRELEASE=99.98.$KERNELRELEASE 51bfe5424aSMichal Marekfi 52bfe5424aSMichal Marek 53fc4da9a3SMichal Marekset -- -ae -F System.map 54fc4da9a3SMichal Marekif test -n "$INSTALL_MOD_PATH"; then 55fc4da9a3SMichal Marek set -- "$@" -b "$INSTALL_MOD_PATH" 56fc4da9a3SMichal Marekfi 578937e897SJames Hogan"$DEPMOD" "$@" "$KERNELRELEASE" $SYMBOL_PREFIX 58bfe5424aSMichal Marekret=$? 59bfe5424aSMichal Marek 60bfe5424aSMichal Marekif $depmod_hack_needed; then 61bfe5424aSMichal Marek rm -f "$symlink" 62bfe5424aSMichal Marekfi 63bfe5424aSMichal Marek 64bfe5424aSMichal Marekexit $ret 65