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
30296797Sdchagin	case `sysctl -n hw.machine_arch` in
31296797Sdchagin	amd64)
32296797Sdchagin		load_kld -e 'linux64elf' linux64
33296797Sdchagin		;;
34296797Sdchagin	esac
35154787Snetchild	if [ -x /compat/linux/sbin/ldconfigDisabled ]; then
36154236Sbrooks		_tmpdir=`mktemp -d -t linux-ldconfig`
37154236Sbrooks		/compat/linux/sbin/ldconfig -C ${_tmpdir}/ld.so.cache
38154236Sbrooks		if ! cmp -s ${_tmpdir}/ld.so.cache /compat/linux/etc/ld.so.cache; then
39154236Sbrooks			cat ${_tmpdir}/ld.so.cache > /compat/linux/etc/ld.so.cache
40154236Sbrooks		fi
41154236Sbrooks		rm -rf ${_tmpdir}
4298184Sgordon	fi
4398184Sgordon}
4498184Sgordon
45153537Sdougbsvr4_start()
46153537Sdougb{
47153537Sdougb	echo -n ' svr4'
48159830Syar	load_kld -m svr4elf svr4
49153537Sdougb}
5098184Sgordon
51165378Syarabi_start()
52153537Sdougb{
53179930Smtm	local _echostop
54153537Sdougb
55179930Smtm	_echostop=
56179930Smtm	if checkyesno sysvipc_enable || checkyesno linux_enable || checkyesno svr4_enable; then
57179930Smtm		echo -n 'Additional ABI support:'
58179930Smtm		_echostop=yes
59179930Smtm	fi
60179930Smtm
61153537Sdougb	checkyesno sysvipc_enable && sysv_start
62153537Sdougb	checkyesno linux_enable && linux_start
63153537Sdougb	checkyesno svr4_enable && svr4_start
64153537Sdougb
65179930Smtm	[ -n "${_echostop}" ] && echo '.'
66153537Sdougb}
67153537Sdougb
6898184Sgordonload_rc_config $name
6998184Sgordonrun_rc_command "$1"
70