1#!/bin/sh
2#
3# $FreeBSD$
4#
5
6# PROVIDE: abi
7# REQUIRE: archdep
8# KEYWORD: nojail
9
10. /etc/rc.subr
11
12name="abi"
13start_cmd="${name}_start"
14stop_cmd=":"
15
16sysv_start()
17{
18	echo -n ' sysvipc'
19	load_kld sysvmsg
20	load_kld sysvsem
21	load_kld sysvshm
22}
23
24linux_start()
25{
26	local _tmpdir
27
28	echo -n ' linux'
29	load_kld -e 'linux(aout|elf)' linux
30	case `sysctl -n hw.machine_arch` in
31	amd64)
32		load_kld -e 'linux64elf' linux64
33		;;
34	esac
35	if [ -x /compat/linux/sbin/ldconfigDisabled ]; then
36		_tmpdir=`mktemp -d -t linux-ldconfig`
37		/compat/linux/sbin/ldconfig -C ${_tmpdir}/ld.so.cache
38		if ! cmp -s ${_tmpdir}/ld.so.cache /compat/linux/etc/ld.so.cache; then
39			cat ${_tmpdir}/ld.so.cache > /compat/linux/etc/ld.so.cache
40		fi
41		rm -rf ${_tmpdir}
42	fi
43}
44
45svr4_start()
46{
47	echo -n ' svr4'
48	load_kld -m svr4elf svr4
49}
50
51abi_start()
52{
53	local _echostop
54
55	_echostop=
56	if checkyesno sysvipc_enable || checkyesno linux_enable || checkyesno svr4_enable; then
57		echo -n 'Additional ABI support:'
58		_echostop=yes
59	fi
60
61	checkyesno sysvipc_enable && sysv_start
62	checkyesno linux_enable && linux_start
63	checkyesno svr4_enable && svr4_start
64
65	[ -n "${_echostop}" ] && echo '.'
66}
67
68load_rc_config $name
69run_rc_command "$1"
70