Blame view

scripts/depmod.sh 1.86 KB
fc4da9a3e   Michal Marek   kbuild: Move depm...
1
  #!/bin/sh
b24413180   Greg Kroah-Hartman   License cleanup: ...
2
  # SPDX-License-Identifier: GPL-2.0
fc4da9a3e   Michal Marek   kbuild: Move depm...
3
4
  #
  # A depmod wrapper used by the toplevel Makefile
8937e8971   James Hogan   depmod: pass -P $...
5
6
  if test $# -ne 3; then
  	echo "Usage: $0 /sbin/depmod <kernelrelease> <symbolprefix>" >&2
fc4da9a3e   Michal Marek   kbuild: Move depm...
7
8
9
10
  	exit 1
  fi
  DEPMOD=$1
  KERNELRELEASE=$2
8937e8971   James Hogan   depmod: pass -P $...
11
  SYMBOL_PREFIX=$3
fc4da9a3e   Michal Marek   kbuild: Move depm...
12

50123ab8c   Randy Dunlap   kbuild: verify th...
13
  if ! test -r System.map ; then
fc4da9a3e   Michal Marek   kbuild: Move depm...
14
15
  	exit 0
  fi
8937e8971   James Hogan   depmod: pass -P $...
16

50123ab8c   Randy Dunlap   kbuild: verify th...
17
  if [ -z $(command -v $DEPMOD) ]; then
9370868fd   Randy Dunlap   kbuild: make miss...
18
  	echo "Warning: 'make modules_install' requires $DEPMOD. Please install it." >&2
50123ab8c   Randy Dunlap   kbuild: verify th...
19
  	echo "This is probably in the kmod package." >&2
9370868fd   Randy Dunlap   kbuild: make miss...
20
  	exit 0
50123ab8c   Randy Dunlap   kbuild: verify th...
21
  fi
8937e8971   James Hogan   depmod: pass -P $...
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  # older versions of depmod don't support -P <symbol-prefix>
  # support was added in module-init-tools 3.13
  if test -n "$SYMBOL_PREFIX"; then
  	release=$("$DEPMOD" --version)
  	package=$(echo "$release" | cut -d' ' -f 1)
  	if test "$package" = "module-init-tools"; then
  		version=$(echo "$release" | cut -d' ' -f 2)
  		later=$(printf '%s
  ' "$version" "3.13" | sort -V | tail -n 1)
  		if test "$later" != "$version"; then
  			# module-init-tools < 3.13, drop the symbol prefix
  			SYMBOL_PREFIX=""
  		fi
  	fi
  	if test -n "$SYMBOL_PREFIX"; then
  		SYMBOL_PREFIX="-P $SYMBOL_PREFIX"
  	fi
  fi
bfe5424a8   Michal Marek   kbuild: Hack for ...
40
41
42
  # older versions of depmod require the version string to start with three
  # numbers, so we cheat with a symlink here
  depmod_hack_needed=true
8fc62e594   Michal Marek   kbuild: Do not wr...
43
44
45
46
47
  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
bfe5424a8   Michal Marek   kbuild: Hack for ...
48
49
50
  		depmod_hack_needed=false
  	fi
  fi
8fc62e594   Michal Marek   kbuild: Do not wr...
51
  rm -rf "$tmp_dir"
bfe5424a8   Michal Marek   kbuild: Hack for ...
52
53
54
55
56
  if $depmod_hack_needed; then
  	symlink="$INSTALL_MOD_PATH/lib/modules/99.98.$KERNELRELEASE"
  	ln -s "$KERNELRELEASE" "$symlink"
  	KERNELRELEASE=99.98.$KERNELRELEASE
  fi
fc4da9a3e   Michal Marek   kbuild: Move depm...
57
58
59
60
  set -- -ae -F System.map
  if test -n "$INSTALL_MOD_PATH"; then
  	set -- "$@" -b "$INSTALL_MOD_PATH"
  fi
8937e8971   James Hogan   depmod: pass -P $...
61
  "$DEPMOD" "$@" "$KERNELRELEASE" $SYMBOL_PREFIX
bfe5424a8   Michal Marek   kbuild: Hack for ...
62
63
64
65
66
67
68
  ret=$?
  
  if $depmod_hack_needed; then
  	rm -f "$symlink"
  fi
  
  exit $ret