198184Sgordon#!/bin/sh
298184Sgordon#
398184Sgordon# $FreeBSD$
498184Sgordon#
598184Sgordon
698184Sgordon# PROVIDE: abi
7155838Sdougb# REQUIRE: archdep
8136224Smtm# KEYWORD: nojail
998184Sgordon
1098184Sgordon. /etc/rc.subr
1198184Sgordon
12153537Sdougbname="abi"
13165378Syarstart_cmd="${name}_start"
14165378Syarstop_cmd=":"
1598184Sgordon
1698184Sgordonsysv_start()
1798184Sgordon{
1898184Sgordon	echo -n ' sysvipc'
19159830Syar	load_kld sysvmsg
20159830Syar	load_kld sysvsem
21159830Syar	load_kld sysvshm
2298184Sgordon}
2398184Sgordon
2498184Sgordonlinux_start()
2598184Sgordon{
26165664Syar	local _tmpdir
27165664Syar
2898184Sgordon	echo -n ' linux'
29159830Syar	load_kld -e 'linux(aout|elf)' linux
30154787Snetchild	if [ -x /compat/linux/sbin/ldconfigDisabled ]; then
31154236Sbrooks		_tmpdir=`mktemp -d -t linux-ldconfig`
32154236Sbrooks		/compat/linux/sbin/ldconfig -C ${_tmpdir}/ld.so.cache
33154236Sbrooks		if ! cmp -s ${_tmpdir}/ld.so.cache /compat/linux/etc/ld.so.cache; then
34154236Sbrooks			cat ${_tmpdir}/ld.so.cache > /compat/linux/etc/ld.so.cache
35154236Sbrooks		fi
36154236Sbrooks		rm -rf ${_tmpdir}
3798184Sgordon	fi
3898184Sgordon}
3998184Sgordon
40153537Sdougbsvr4_start()
41153537Sdougb{
42153537Sdougb	echo -n ' svr4'
43159830Syar	load_kld -m svr4elf svr4
44153537Sdougb}
4598184Sgordon
46165378Syarabi_start()
47153537Sdougb{
48179930Smtm	local _echostop
49153537Sdougb
50179930Smtm	_echostop=
51179930Smtm	if checkyesno sysvipc_enable || checkyesno linux_enable || checkyesno svr4_enable; then
52179930Smtm		echo -n 'Additional ABI support:'
53179930Smtm		_echostop=yes
54179930Smtm	fi
55179930Smtm
56153537Sdougb	checkyesno sysvipc_enable && sysv_start
57153537Sdougb	checkyesno linux_enable && linux_start
58153537Sdougb	checkyesno svr4_enable && svr4_start
59153537Sdougb
60179930Smtm	[ -n "${_echostop}" ] && echo '.'
61153537Sdougb}
62153537Sdougb
6398184Sgordonload_rc_config $name
6498184Sgordonrun_rc_command "$1"
65