xref: /freebsd/libexec/rc/rc.d/kldxref (revision f99f0ee14e3af81c23150a6a340259ca8a33d01a)
10696600cSBjoern A. Zeeb#!/bin/sh
20696600cSBjoern A. Zeeb#
30696600cSBjoern A. Zeeb#
40696600cSBjoern A. Zeeb
50696600cSBjoern A. Zeeb# PROVIDE: kldxref
693457c4eSEdward Tomasz Napierala# REQUIRE: mountcritlocal
70696600cSBjoern A. Zeeb# BEFORE:  netif
80696600cSBjoern A. Zeeb# KEYWORD: nojail
90696600cSBjoern A. Zeeb
100696600cSBjoern A. Zeeb. /etc/rc.subr
110696600cSBjoern A. Zeeb
120696600cSBjoern A. Zeebrcvar="kldxref_enable"
130696600cSBjoern A. Zeebname="kldxref"
140696600cSBjoern A. Zeebdesc="Generate hints for the kernel loader"
150696600cSBjoern A. Zeebstop_cmd=":"
160696600cSBjoern A. Zeebstart_cmd="kldxref_start"
170696600cSBjoern A. Zeeb
180696600cSBjoern A. Zeebkldxref_start() {
190696600cSBjoern A. Zeeb	if [ -n "$kldxref_module_path" ]; then
200696600cSBjoern A. Zeeb		MODULE_PATHS="$kldxref_module_path"
210696600cSBjoern A. Zeeb	else
220696600cSBjoern A. Zeeb		MODULE_PATHS=`sysctl -n kern.module_path`
230696600cSBjoern A. Zeeb	fi
240696600cSBjoern A. Zeeb	IFS=';'
250696600cSBjoern A. Zeeb	for MODULE_DIR in $MODULE_PATHS; do
260696600cSBjoern A. Zeeb		if checkyesno kldxref_clobber ||
270696600cSBjoern A. Zeeb		    [ ! -f "$MODULE_DIR/linker.hints" ] &&
280696600cSBjoern A. Zeeb		    [ `echo ${MODULE_DIR}/*.ko` != "${MODULE_DIR}/*.ko" ]; then
290696600cSBjoern A. Zeeb			echo "Building $MODULE_DIR/linker.hints"
300696600cSBjoern A. Zeeb			kldxref "$MODULE_DIR"
310696600cSBjoern A. Zeeb		fi
320696600cSBjoern A. Zeeb	done
330696600cSBjoern A. Zeeb}
340696600cSBjoern A. Zeeb
350696600cSBjoern A. Zeebload_rc_config $name
36*f99f0ee1SAlexander Leidinger
37*f99f0ee1SAlexander Leidinger# doesn't make sense to run in a svcj
38*f99f0ee1SAlexander Leidingerkldxref_svcj="NO"
39*f99f0ee1SAlexander Leidinger
400696600cSBjoern A. Zeebrun_rc_command "$1"
41