aboutsummaryrefslogtreecommitdiff
path: root/libexec/rc/rc.d/kldxref
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/rc/rc.d/kldxref')
-rwxr-xr-xlibexec/rc/rc.d/kldxref40
1 files changed, 40 insertions, 0 deletions
diff --git a/libexec/rc/rc.d/kldxref b/libexec/rc/rc.d/kldxref
new file mode 100755
index 000000000000..d6aa02d778d9
--- /dev/null
+++ b/libexec/rc/rc.d/kldxref
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+#
+
+# PROVIDE: kldxref
+# REQUIRE: mountcritlocal
+# BEFORE: netif
+# KEYWORD: nojail
+
+. /etc/rc.subr
+
+rcvar="kldxref_enable"
+name="kldxref"
+desc="Generate hints for the kernel loader"
+stop_cmd=":"
+start_cmd="kldxref_start"
+
+kldxref_start() {
+ if [ -n "$kldxref_module_path" ]; then
+ MODULE_PATHS="$kldxref_module_path"
+ else
+ MODULE_PATHS=`sysctl -n kern.module_path`
+ fi
+ IFS=';'
+ for MODULE_DIR in $MODULE_PATHS; do
+ if checkyesno kldxref_clobber ||
+ [ ! -f "$MODULE_DIR/linker.hints" ] &&
+ [ `echo ${MODULE_DIR}/*.ko` != "${MODULE_DIR}/*.ko" ]; then
+ echo "Building $MODULE_DIR/linker.hints"
+ kldxref "$MODULE_DIR"
+ fi
+ done
+}
+
+load_rc_config $name
+
+# doesn't make sense to run in a svcj
+kldxref_svcj="NO"
+
+run_rc_command "$1"