diff options
author | cjc <cjc@FreeBSD.org> | 2003-03-17 23:15:53 +0000 |
---|---|---|
committer | cjc <cjc@FreeBSD.org> | 2003-03-17 23:15:53 +0000 |
commit | c5ea907b7e85445d08b73db5b00fb0e09de4c9f4 (patch) | |
tree | e211663bdcc09e0c0e9782ba63c61c281ce7d300 | |
parent | 2575bf9123f9d3c2353d1f5faf6626561514d034 (diff) | |
download | FreeBSD-src-c5ea907b7e85445d08b73db5b00fb0e09de4c9f4.zip FreeBSD-src-c5ea907b7e85445d08b73db5b00fb0e09de4c9f4.tar.gz |
A new rc-ng script to build linker.hints files with kldxref(8)
automatically at boot time. Associated rc.conf(5) knobs and
documentation are included.
-rw-r--r-- | etc/defaults/rc.conf | 3 | ||||
-rw-r--r-- | etc/rc.d/kldxref | 35 | ||||
-rw-r--r-- | share/man/man5/rc.conf.5 | 44 |
3 files changed, 82 insertions, 0 deletions
diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf index ea33c2d..651b0de 100644 --- a/etc/defaults/rc.conf +++ b/etc/defaults/rc.conf @@ -28,6 +28,9 @@ apm_enable="NO" # Set to YES to enable APM BIOS functions (or NO). apmd_enable="NO" # Run apmd to handle APM event from userland. apmd_flags="" # Flags to apmd (if enabled). devd_enable="NO" # Run devd, to trigger programs on device tree changes. +kldxref_enable="NO" # Build linker.hints files with kldxref(8). +kldxref_clobber="NO" # Overwrite old linker.hints at boot. +kldxref_module_path="" # Override kern.module_path. A ';'-delimited list. pccard_enable="NO" # Set to YES if you want to configure PCCARD devices. pccard_mem="DEFAULT" # If pccard_enable=YES, this is card memory address. pccard_beep="2" # pccard beep type. diff --git a/etc/rc.d/kldxref b/etc/rc.d/kldxref new file mode 100644 index 0000000..8b93e37 --- /dev/null +++ b/etc/rc.d/kldxref @@ -0,0 +1,35 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: kldxref +# REQUIRE: root mountcritlocal +# BEFORE: network1 +# KEYWORD: FreeBSD + +. /etc/rc.subr + +rcvar="kldxref_enable" +name="kldxref" +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 [ ! -f "$MODULE_DIR/linker.hints" ] || + checkyesno kldxref_clobber; then + echo "Building $MODULE_DIR/linker.hints" + kldxref "$MODULE_DIR" + fi + done +} + +load_rc_config $name +run_rc_command "$1" diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5 index 3543cda..45808c3 100644 --- a/share/man/man5/rc.conf.5 +++ b/share/man/man5/rc.conf.5 @@ -124,6 +124,48 @@ daemon. Run .Xr devd 8 to handle device added, removed or unknown events from the kernel. +.It Va kldxref_enable +.Pq Vt bool +Set to +.Dq Li NO +by default. +Set to +.Dq Li YES +to automatically rebuild +.Pa linker.hints +files with +.Xr kldxref 8 +at boot time. +.It Va kldxref_clobber +.Pq Vt bool +Set to +.Dq Li NO +by default. +If +.Va kldxref_enable +is true, +setting to +.Dq Li YES +will overwrite existing +.Pa linker.hints +files at boot time. +Otherwise, +only missing +.Pa linker.hints +files are generated. +.It Va kldxref_module_path +.Pq Vt str +Empty by default. +A semi-colon +.Pq Dq \; +delimited list of paths containing +.Xr kld 4 +modules. +If empty, +the contents of the +.Em kern.module_path +.Xr sysctl 8 +are used. .It Va pccard_enable .Pq Vt bool If set to @@ -2247,6 +2289,7 @@ values.) .Xr kbdcontrol 1 , .Xr makewhatis 1 , .Xr vidcontrol 1 , +.Xr kld 4 , .Xr tcp 4 , .Xr udp 4 , .Xr exports 5 , @@ -2262,6 +2305,7 @@ values.) .Xr inetd 8 , .Xr isdnd 8 , .Xr isdntrace 8 , +.Xr kldxref 8 , .Xr lpd 8 , .Xr mdconfig 8 , .Xr moused 8 , |