diff --git a/libexec/rc/rc.d/kldxref b/libexec/rc/rc.d/kldxref --- a/libexec/rc/rc.d/kldxref +++ b/libexec/rc/rc.d/kldxref @@ -19,17 +19,18 @@ if [ -n "$kldxref_module_path" ]; then MODULE_PATHS="$kldxref_module_path" else - MODULE_PATHS=`sysctl -n kern.module_path` + MODULE_PATHS=$(sysctl -n kern.module_path) + fi + if checkyesno kldxref_clobber; then + IFS=';' + for MODULE_DIR in $MODULE_PATHS; do + if [ ! -f "${MODULE_DIR}/linker.hints" ] && + [ -n "$(find "${MODULE_DIR}" -name "*.ko" 2> /dev/null)" ]; then + echo "Building $MODULE_DIR/linker.hints" + kldxref "$MODULE_DIR" + fi + done 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