b818dbf010
ldconfig. Build the cache in a temporary directory and only install it if it's actually different that the installed one. Also, use "cat tmp > real" to install the temporary file in the real location to allow the real location to be a symlink to a writable directory such as /var/run (where the file actually belongs). MFC After: 5 days
60 lines
1.0 KiB
Bash
60 lines
1.0 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: abi
|
|
# REQUIRE: LOGIN
|
|
# BEFORE: securelevel
|
|
# KEYWORD: nojail
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="abi"
|
|
start_precmd="${name}_prestart"
|
|
start_cmd=":"
|
|
|
|
sysv_start()
|
|
{
|
|
echo -n ' sysvipc'
|
|
kldload sysvmsg >/dev/null 2>&1
|
|
kldload sysvsem >/dev/null 2>&1
|
|
kldload sysvshm >/dev/null 2>&1
|
|
}
|
|
|
|
linux_start()
|
|
{
|
|
echo -n ' linux'
|
|
if ! kldstat -v | grep -E 'linux(aout|elf)' > /dev/null; then
|
|
kldload linux > /dev/null 2>&1
|
|
fi
|
|
if [ -x /compat/linux/sbin/ldconfig ]; then
|
|
_tmpdir=`mktemp -d -t linux-ldconfig`
|
|
/compat/linux/sbin/ldconfig -C ${_tmpdir}/ld.so.cache
|
|
if ! cmp -s ${_tmpdir}/ld.so.cache /compat/linux/etc/ld.so.cache; then
|
|
cat ${_tmpdir}/ld.so.cache > /compat/linux/etc/ld.so.cache
|
|
fi
|
|
rm -rf ${_tmpdir}
|
|
fi
|
|
}
|
|
|
|
svr4_start()
|
|
{
|
|
echo -n ' svr4'
|
|
kldload svr4 > /dev/null 2>&1
|
|
}
|
|
|
|
abi_prestart()
|
|
{
|
|
echo -n 'Additional ABI support:'
|
|
|
|
checkyesno sysvipc_enable && sysv_start
|
|
checkyesno linux_enable && linux_start
|
|
checkyesno svr4_enable && svr4_start
|
|
|
|
echo '.'
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|