abi revision 154236
198184Sgordon#!/bin/sh
298184Sgordon#
398184Sgordon# $FreeBSD: head/etc/rc.d/abi 154236 2006-01-11 21:30:41Z brooks $
498184Sgordon#
598184Sgordon
698184Sgordon# PROVIDE: abi
798184Sgordon# REQUIRE: LOGIN
8114735Smtm# BEFORE:  securelevel
9136224Smtm# KEYWORD: nojail
1098184Sgordon
1198184Sgordon. /etc/rc.subr
1298184Sgordon
13153537Sdougbname="abi"
14153537Sdougbstart_precmd="${name}_prestart"
15153537Sdougbstart_cmd=":"
1698184Sgordon
1798184Sgordonsysv_start()
1898184Sgordon{
1998184Sgordon	echo -n ' sysvipc'
2098184Sgordon	kldload sysvmsg >/dev/null 2>&1
2198184Sgordon	kldload sysvsem >/dev/null 2>&1
2298184Sgordon	kldload sysvshm >/dev/null 2>&1
2398184Sgordon}
2498184Sgordon
2598184Sgordonlinux_start()
2698184Sgordon{
2798184Sgordon	echo -n ' linux'
2898184Sgordon	if ! kldstat -v | grep -E 'linux(aout|elf)' > /dev/null; then
2998184Sgordon		kldload linux > /dev/null 2>&1
3098184Sgordon	fi
3198184Sgordon	if [ -x /compat/linux/sbin/ldconfig ]; then
32154236Sbrooks		_tmpdir=`mktemp -d -t linux-ldconfig`
33154236Sbrooks		/compat/linux/sbin/ldconfig -C ${_tmpdir}/ld.so.cache
34154236Sbrooks		if ! cmp -s ${_tmpdir}/ld.so.cache /compat/linux/etc/ld.so.cache; then
35154236Sbrooks			cat ${_tmpdir}/ld.so.cache > /compat/linux/etc/ld.so.cache
36154236Sbrooks		fi
37154236Sbrooks		rm -rf ${_tmpdir}
3898184Sgordon	fi
3998184Sgordon}
4098184Sgordon
41153537Sdougbsvr4_start()
42153537Sdougb{
43153537Sdougb	echo -n ' svr4'
44153537Sdougb	kldload svr4 > /dev/null 2>&1
45153537Sdougb}
4698184Sgordon
47153537Sdougbabi_prestart()
48153537Sdougb{
49153537Sdougb	echo -n 'Additional ABI support:'
50153537Sdougb
51153537Sdougb	checkyesno sysvipc_enable && sysv_start
52153537Sdougb	checkyesno linux_enable && linux_start
53153537Sdougb	checkyesno svr4_enable && svr4_start
54153537Sdougb
55153537Sdougb	echo '.'
56153537Sdougb}
57153537Sdougb
5898184Sgordonload_rc_config $name
5998184Sgordonrun_rc_command "$1"
60