Unbreak Linux emulation by default. While not loading it automatically is somewhat sensible, breaking functionality of GENERIC is not and has been objected to on a regular base.diff -r1.7 -r1.8 src/sys/compat/linux/common/linux_mod.c
(joerg)
--- src/sys/compat/linux/common/linux_mod.c 2017/09/29 17:08:00 1.7
+++ src/sys/compat/linux/common/linux_mod.c 2017/12/01 22:14:52 1.8
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | /* $NetBSD: linux_mod.c,v 1.7 2017/09/29 17:08:00 maxv Exp $ */ | 1 | /* $NetBSD: linux_mod.c,v 1.8 2017/12/01 22:14:52 joerg Exp $ */ | |
2 | 2 | |||
3 | /*- | 3 | /*- | |
4 | * Copyright (c) 2008 The NetBSD Foundation, Inc. | 4 | * Copyright (c) 2008 The NetBSD Foundation, Inc. | |
5 | * All rights reserved. | 5 | * All rights reserved. | |
6 | * | 6 | * | |
7 | * This code is derived from software developed for The NetBSD Foundation | 7 | * This code is derived from software developed for The NetBSD Foundation | |
8 | * by Andrew Doran. | 8 | * by Andrew Doran. | |
9 | * | 9 | * | |
10 | * Redistribution and use in source and binary forms, with or without | 10 | * Redistribution and use in source and binary forms, with or without | |
11 | * modification, are permitted provided that the following conditions | 11 | * modification, are permitted provided that the following conditions | |
12 | * are met: | 12 | * are met: | |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright | |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. | |
@@ -20,27 +20,27 @@ | @@ -20,27 +20,27 @@ | |||
20 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | 20 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | |
21 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 21 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | 22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | |
23 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 23 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
24 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 24 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
25 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 25 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
26 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 26 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
27 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 27 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
28 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 28 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
29 | * POSSIBILITY OF SUCH DAMAGE. | 29 | * POSSIBILITY OF SUCH DAMAGE. | |
30 | */ | 30 | */ | |
31 | 31 | |||
32 | #include <sys/cdefs.h> | 32 | #include <sys/cdefs.h> | |
33 | __KERNEL_RCSID(0, "$NetBSD: linux_mod.c,v 1.7 2017/09/29 17:08:00 maxv Exp $"); | 33 | __KERNEL_RCSID(0, "$NetBSD: linux_mod.c,v 1.8 2017/12/01 22:14:52 joerg Exp $"); | |
34 | 34 | |||
35 | #ifdef _KERNEL_OPT | 35 | #ifdef _KERNEL_OPT | |
36 | #include "opt_execfmt.h" | 36 | #include "opt_execfmt.h" | |
37 | #endif | 37 | #endif | |
38 | 38 | |||
39 | #ifndef ELFSIZE | 39 | #ifndef ELFSIZE | |
40 | #define ELFSIZE ARCH_ELFSIZE | 40 | #define ELFSIZE ARCH_ELFSIZE | |
41 | #endif | 41 | #endif | |
42 | 42 | |||
43 | #include <sys/param.h> | 43 | #include <sys/param.h> | |
44 | #include <sys/module.h> | 44 | #include <sys/module.h> | |
45 | #include <sys/exec.h> | 45 | #include <sys/exec.h> | |
46 | #include <sys/signalvar.h> | 46 | #include <sys/signalvar.h> | |
@@ -109,27 +109,27 @@ static struct execsw linux_execsw[] = { | @@ -109,27 +109,27 @@ static struct execsw linux_execsw[] = { | |||
109 | .elf_probe_func = NULL, | 109 | .elf_probe_func = NULL, | |
110 | }, | 110 | }, | |
111 | .es_emul = &emul_linux, | 111 | .es_emul = &emul_linux, | |
112 | .es_prio = EXECSW_PRIO_LAST, | 112 | .es_prio = EXECSW_PRIO_LAST, | |
113 | .es_arglen = LINUX_AOUT_AUX_ARGSIZ, | 113 | .es_arglen = LINUX_AOUT_AUX_ARGSIZ, | |
114 | .es_copyargs = linux_aout_copyargs, | 114 | .es_copyargs = linux_aout_copyargs, | |
115 | .es_setregs = NULL, | 115 | .es_setregs = NULL, | |
116 | .es_coredump = coredump_netbsd, | 116 | .es_coredump = coredump_netbsd, | |
117 | .es_setup_stack = linux_exec_setup_stack, | 117 | .es_setup_stack = linux_exec_setup_stack, | |
118 | }, | 118 | }, | |
119 | #endif | 119 | #endif | |
120 | }; | 120 | }; | |
121 | 121 | |||
122 | int linux_enabled = 0; | 122 | int linux_enabled = 1; | |
123 | 123 | |||
124 | int | 124 | int | |
125 | linux_sysctl_enable(SYSCTLFN_ARGS) | 125 | linux_sysctl_enable(SYSCTLFN_ARGS) | |
126 | { | 126 | { | |
127 | struct sysctlnode node; | 127 | struct sysctlnode node; | |
128 | int error, val; | 128 | int error, val; | |
129 | 129 | |||
130 | val = *(int *)rnode->sysctl_data; | 130 | val = *(int *)rnode->sysctl_data; | |
131 | 131 | |||
132 | node = *rnode; | 132 | node = *rnode; | |
133 | node.sysctl_data = &val; | 133 | node.sysctl_data = &val; | |
134 | 134 | |||
135 | error = sysctl_lookup(SYSCTLFN_CALL(&node)); | 135 | error = sysctl_lookup(SYSCTLFN_CALL(&node)); |
--- src/sys/compat/linux32/common/linux32_mod.c 2017/09/29 17:47:29 1.8
+++ src/sys/compat/linux32/common/linux32_mod.c 2017/12/01 22:14:52 1.9
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | /* $NetBSD: linux32_mod.c,v 1.8 2017/09/29 17:47:29 maxv Exp $ */ | 1 | /* $NetBSD: linux32_mod.c,v 1.9 2017/12/01 22:14:52 joerg Exp $ */ | |
2 | 2 | |||
3 | /*- | 3 | /*- | |
4 | * Copyright (c) 2008 The NetBSD Foundation, Inc. | 4 | * Copyright (c) 2008 The NetBSD Foundation, Inc. | |
5 | * All rights reserved. | 5 | * All rights reserved. | |
6 | * | 6 | * | |
7 | * This code is derived from software developed for The NetBSD Foundation | 7 | * This code is derived from software developed for The NetBSD Foundation | |
8 | * by Andrew Doran. | 8 | * by Andrew Doran. | |
9 | * | 9 | * | |
10 | * Redistribution and use in source and binary forms, with or without | 10 | * Redistribution and use in source and binary forms, with or without | |
11 | * modification, are permitted provided that the following conditions | 11 | * modification, are permitted provided that the following conditions | |
12 | * are met: | 12 | * are met: | |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright | |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. | |
@@ -20,27 +20,27 @@ | @@ -20,27 +20,27 @@ | |||
20 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | 20 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | |
21 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 21 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | 22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | |
23 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 23 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
24 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 24 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
25 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 25 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
26 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 26 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
27 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 27 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
28 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 28 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
29 | * POSSIBILITY OF SUCH DAMAGE. | 29 | * POSSIBILITY OF SUCH DAMAGE. | |
30 | */ | 30 | */ | |
31 | 31 | |||
32 | #include <sys/cdefs.h> | 32 | #include <sys/cdefs.h> | |
33 | __KERNEL_RCSID(0, "$NetBSD: linux32_mod.c,v 1.8 2017/09/29 17:47:29 maxv Exp $"); | 33 | __KERNEL_RCSID(0, "$NetBSD: linux32_mod.c,v 1.9 2017/12/01 22:14:52 joerg Exp $"); | |
34 | 34 | |||
35 | #ifdef _KERNEL_OPT | 35 | #ifdef _KERNEL_OPT | |
36 | #include "opt_execfmt.h" | 36 | #include "opt_execfmt.h" | |
37 | #endif | 37 | #endif | |
38 | 38 | |||
39 | #ifndef ELFSIZE | 39 | #ifndef ELFSIZE | |
40 | #define ELFSIZE ARCH_ELFSIZE | 40 | #define ELFSIZE ARCH_ELFSIZE | |
41 | #endif | 41 | #endif | |
42 | 42 | |||
43 | #include <sys/param.h> | 43 | #include <sys/param.h> | |
44 | #include <sys/module.h> | 44 | #include <sys/module.h> | |
45 | #include <sys/exec.h> | 45 | #include <sys/exec.h> | |
46 | #include <sys/signalvar.h> | 46 | #include <sys/signalvar.h> | |
@@ -68,27 +68,27 @@ static struct execsw linux32_execsw[] = | @@ -68,27 +68,27 @@ static struct execsw linux32_execsw[] = | |||
68 | .elf_probe_func = linux32_elf32_probe, | 68 | .elf_probe_func = linux32_elf32_probe, | |
69 | }, | 69 | }, | |
70 | .es_emul = &emul_linux32, | 70 | .es_emul = &emul_linux32, | |
71 | .es_prio = EXECSW_PRIO_ANY, | 71 | .es_prio = EXECSW_PRIO_ANY, | |
72 | .es_arglen = LINUX32_ELF_AUX_ARGSIZ, | 72 | .es_arglen = LINUX32_ELF_AUX_ARGSIZ, | |
73 | .es_copyargs = linux32_elf32_copyargs, | 73 | .es_copyargs = linux32_elf32_copyargs, | |
74 | .es_setregs = NULL, | 74 | .es_setregs = NULL, | |
75 | .es_coredump = coredump_elf32, | 75 | .es_coredump = coredump_elf32, | |
76 | .es_setup_stack = linux_exec_setup_stack, | 76 | .es_setup_stack = linux_exec_setup_stack, | |
77 | }, | 77 | }, | |
78 | #endif | 78 | #endif | |
79 | }; | 79 | }; | |
80 | 80 | |||
81 | int linux32_enabled = 0; | 81 | int linux32_enabled = 1; | |
82 | 82 | |||
83 | int | 83 | int | |
84 | linux32_sysctl_enable(SYSCTLFN_ARGS) | 84 | linux32_sysctl_enable(SYSCTLFN_ARGS) | |
85 | { | 85 | { | |
86 | struct sysctlnode node; | 86 | struct sysctlnode node; | |
87 | int error, val; | 87 | int error, val; | |
88 | 88 | |||
89 | val = *(int *)rnode->sysctl_data; | 89 | val = *(int *)rnode->sysctl_data; | |
90 | 90 | |||
91 | node = *rnode; | 91 | node = *rnode; | |
92 | node.sysctl_data = &val; | 92 | node.sysctl_data = &val; | |
93 | 93 | |||
94 | error = sysctl_lookup(SYSCTLFN_CALL(&node)); | 94 | error = sysctl_lookup(SYSCTLFN_CALL(&node)); |