mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-16 10:20:30 +00:00
8801556beb
systems are fully "ready to go". 'FILESYSTEMS' states: "This is a dummy dependency, for services which require file systems to be mounted before starting." However, we have 'var' which is was run after 'FILESYSTEMS' and can mount /var if it already isn't mounted. Furthermore, several scripts cannot use /var until 'cleanvar' has done its thing. Thus "FILESYSTEMS" hasn't really meant all critical file systems are fully usable.
84 lines
1.8 KiB
Bash
Executable File
84 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: ldconfig
|
|
# REQUIRE: mountcritremote FILESYSTEMS
|
|
# BEFORE: DAEMON
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="ldconfig"
|
|
ldconfig_command="/sbin/ldconfig"
|
|
start_cmd="ldconfig_start"
|
|
stop_cmd=":"
|
|
|
|
ldconfig_start()
|
|
{
|
|
local _files _ins
|
|
|
|
_ins=
|
|
ldconfig=${ldconfig_command}
|
|
checkyesno ldconfig_insecure && _ins="-i"
|
|
if [ -x "${ldconfig_command}" ]; then
|
|
_LDC="/lib /usr/lib"
|
|
for i in ${ldconfig_local_dirs}; do
|
|
if [ -d "${i}" ]; then
|
|
_files=`find ${i} -type f`
|
|
if [ -n "${_files}" ]; then
|
|
ldconfig_paths="${ldconfig_paths} `cat ${_files} | sort -u`"
|
|
fi
|
|
fi
|
|
done
|
|
for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do
|
|
if [ -r "${i}" ]; then
|
|
_LDC="${_LDC} ${i}"
|
|
fi
|
|
done
|
|
check_startmsgs && echo 'ELF ldconfig path:' ${_LDC}
|
|
${ldconfig} -elf ${_ins} ${_LDC}
|
|
|
|
case `sysctl -n hw.machine_arch` in
|
|
amd64)
|
|
for i in ${ldconfig_local32_dirs}; do
|
|
if [ -d "${i}" ]; then
|
|
_files=`find ${i} -type f`
|
|
if [ -n "${_files}" ]; then
|
|
ldconfig32_paths="${ldconfig32_paths} `cat ${_files} | sort -u`"
|
|
fi
|
|
fi
|
|
done
|
|
_LDC=""
|
|
for i in ${ldconfig32_paths}; do
|
|
if [ -r "${i}" ]; then
|
|
_LDC="${_LDC} ${i}"
|
|
fi
|
|
done
|
|
check_startmsgs &&
|
|
echo '32-bit compatibility ldconfig path:' ${_LDC}
|
|
${ldconfig} -32 -m ${_ins} ${_LDC}
|
|
;;
|
|
esac
|
|
|
|
# Legacy aout support for i386 only
|
|
case `sysctl -n hw.machine_arch` in
|
|
i386)
|
|
# Default the a.out ldconfig path.
|
|
: ${ldconfig_paths_aout=${ldconfig_paths}}
|
|
_LDC=""
|
|
for i in /usr/lib/aout ${ldconfig_paths_aout} /etc/ld.so.conf; do
|
|
if [ -r "${i}" ]; then
|
|
_LDC="${_LDC} ${i}"
|
|
fi
|
|
done
|
|
check_startmsgs && echo 'a.out ldconfig path:' ${_LDC}
|
|
${ldconfig} -aout ${_ins} ${_LDC}
|
|
;;
|
|
esac
|
|
fi
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|