Fri Dec 1 22:14:52 2017 UTC ()
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.


(joerg)
diff -r1.7 -r1.8 src/sys/compat/linux/common/linux_mod.c
diff -r1.8 -r1.9 src/sys/compat/linux32/common/linux32_mod.c

cvs diff -r1.7 -r1.8 src/sys/compat/linux/common/linux_mod.c (expand / switch to unified diff)

--- 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
122int linux_enabled = 0; 122int linux_enabled = 1;
123 123
124int 124int
125linux_sysctl_enable(SYSCTLFN_ARGS) 125linux_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));

cvs diff -r1.8 -r1.9 src/sys/compat/linux32/common/linux32_mod.c (expand / switch to unified diff)

--- 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
81int linux32_enabled = 0; 81int linux32_enabled = 1;
82 82
83int 83int
84linux32_sysctl_enable(SYSCTLFN_ARGS) 84linux32_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));