xref: /openbmc/linux/scripts/depmod.sh (revision cedd1862)
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