]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/abi
Merge branch 'releng/11.3' into releng-CDN/11.3
[FreeBSD/FreeBSD.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 desc="Enable foreign ABIs"
14 start_cmd="${name}_start"
15 stop_cmd=":"
16
17 sysv_start()
18 {
19         echo -n ' sysvipc'
20         load_kld sysvmsg
21         load_kld sysvsem
22         load_kld sysvshm
23 }
24
25 linux_start()
26 {
27         local _tmpdir
28
29         echo -n ' linux'
30         load_kld -e 'linux(aout|elf)' linux
31         case `sysctl -n hw.machine_arch` in
32         amd64)
33                 load_kld -e 'linux64elf' linux64
34                 ;;
35         esac
36         if [ -x /compat/linux/sbin/ldconfigDisabled ]; then
37                 _tmpdir=`mktemp -d -t linux-ldconfig`
38                 /compat/linux/sbin/ldconfig -C ${_tmpdir}/ld.so.cache
39                 if ! cmp -s ${_tmpdir}/ld.so.cache /compat/linux/etc/ld.so.cache; then
40                         cat ${_tmpdir}/ld.so.cache > /compat/linux/etc/ld.so.cache
41                 fi
42                 rm -rf ${_tmpdir}
43         fi
44 }
45
46 svr4_start()
47 {
48         echo -n ' svr4'
49         load_kld -m svr4elf svr4
50 }
51
52 abi_start()
53 {
54         local _echostop
55
56         _echostop=
57         if checkyesno sysvipc_enable || checkyesno linux_enable || checkyesno svr4_enable; then
58                 echo -n 'Additional ABI support:'
59                 _echostop=yes
60         fi
61
62         checkyesno sysvipc_enable && sysv_start
63         checkyesno linux_enable && linux_start
64         checkyesno svr4_enable && svr4_start
65
66         [ -n "${_echostop}" ] && echo '.'
67 }
68
69 load_rc_config $name
70 run_rc_command "$1"