1fc4da9a3SMichal Marek#!/bin/sh 2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 3fc4da9a3SMichal Marek# 4fc4da9a3SMichal Marek# A depmod wrapper used by the toplevel Makefile 5fc4da9a3SMichal Marek 65a144a1aSMasahiro Yamadaif test $# -ne 2; then 75a144a1aSMasahiro Yamada echo "Usage: $0 /sbin/depmod <kernelrelease>" >&2 8fc4da9a3SMichal Marek exit 1 9fc4da9a3SMichal Marekfi 10fc4da9a3SMichal MarekDEPMOD=$1 11fc4da9a3SMichal MarekKERNELRELEASE=$2 12fc4da9a3SMichal Marek 13934193a6SRandy Dunlapif ! test -r System.map ; then 14f0b0d88aSRandy Dunlap echo "Warning: modules_install: missing 'System.map' file. Skipping depmod." >&2 15fc4da9a3SMichal Marek exit 0 16fc4da9a3SMichal Marekfi 178937e897SJames Hogan 18*cedd1862SLinus Torvalds# legacy behavior: "depmod" in /sbin, no /sbin in PATH 19*cedd1862SLinus TorvaldsPATH="$PATH:/sbin" 20934193a6SRandy Dunlapif [ -z $(command -v $DEPMOD) ]; then 21914b087fSRandy Dunlap echo "Warning: 'make modules_install' requires $DEPMOD. Please install it." >&2 22934193a6SRandy Dunlap echo "This is probably in the kmod package." >&2 23914b087fSRandy Dunlap exit 0 24934193a6SRandy Dunlapfi 25934193a6SRandy Dunlap 26bfe5424aSMichal Marek# older versions of depmod require the version string to start with three 27bfe5424aSMichal Marek# numbers, so we cheat with a symlink here 28bfe5424aSMichal Marekdepmod_hack_needed=true 298fc62e59SMichal Marektmp_dir=$(mktemp -d ${TMPDIR:-/tmp}/depmod.XXXXXX) 308fc62e59SMichal Marekmkdir -p "$tmp_dir/lib/modules/$KERNELRELEASE" 318fc62e59SMichal Marekif "$DEPMOD" -b "$tmp_dir" $KERNELRELEASE 2>/dev/null; then 328fc62e59SMichal Marek if test -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep" -o \ 338fc62e59SMichal Marek -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep.bin"; then 34bfe5424aSMichal Marek depmod_hack_needed=false 35bfe5424aSMichal Marek fi 36bfe5424aSMichal Marekfi 378fc62e59SMichal Marekrm -rf "$tmp_dir" 38bfe5424aSMichal Marekif $depmod_hack_needed; then 39bfe5424aSMichal Marek symlink="$INSTALL_MOD_PATH/lib/modules/99.98.$KERNELRELEASE" 40bfe5424aSMichal Marek ln -s "$KERNELRELEASE" "$symlink" 41bfe5424aSMichal Marek KERNELRELEASE=99.98.$KERNELRELEASE 42bfe5424aSMichal Marekfi 43bfe5424aSMichal Marek 44fc4da9a3SMichal Marekset -- -ae -F System.map 45fc4da9a3SMichal Marekif test -n "$INSTALL_MOD_PATH"; then 46fc4da9a3SMichal Marek set -- "$@" -b "$INSTALL_MOD_PATH" 47fc4da9a3SMichal Marekfi 485a144a1aSMasahiro Yamada"$DEPMOD" "$@" "$KERNELRELEASE" 49bfe5424aSMichal Marekret=$? 50bfe5424aSMichal Marek 51bfe5424aSMichal Marekif $depmod_hack_needed; then 52bfe5424aSMichal Marek rm -f "$symlink" 53bfe5424aSMichal Marekfi 54bfe5424aSMichal Marek 55bfe5424aSMichal Marekexit $ret 56