Module Name: src
Committed By: pgoyette
Date: Sun Nov 1 18:51:03 UTC 2020
Modified Files:
src/sys/compat/netbsd32: netbsd32.h netbsd32_core.c
src/sys/kern: compat_stub.c files.kern kern_core.c kern_sig.c
sys_ptrace_common.c
src/sys/modules: Makefile
src/sys/modules/compat_netbsd32: Makefile
src/sys/modules/coredump: Makefile
src/sys/sys: compat_stub.h param.h signalvar.h
Added Files:
src/sys/modules/compat_netbsd32_coredump: Makefile
Log Message:
Separate the compat_netbsd32_coredump from the compat_netbsd32 and
coredump modules, into its own module.
Welcome to 7.99.75 !!!
To generate a diff of this commit:
cvs rdiff -u -r1.133 -r1.134 src/sys/compat/netbsd32/netbsd32.h
cvs rdiff -u -r1.15 -r1.16 src/sys/compat/netbsd32/netbsd32_core.c
cvs rdiff -u -r1.20 -r1.21 src/sys/kern/compat_stub.c
cvs rdiff -u -r1.53 -r1.54 src/sys/kern/files.kern
cvs rdiff -u -r1.33 -r1.34 src/sys/kern/kern_core.c
cvs rdiff -u -r1.394 -r1.395 src/sys/kern/kern_sig.c
cvs rdiff -u -r1.88 -r1.89 src/sys/kern/sys_ptrace_common.c
cvs rdiff -u -r1.247 -r1.248 src/sys/modules/Makefile
cvs rdiff -u -r1.35 -r1.36 src/sys/modules/compat_netbsd32/Makefile
cvs rdiff -u -r0 -r1.1 src/sys/modules/compat_netbsd32_coredump/Makefile
cvs rdiff -u -r1.7 -r1.8 src/sys/modules/coredump/Makefile
cvs rdiff -u -r1.24 -r1.25 src/sys/sys/compat_stub.h
cvs rdiff -u -r1.677 -r1.678 src/sys/sys/param.h
cvs rdiff -u -r1.102 -r1.103 src/sys/sys/signalvar.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/compat/netbsd32/netbsd32.h
diff -u src/sys/compat/netbsd32/netbsd32.h:1.133 src/sys/compat/netbsd32/netbsd32.h:1.134
--- src/sys/compat/netbsd32/netbsd32.h:1.133 Sat May 16 18:31:48 2020
+++ src/sys/compat/netbsd32/netbsd32.h Sun Nov 1 18:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32.h,v 1.133 2020/05/16 18:31:48 christos Exp $ */
+/* $NetBSD: netbsd32.h,v 1.134 2020/11/01 18:51:02 pgoyette Exp $ */
/*
* Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green
@@ -1212,6 +1212,7 @@ int netbsd32_kevent(struct lwp *, void *
struct coredump_iostate;
int coredump_netbsd32(struct lwp *, struct coredump_iostate *);
+int real_coredump_netbsd32(struct lwp *, struct coredump_iostate *);
/*
* random other stuff
Index: src/sys/compat/netbsd32/netbsd32_core.c
diff -u src/sys/compat/netbsd32/netbsd32_core.c:1.15 src/sys/compat/netbsd32/netbsd32_core.c:1.16
--- src/sys/compat/netbsd32/netbsd32_core.c:1.15 Wed Nov 20 19:37:53 2019
+++ src/sys/compat/netbsd32/netbsd32_core.c Sun Nov 1 18:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_core.c,v 1.15 2019/11/20 19:37:53 pgoyette Exp $ */
+/* $NetBSD: netbsd32_core.c,v 1.16 2020/11/01 18:51:02 pgoyette Exp $ */
/*
* Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -45,22 +45,36 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_core.c,v 1.15 2019/11/20 19:37:53 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_core.c,v 1.16 2020/11/01 18:51:02 pgoyette Exp $");
+#include <sys/compat_stub.h>
+#include <sys/exec_elf.h>
#include <sys/lwp.h>
+#include <sys/module.h>
-#define CORENAME(x) __CONCAT(x,32)
-#define COREINC <compat/netbsd32/netbsd32.h>
+#define DEPS "compat_netbsd32,compat_netbsd32_ptrace,coredump"
-struct coredump_iostate;
+MODULE(MODULE_CLASS_MISC, compat_netbsd32_coredump, DEPS);
-int CORENAME(real_coredump_netbsd)(struct lwp *, struct coredump_iostate *);
+#define CORENAME(x) __CONCAT(x,32)
+#define COREINC <compat/netbsd32/netbsd32.h>
#include "../../kern/core_netbsd.c"
-int
-CORENAME(coredump_netbsd)(struct lwp *l, struct coredump_iostate *iocookie)
+static int
+compat_netbsd32_coredump_modcmd(modcmd_t cmd, void *arg)
{
- return CORENAME(real_coredump_netbsd)(l, iocookie);
-}
+ switch (cmd) {
+ case MODULE_CMD_INIT:
+ MODULE_HOOK_SET(coredump_netbsd32_hook, real_coredump_netbsd32);
+ MODULE_HOOK_SET(coredump_elf32_hook, real_coredump_elf32);
+ return 0;
+ case MODULE_CMD_FINI:
+ MODULE_HOOK_UNSET(coredump_netbsd32_hook);
+ MODULE_HOOK_UNSET(coredump_elf32_hook);
+ return 0;
+ default:
+ return ENOTTY;
+ }
+}
Index: src/sys/kern/compat_stub.c
diff -u src/sys/kern/compat_stub.c:1.20 src/sys/kern/compat_stub.c:1.21
--- src/sys/kern/compat_stub.c:1.20 Mon Oct 19 19:33:02 2020
+++ src/sys/kern/compat_stub.c Sun Nov 1 18:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.c,v 1.20 2020/10/19 19:33:02 christos Exp $ */
+/* $NetBSD: compat_stub.c,v 1.21 2020/11/01 18:51:02 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -280,6 +280,7 @@ struct coredump_hook_t coredump_hook;
struct coredump_offset_hook_t coredump_offset_hook;
struct coredump_write_hook_t coredump_write_hook;
struct coredump_netbsd_hook_t coredump_netbsd_hook;
+struct coredump_netbsd32_hook_t coredump_netbsd32_hook;
struct coredump_elf32_hook_t coredump_elf32_hook;
struct coredump_elf64_hook_t coredump_elf64_hook;
struct uvm_coredump_walkmap_hook_t uvm_coredump_walkmap_hook;
Index: src/sys/kern/files.kern
diff -u src/sys/kern/files.kern:1.53 src/sys/kern/files.kern:1.54
--- src/sys/kern/files.kern:1.53 Mon Oct 19 19:33:02 2020
+++ src/sys/kern/files.kern Sun Nov 1 18:51:02 2020
@@ -1,4 +1,4 @@
-# $NetBSD: files.kern,v 1.53 2020/10/19 19:33:02 christos Exp $
+# $NetBSD: files.kern,v 1.54 2020/11/01 18:51:02 pgoyette Exp $
#
# kernel sources
@@ -167,7 +167,7 @@ file kern/sys_pipe.c !pipe_socketpair
file kern/sys_process.c ptrace_hooks | ktrace
file kern/sys_process_lwpstatus.c kern
file kern/sys_ptrace.c ptrace
-file kern/sys_ptrace_common.c ptrace
+file kern/sys_ptrace_common.c ptrace | procfs
file kern/sys_pset.c kern
file kern/sys_select.c kern
file kern/sys_sig.c kern
Index: src/sys/kern/kern_core.c
diff -u src/sys/kern/kern_core.c:1.33 src/sys/kern/kern_core.c:1.34
--- src/sys/kern/kern_core.c:1.33 Mon Oct 26 17:35:39 2020
+++ src/sys/kern/kern_core.c Sun Nov 1 18:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_core.c,v 1.33 2020/10/26 17:35:39 christos Exp $ */
+/* $NetBSD: kern_core.c,v 1.34 2020/11/01 18:51:02 pgoyette Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1991, 1993
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_core.c,v 1.33 2020/10/26 17:35:39 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_core.c,v 1.34 2020/11/01 18:51:02 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_execfmt.h"
@@ -58,13 +58,7 @@ __KERNEL_RCSID(0, "$NetBSD: kern_core.c,
#include <sys/compat_stub.h>
#include <sys/exec_elf.h>
-#ifdef COMPAT_NETBSD32
-#define COREDUMP_MODULE_DEP "compat_netbsd32_ptrace"
-#else
-#define COREDUMP_MODULE_DEP NULL
-#endif
-
-MODULE(MODULE_CLASS_MISC, coredump, COREDUMP_MODULE_DEP);
+MODULE(MODULE_CLASS_MISC, coredump, NULL);
struct coredump_iostate {
struct lwp *io_lwp;
@@ -89,11 +83,10 @@ coredump_modcmd(modcmd_t cmd, void *arg)
MODULE_HOOK_SET(coredump_write_hook, coredump_write);
MODULE_HOOK_SET(coredump_offset_hook, coredump_offset);
MODULE_HOOK_SET(coredump_netbsd_hook, real_coredump_netbsd);
-#ifdef EXEC_ELF32
- MODULE_HOOK_SET(coredump_elf32_hook, real_coredump_elf32);
-#endif
-#ifdef EXEC_ELF64
+#if defined(EXEC_ELF64)
MODULE_HOOK_SET(coredump_elf64_hook, real_coredump_elf64);
+#elif defined(EXEC_ELF32)
+ MODULE_HOOK_SET(coredump_elf32_hook, real_coredump_elf32);
#endif
MODULE_HOOK_SET(uvm_coredump_walkmap_hook,
uvm_coredump_walkmap);
@@ -103,10 +96,9 @@ coredump_modcmd(modcmd_t cmd, void *arg)
case MODULE_CMD_FINI:
MODULE_HOOK_UNSET(uvm_coredump_count_segs_hook);
MODULE_HOOK_UNSET(uvm_coredump_walkmap_hook);
-#ifdef EXEC_ELF64
+#if defined(EXEC_ELF64)
MODULE_HOOK_UNSET(coredump_elf64_hook);
-#endif
-#ifdef EXEC_ELF32
+#elif defined(EXEC_ELF32)
MODULE_HOOK_UNSET(coredump_elf32_hook);
#endif
MODULE_HOOK_UNSET(coredump_netbsd_hook);
Index: src/sys/kern/kern_sig.c
diff -u src/sys/kern/kern_sig.c:1.394 src/sys/kern/kern_sig.c:1.395
--- src/sys/kern/kern_sig.c:1.394 Fri Oct 30 22:19:00 2020
+++ src/sys/kern/kern_sig.c Sun Nov 1 18:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_sig.c,v 1.394 2020/10/30 22:19:00 christos Exp $ */
+/* $NetBSD: kern_sig.c,v 1.395 2020/11/01 18:51:02 pgoyette Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008, 2019 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.394 2020/10/30 22:19:00 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.395 2020/11/01 18:51:02 pgoyette Exp $");
#include "opt_execfmt.h"
#include "opt_ptrace.h"
@@ -2348,16 +2348,27 @@ sigexit(struct lwp *l, int signo)
* Since the "real" code may (or may not) be present in loadable module,
* we provide routines here which calls the module hooks.
*/
+
int
coredump_netbsd(struct lwp *l, struct coredump_iostate *iocookie)
{
+
int retval;
MODULE_HOOK_CALL(coredump_netbsd_hook, (l, iocookie), ENOSYS, retval);
return retval;
}
-#ifdef EXEC_ELF32
+int
+coredump_netbsd32(struct lwp *l, struct coredump_iostate *iocookie)
+{
+
+ int retval;
+
+ MODULE_HOOK_CALL(coredump_netbsd32_hook, (l, iocookie), ENOSYS, retval);
+ return retval;
+}
+
int
coredump_elf32(struct lwp *l, struct coredump_iostate *iocookie)
{
@@ -2366,9 +2377,7 @@ coredump_elf32(struct lwp *l, struct cor
MODULE_HOOK_CALL(coredump_elf32_hook, (l, iocookie), ENOSYS, retval);
return retval;
}
-#endif
-#ifdef EXEC_ELF64
int
coredump_elf64(struct lwp *l, struct coredump_iostate *iocookie)
{
@@ -2377,7 +2386,6 @@ coredump_elf64(struct lwp *l, struct cor
MODULE_HOOK_CALL(coredump_elf64_hook, (l, iocookie), ENOSYS, retval);
return retval;
}
-#endif
/*
* Put process 'p' into the stopped state and optionally, notify the parent.
Index: src/sys/kern/sys_ptrace_common.c
diff -u src/sys/kern/sys_ptrace_common.c:1.88 src/sys/kern/sys_ptrace_common.c:1.89
--- src/sys/kern/sys_ptrace_common.c:1.88 Sun Oct 25 15:55:36 2020
+++ src/sys/kern/sys_ptrace_common.c Sun Nov 1 18:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_ptrace_common.c,v 1.88 2020/10/25 15:55:36 pgoyette Exp $ */
+/* $NetBSD: sys_ptrace_common.c,v 1.89 2020/11/01 18:51:02 pgoyette Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -107,7 +107,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_ptrace_common.c,v 1.88 2020/10/25 15:55:36 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_ptrace_common.c,v 1.89 2020/11/01 18:51:02 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_ptrace.h"
@@ -143,7 +143,6 @@ __KERNEL_RCSID(0, "$NetBSD: sys_ptrace_c
#include <machine/reg.h>
-#ifdef PTRACE
# ifdef PTRACE_DEBUG
# define DPRINTF(a) uprintf a
# else
@@ -1572,7 +1571,6 @@ process_auxv_offset(struct proc *p, stru
#endif
return 0;
}
-#endif /* PTRACE */
MODULE(MODULE_CLASS_EXEC, ptrace_common, NULL);
Index: src/sys/modules/Makefile
diff -u src/sys/modules/Makefile:1.247 src/sys/modules/Makefile:1.248
--- src/sys/modules/Makefile:1.247 Wed Oct 14 10:26:59 2020
+++ src/sys/modules/Makefile Sun Nov 1 18:51:02 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.247 2020/10/14 10:26:59 ryo Exp $
+# $NetBSD: Makefile,v 1.248 2020/11/01 18:51:02 pgoyette Exp $
.include <bsd.own.mk>
@@ -298,6 +298,7 @@ SUBDIR+= compat_netbsd32_40 compat_netbs
SUBDIR+= compat_netbsd32_60 compat_netbsd32_80
SUBDIR+= compat_netbsd32_90
SUBDIR+= compat_netbsd32_43
+SUBDIR+= compat_netbsd32_coredump
SUBDIR+= compat_netbsd32_mqueue
SUBDIR+= compat_netbsd32_nfssrv
SUBDIR+= compat_netbsd32_ptrace
Index: src/sys/modules/compat_netbsd32/Makefile
diff -u src/sys/modules/compat_netbsd32/Makefile:1.35 src/sys/modules/compat_netbsd32/Makefile:1.36
--- src/sys/modules/compat_netbsd32/Makefile:1.35 Sat May 16 18:31:52 2020
+++ src/sys/modules/compat_netbsd32/Makefile Sun Nov 1 18:51:03 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.35 2020/05/16 18:31:52 christos Exp $
+# $NetBSD: Makefile,v 1.36 2020/11/01 18:51:03 pgoyette Exp $
.include "../Makefile.inc"
.include "../Makefile.assym"
@@ -29,8 +29,7 @@ CPPFLAGS+= -I${NETBSDSRCDIR}/sys/externa
.if ${NETBSD32_DRMKMS:Uno} == "yes"
SRCS+= netbsd32_drm.c
.endif
-SRCS+= netbsd32_acl.c
-SRCS+= netbsd32_core.c netbsd32_event.c
+SRCS+= netbsd32_acl.c netbsd32_event.c
SRCS+= netbsd32_exec_elf32.c netbsd32_execve.c
SRCS+= netbsd32_fd.c netbsd32_fs.c
SRCS+= netbsd32_futex.c
Index: src/sys/modules/coredump/Makefile
diff -u src/sys/modules/coredump/Makefile:1.7 src/sys/modules/coredump/Makefile:1.8
--- src/sys/modules/coredump/Makefile:1.7 Mon Oct 19 19:33:02 2020
+++ src/sys/modules/coredump/Makefile Sun Nov 1 18:51:03 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.7 2020/10/19 19:33:02 christos Exp $
+# $NetBSD: Makefile,v 1.8 2020/11/01 18:51:03 pgoyette Exp $
.include "../Makefile.inc"
@@ -6,7 +6,18 @@ KMOD= coredump
.PATH: ${S}/kern
SRCS= kern_core.c core_netbsd.c
-SRCS+= ${OBJECT_FMTS:S/^/core_/:S/$/.c/}
+
+# Include only the primary object format. If both elf64 and elf32 are
+# supported, this will pick up elf64 and elf32 will be available in
+# the compat_netbsd32_coredump module
+
+.if ${OBJECT_FMTS:Melf64} != ""
+SRCS+= core_elf64.c
+CPPFLAGS+= -DEXEC_ELF64
+.elif ${OBJECT_FMTS:Melf32} != ""
+SRCS+= core_elf32.c
+CPPFLAGS+= -DEXEC_ELF32
+.endif
.PATH: ${S}/uvm
SRCS+= uvm_coredump.c
@@ -14,12 +25,6 @@ SRCS+= uvm_coredump.c
.include "../ptrace_common/machdep.mk"
SRCS+= core_machdep.c
-.include "${.CURDIR}/../../compat/netbsd32/netbsd32.mk"
-.if ${COMPAT_USE_NETBSD32} != "no"
-CPPFLAGS.core_elf32.c+= -DCOMPAT_NETBSD32
-CPPFLAGS.kern_core.c+= -DCOMPAT_NETBSD32
-.endif
-
WARNS= 3
COPTS.kern_core.c+= ${GCC_NO_CAST_FUNCTION_TYPE}
Index: src/sys/sys/compat_stub.h
diff -u src/sys/sys/compat_stub.h:1.24 src/sys/sys/compat_stub.h:1.25
--- src/sys/sys/compat_stub.h:1.24 Mon Oct 19 19:33:02 2020
+++ src/sys/sys/compat_stub.h Sun Nov 1 18:51:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.h,v 1.24 2020/10/19 19:33:02 christos Exp $ */
+/* $NetBSD: compat_stub.h,v 1.25 2020/11/01 18:51:03 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -377,6 +377,8 @@ MODULE_HOOK(coredump_write_hook, int,
(struct coredump_iostate *, enum uio_seg, const void *, size_t));
MODULE_HOOK(coredump_netbsd_hook, int,
(struct lwp *, struct coredump_iostate *));
+MODULE_HOOK(coredump_netbsd32_hook, int,
+ (struct lwp *, struct coredump_iostate *));
MODULE_HOOK(coredump_elf32_hook, int,
(struct lwp *, struct coredump_iostate *));
MODULE_HOOK(coredump_elf64_hook, int,
Index: src/sys/sys/param.h
diff -u src/sys/sys/param.h:1.677 src/sys/sys/param.h:1.678
--- src/sys/sys/param.h:1.677 Thu Oct 15 17:38:41 2020
+++ src/sys/sys/param.h Sun Nov 1 18:51:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: param.h,v 1.677 2020/10/15 17:38:41 mgorny Exp $ */
+/* $NetBSD: param.h,v 1.678 2020/11/01 18:51:03 pgoyette Exp $ */
/*-
* Copyright (c) 1982, 1986, 1989, 1993
@@ -67,7 +67,7 @@
* 2.99.9 (299000900)
*/
-#define __NetBSD_Version__ 999007400 /* NetBSD 9.99.74 */
+#define __NetBSD_Version__ 999007500 /* NetBSD 9.99.75 */
#define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \
(m) * 1000000) + (p) * 100) <= __NetBSD_Version__)
Index: src/sys/sys/signalvar.h
diff -u src/sys/sys/signalvar.h:1.102 src/sys/sys/signalvar.h:1.103
--- src/sys/sys/signalvar.h:1.102 Thu May 14 13:32:15 2020
+++ src/sys/sys/signalvar.h Sun Nov 1 18:51:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: signalvar.h,v 1.102 2020/05/14 13:32:15 kamil Exp $ */
+/* $NetBSD: signalvar.h,v 1.103 2020/11/01 18:51:03 pgoyette Exp $ */
/*
* Copyright (c) 1991, 1993
@@ -138,6 +138,7 @@ struct coredump_iostate;
* Machine-independent functions:
*/
int coredump_netbsd(struct lwp *, struct coredump_iostate *);
+int coredump_netbsd32(struct lwp *, struct coredump_iostate *);
int real_coredump_netbsd(struct lwp *, struct coredump_iostate *);
void execsigs(struct proc *);
int issignal(struct lwp *);
Added files:
Index: src/sys/modules/compat_netbsd32_coredump/Makefile
diff -u /dev/null src/sys/modules/compat_netbsd32_coredump/Makefile:1.1
--- /dev/null Sun Nov 1 18:51:03 2020
+++ src/sys/modules/compat_netbsd32_coredump/Makefile Sun Nov 1 18:51:03 2020
@@ -0,0 +1,17 @@
+# $NetBSD: Makefile,v 1.1 2020/11/01 18:51:03 pgoyette Exp $
+
+.include "../Makefile.inc"
+
+KMOD= compat_netbsd32_coredump
+
+.PATH: ${S}/compat/netbsd32
+SRCS= netbsd32_core.c
+
+.PATH: ${S}/kern
+SRCS+= core_elf32.c
+
+CPPFLAGS+= -DCOMPAT_NETBSD32
+
+WARNS= 3
+
+.include <bsd.kmodule.mk>