freebsd-dev/sbin/init/rc.d/abi
Brad Davis 1135e97b7c Move rc startup scripts from etc/ to sbin/init/
This keeps most startup scripts as CONFS per discussion on src-committers from
back during BSDCan.

Approved by:	will (mentor)
Differential Revision:	https://reviews.freebsd.org/D16466
2018-07-28 20:36:23 +00:00

64 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: abi
# REQUIRE: archdep
# KEYWORD: nojail
. /etc/rc.subr
name="abi"
desc="Enable foreign ABIs"
start_cmd="${name}_start"
stop_cmd=":"
sysv_start()
{
echo -n ' sysvipc'
load_kld sysvmsg
load_kld sysvsem
load_kld sysvshm
}
linux_start()
{
local _tmpdir
echo -n ' linux'
load_kld -e 'linux(aout|elf)' linux
case `sysctl -n hw.machine_arch` in
amd64)
load_kld -e 'linux64elf' linux64
;;
esac
if [ -x /compat/linux/sbin/ldconfigDisabled ]; 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
}
abi_start()
{
local _echostop
_echostop=
if checkyesno sysvipc_enable || checkyesno linux_enable; then
echo -n 'Additional ABI support:'
_echostop=yes
fi
checkyesno sysvipc_enable && sysv_start
checkyesno linux_enable && linux_start
[ -n "${_echostop}" ] && echo '.'
}
load_rc_config $name
run_rc_command "$1"