diff --git a/gdb-netbsd/distinfo b/gdb-netbsd/distinfo index 699c3b6667..5b285da38f 100644 --- a/gdb-netbsd/distinfo +++ b/gdb-netbsd/distinfo @@ -38,14 +38,11 @@ SHA1 (patch-gdb_i386-bsd-nat.h) = f6688e75d80058832bbe12356399eec723f30328 SHA1 (patch-gdb_i386-nbsd-nat.c) = 12583799f643f31849063acf10cb0dc36c68101f SHA1 (patch-gdb_i386-nbsd-tdep.c) = 002ece7989025a4bed1ce1eece9d225faf02c538 SHA1 (patch-gdb_ia64-nbsd-tdep.c) = 4d1795b806b1b957f7959d57cdab7090c9510fe5 -SHA1 (patch-gdb_inf-ptrace.c) = caef41fb10c585b7b403a3dc6e82a924cc90becb SHA1 (patch-gdb_mips-nbsd-nat.c) = 1f71cb0d0c8792bfc80a456d294dad6d75b526b5 SHA1 (patch-gdb_mips-tdep.h) = 24b3cf83513716492297645b2d5c4281ab12b493 SHA1 (patch-gdb_nat_fork-inferior.c) = c15d3964c448e010958d8977825d6d46f8708e09 SHA1 (patch-gdb_nbsd-nat.c) = 60b1b2164206e52254e743cca3de762770f7ab9d SHA1 (patch-gdb_nbsd-nat.h) = 4188f1edfb1b0b437c931fa60049221164a6e59e -SHA1 (patch-gdb_nbsd-tdep.c) = d375084ca0895e71a4f7b837cb633a11eb260884 -SHA1 (patch-gdb_nbsd-tdep.h) = ca419a41fa2e7c41c4a84521700dcfae279f4bfc SHA1 (patch-gdb_objfiles.c) = 25bcbc07b2a919db28c1145489e30dcb38b5a230 SHA1 (patch-gdb_ppc-nbsd-nat.c) = 9986c45717729ffc4db04068296543e3449495a7 SHA1 (patch-gdb_sh-nbsd-nat.c) = f316feea0192b6926ebe01d0fc83effe632ae063 diff --git a/gdb-netbsd/patches/patch-gdb_inf-ptrace.c b/gdb-netbsd/patches/patch-gdb_inf-ptrace.c deleted file mode 100644 index 7460c33c7f..0000000000 --- a/gdb-netbsd/patches/patch-gdb_inf-ptrace.c +++ /dev/null @@ -1,68 +0,0 @@ -$NetBSD$ - ---- gdb/inf-ptrace.c.orig 2019-07-16 00:00:27.000000000 +0000 -+++ gdb/inf-ptrace.c -@@ -322,10 +322,12 @@ get_ptrace_pid (ptid_t ptid) - { - pid_t pid; - -+#ifndef __NetBSD__ - /* If we have an LWPID to work with, use it. Otherwise, we're - dealing with a non-threaded program/target. */ - pid = ptid.lwp (); - if (pid == 0) -+#endif - pid = ptid.pid (); - return pid; - } -@@ -338,7 +340,7 @@ void - inf_ptrace_target::resume (ptid_t ptid, int step, enum gdb_signal signal) - { - pid_t pid; -- int request; -+ int request, sig; - - if (minus_one_ptid == ptid) - /* Resume all threads. Traditionally ptrace() only supports -@@ -360,13 +362,23 @@ inf_ptrace_target::resume (ptid_t ptid, - all possible successor instructions), so we don't have to - worry about that here. */ - request = PT_STEP; -- } -+#if __NetBSD__ -+ /* -+ * On NetBSD the data field of PT_STEP contains the thread -+ * to be stepped; all other threads are continued if this value is > 0 -+ */ -+ sig = ptid.lwp (); -+#else -+ sig = 0; -+#endif -+ } else -+ sig = gdb_signal_to_host (signal); - - /* An address of (PTRACE_TYPE_ARG3)1 tells ptrace to continue from - where it was. If GDB wanted it to start some other way, we have - already written a new program counter value to the child. */ - errno = 0; -- ptrace (request, pid, (PTRACE_TYPE_ARG3)1, gdb_signal_to_host (signal)); -+ ptrace (request, pid, (PTRACE_TYPE_ARG3)1, sig); - if (errno != 0) - perror_with_name (("ptrace")); - } -@@ -562,6 +574,15 @@ inf_ptrace_target::xfer_partial (enum ta - /* If the PT_IO request is somehow not supported, fallback on - using PT_WRITE_D/PT_READ_D. Otherwise we will return zero - to indicate failure. */ -+ if (errno == EACCES) -+ { -+ fprintf_unfiltered (gdb_stderr, "Cannot %s process at %p (%s). " -+ "Is PaX MPROTECT active? See security(7), " -+ "sysctl(7), paxctl(8)\n", writebuf ? "write to" : -+ "read from", piod.piod_offs, -+ strerror(errno)); -+ return TARGET_XFER_E_IO; /* Some other error perhaps? */ -+ } - if (errno != EINVAL) - return TARGET_XFER_EOF; - } diff --git a/gdb-netbsd/patches/patch-gdb_nbsd-tdep.c b/gdb-netbsd/patches/patch-gdb_nbsd-tdep.c deleted file mode 100644 index 2b307d0017..0000000000 --- a/gdb-netbsd/patches/patch-gdb_nbsd-tdep.c +++ /dev/null @@ -1,41 +0,0 @@ -$NetBSD$ - ---- gdb/nbsd-tdep.c.orig 2019-07-16 00:00:27.000000000 +0000 -+++ gdb/nbsd-tdep.c -@@ -3,9 +3,9 @@ - Copyright (C) 2002-2019 Free Software Foundation, Inc. - - Contributed by Wasabi Systems, Inc. -- -+ - This file is part of GDB. -- -+ - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or -@@ -20,6 +20,7 @@ - along with this program. If not, see . */ - - #include "defs.h" -+#include "objfiles.h" - #include "solib-svr4.h" - #include "nbsd-tdep.h" - -@@ -47,3 +48,16 @@ nbsd_pc_in_sigtramp (CORE_ADDR pc, const - return (func_name != NULL - && startswith (func_name, "__sigtramp")); - } -+ -+CORE_ADDR -+nbsd_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc) -+{ -+ struct bound_minimal_symbol msym; -+ -+ msym = lookup_minimal_symbol("_rtld_bind_start", NULL, NULL); -+ if (msym.minsym && BMSYMBOL_VALUE_ADDRESS (msym) == pc) -+ return frame_unwind_caller_pc (get_current_frame ()); -+ else -+ return find_solib_trampoline_target (get_current_frame (), pc); -+} -+ diff --git a/gdb-netbsd/patches/patch-gdb_nbsd-tdep.h b/gdb-netbsd/patches/patch-gdb_nbsd-tdep.h deleted file mode 100644 index 6df845d3de..0000000000 --- a/gdb-netbsd/patches/patch-gdb_nbsd-tdep.h +++ /dev/null @@ -1,11 +0,0 @@ -$NetBSD$ - ---- gdb/nbsd-tdep.h.orig 2019-07-16 00:00:27.000000000 +0000 -+++ gdb/nbsd-tdep.h -@@ -25,4 +25,6 @@ struct link_map_offsets *nbsd_lp64_solib - - int nbsd_pc_in_sigtramp (CORE_ADDR, const char *); - -+CORE_ADDR nbsd_skip_solib_resolver (struct gdbarch *gdbarch, -+ CORE_ADDR pc); - #endif /* NBSD_TDEP_H */