]> CyberLeo.Net >> Repos - FreeBSD/releng/10.3.git/blob - etc/rc.d/abi
MFS r296797:
[FreeBSD/releng/10.3.git] / etc / rc.d / abi
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: abi
7 # REQUIRE: archdep
8 # KEYWORD: nojail
9
10 . /etc/rc.subr
11
12 name="abi"
13 start_cmd="${name}_start"
14 stop_cmd=":"
15
16 sysv_start()
17 {
18         echo -n ' sysvipc'
19         load_kld sysvmsg
20         load_kld sysvsem
21         load_kld sysvshm
22 }
23
24 linux_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
45 svr4_start()
46 {
47         echo -n ' svr4'
48         load_kld -m svr4elf svr4
49 }
50
51 abi_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
68 load_rc_config $name
69 run_rc_command "$1"