From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from barracuda.ebox.ca (barracuda.ebox.ca [96.127.255.19]) by sourceware.org (Postfix) with ESMTPS id 7D58938708DA for ; Thu, 14 May 2020 19:05:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 7D58938708DA X-ASG-Debug-ID: 1589483143-0c856e18f314830c0001-fS2M51 Received: from smtp.ebox.ca (smtp.ebox.ca [96.127.255.82]) by barracuda.ebox.ca with ESMTP id I6a6NyUbuqQkMJFq (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 14 May 2020 15:05:43 -0400 (EDT) X-Barracuda-Envelope-From: simon.marchi@efficios.com X-Barracuda-RBL-Trusted-Forwarder: 96.127.255.82 Received: from smarchi-efficios.lan (unknown [192.222.164.54]) by smtp.ebox.ca (Postfix) with ESMTP id 9618C441D64; Thu, 14 May 2020 15:05:43 -0400 (EDT) From: Simon Marchi X-Barracuda-Effective-Source-IP: 192-222-164-54.qc.cable.ebox.net[192.222.164.54] X-Barracuda-Apparent-Source-IP: 192.222.164.54 X-Barracuda-RBL-IP: 192.222.164.54 To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 7/7] gdbserver: remove support for ARM/WinCE Date: Thu, 14 May 2020 15:05:37 -0400 X-ASG-Orig-Subj: [PATCH 7/7] gdbserver: remove support for ARM/WinCE Message-Id: <20200514190537.2321826-8-simon.marchi@efficios.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200514174359.2272960-1-simon.marchi@efficios.com> References: <20200514174359.2272960-1-simon.marchi@efficios.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp.ebox.ca[96.127.255.82] X-Barracuda-Start-Time: 1589483143 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://96.127.255.19:443/cgi-mod/mark.cgi X-Barracuda-Scan-Msg-Size: 15006 X-Virus-Scanned: by bsmtpd at ebox.ca X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=8.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.81851 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Spam-Status: No, score=-22.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_NONE, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_SOFTFAIL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 May 2020 19:05:55 -0000 This port has been unmaintained for years, remove it. gdbserver/ChangeLog: * Makefile.in (SFILES): Remove win32-arm-low.cc, wincecompat.cc. * configure.srv: Remove mingw32ce cases. * server.h, win32-low.cc: Remove __MINGW32CE__-guarded code. * win32-low.h (to_back_slashes): Remove. * win32-arm-low.cc, wincecompat.cc, wincecompat.h: Remove. --- gdbserver/Makefile.in | 2 - gdbserver/configure.srv | 20 ----- gdbserver/server.h | 4 - gdbserver/win32-arm-low.cc | 168 ------------------------------------- gdbserver/win32-low.cc | 101 +++++++--------------- gdbserver/win32-low.h | 4 - gdbserver/wincecompat.cc | 38 --------- gdbserver/wincecompat.h | 30 ------- 8 files changed, 29 insertions(+), 338 deletions(-) delete mode 100644 gdbserver/win32-arm-low.cc delete mode 100644 gdbserver/wincecompat.cc delete mode 100644 gdbserver/wincecompat.h diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in index cc5fa427c933..7321ba12c2eb 100644 --- a/gdbserver/Makefile.in +++ b/gdbserver/Makefile.in @@ -202,10 +202,8 @@ SFILES = \ $(srcdir)/target.cc \ $(srcdir)/thread-db.cc \ $(srcdir)/utils.cc \ - $(srcdir)/win32-arm-low.cc \ $(srcdir)/win32-i386-low.cc \ $(srcdir)/win32-low.cc \ - $(srcdir)/wincecompat.cc \ $(srcdir)/x86-low.cc \ $(srcdir)/../gdb/alloc.c \ $(srcdir)/../gdb/arch/arm.c \ diff --git a/gdbserver/configure.srv b/gdbserver/configure.srv index b376cb13449c..5e33bd9c54d6 100644 --- a/gdbserver/configure.srv +++ b/gdbserver/configure.srv @@ -73,14 +73,6 @@ case "${gdbserver_host}" in srv_linux_regsets=yes srv_linux_thread_db=yes ;; - arm*-*-mingw32ce*) srv_regobj=reg-arm.o - srv_tgtobj="win32-low.o windows-nat.o win32-arm-low.o" - srv_tgtobj="${srv_tgtobj} wincecompat.o" - # hostio_last_error implementation is in win32-low.c - srv_hostio_err_objs="" - srv_mingw=yes - srv_mingwce=yes - ;; i[34567]86-*-cygwin*) srv_regobj="" srv_tgtobj="x86-low.o nat/x86-dregs.o win32-low.o" srv_tgtobj="${srv_tgtobj} win32-i386-low.o" @@ -102,18 +94,6 @@ case "${gdbserver_host}" in ipa_obj="linux-i386-ipa.o linux-x86-tdesc-ipa.o" ipa_obj="${ipa_obj} arch/i386-ipa.o" ;; - i[34567]86-*-mingw32ce*) - srv_regobj="" - srv_tgtobj="x86-low.o nat/x86-dregs.o win32-low.o" - srv_tgtobj="${srv_tgtobj} win32-i386-low.o" - srv_tgtobj="${srv_tgtobj} nat/windows-nat.o" - srv_tgtobj="${srv_tgtobj} arch/i386.o" - srv_tgtobj="${srv_tgtobj} wincecompat.o" - # hostio_last_error implementation is in win32-low.c - srv_hostio_err_objs="" - srv_mingw=yes - srv_mingwce=yes - ;; i[34567]86-*-mingw*) srv_regobj="" srv_tgtobj="x86-low.o nat/x86-dregs.o win32-low.o" srv_tgtobj="${srv_tgtobj} win32-i386-low.o" diff --git a/gdbserver/server.h b/gdbserver/server.h index 09989e46264c..22228050a806 100644 --- a/gdbserver/server.h +++ b/gdbserver/server.h @@ -31,10 +31,6 @@ gdb_static_assert (sizeof (CORE_ADDR) >= sizeof (void *)); -#ifdef __MINGW32CE__ -#include "wincecompat.h" -#endif - #include "gdbsupport/version.h" #if !HAVE_DECL_PERROR diff --git a/gdbserver/win32-arm-low.cc b/gdbserver/win32-arm-low.cc deleted file mode 100644 index aacf2cdf8cd3..000000000000 --- a/gdbserver/win32-arm-low.cc +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (C) 2007-2020 Free Software Foundation, 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 - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#include "server.h" -#include "win32-low.h" - -using namespace windows_nat; - -#ifndef CONTEXT_FLOATING_POINT -#define CONTEXT_FLOATING_POINT 0 -#endif - -/* Defined in auto-generated file reg-arm.c. */ -void init_registers_arm (void); -extern const struct target_desc *tdesc_arm; - -static void -arm_get_thread_context (windows_thread_info *th) -{ - th->context.ContextFlags = \ - CONTEXT_FULL | \ - CONTEXT_FLOATING_POINT; - - GetThreadContext (th->h, &th->context); -} - -#define context_offset(x) ((int)&(((CONTEXT *)NULL)->x)) -static const int mappings[] = { - context_offset (R0), - context_offset (R1), - context_offset (R2), - context_offset (R3), - context_offset (R4), - context_offset (R5), - context_offset (R6), - context_offset (R7), - context_offset (R8), - context_offset (R9), - context_offset (R10), - context_offset (R11), - context_offset (R12), - context_offset (Sp), - context_offset (Lr), - context_offset (Pc), - -1, /* f0 */ - -1, /* f1 */ - -1, /* f2 */ - -1, /* f3 */ - -1, /* f4 */ - -1, /* f5 */ - -1, /* f6 */ - -1, /* f7 */ - -1, /* fps */ - context_offset (Psr), -}; -#undef context_offset - -/* Return a pointer into a CONTEXT field indexed by gdb register number. - Return a pointer to an dummy register holding zero if there is no - corresponding CONTEXT field for the given register number. */ -static char * -regptr (CONTEXT* c, int r) -{ - if (mappings[r] < 0) - { - static ULONG zero; - /* Always force value to zero, in case the user tried to write - to this register before. */ - zero = 0; - return (char *) &zero; - } - else - return (char *) c + mappings[r]; -} - -/* Fetch register from gdbserver regcache data. */ -static void -arm_fetch_inferior_register (struct regcache *regcache, - windows_thread_info *th, int r) -{ - char *context_offset = regptr (&th->context, r); - supply_register (regcache, r, context_offset); -} - -/* Store a new register value into the thread context of TH. */ -static void -arm_store_inferior_register (struct regcache *regcache, - windows_thread_info *th, int r) -{ - collect_register (regcache, r, regptr (&th->context, r)); -} - -static void -arm_arch_setup (void) -{ - init_registers_arm (); - win32_tdesc = tdesc_arm; -} - -/* Implement win32_target_ops "num_regs" method. */ - -static int -arm_num_regs (void) -{ - return sizeof (mappings) / sizeof (mappings[0]), -} - -/* Correct in either endianness. We do not support Thumb yet. */ -static const unsigned long arm_wince_breakpoint = 0xe6000010; -#define arm_wince_breakpoint_len 4 - -/* Implement win32_target_ops "get_pc" method. */ - -static CORE_ADDR -arm_win32_get_pc (struct regcache *regcache) -{ - uint32_t pc; - - collect_register_by_name (regcache, "pc", &pc); - return (CORE_ADDR) pc; -} - -/* Implement win32_target_ops "set_pc" method. */ - -static void -arm_win32_set_pc (struct regcache *regcache, CORE_ADDR pc) -{ - uint32_t newpc = pc; - - supply_register_by_name (regcache, "pc", &newpc); -} - -struct win32_target_ops the_low_target = { - arm_arch_setup, - arm_num_regs, - NULL, /* initial_stuff */ - arm_get_thread_context, - NULL, /* prepare_to_resume */ - NULL, /* thread_added */ - arm_fetch_inferior_register, - arm_store_inferior_register, - NULL, /* single_step */ - (const unsigned char *) &arm_wince_breakpoint, - arm_wince_breakpoint_len, - 0, - arm_win32_get_pc, - arm_win32_set_pc, - /* Watchpoint related functions. See target.h for comments. */ - NULL, /* supports_z_point_type */ - NULL, /* insert_point */ - NULL, /* remove_point */ - NULL, /* stopped_by_watchpoint */ - NULL /* stopped_data_address */ -}; diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc index 4eb63b7ca25a..d671691a575d 100644 --- a/gdbserver/win32-low.cc +++ b/gdbserver/win32-low.cc @@ -1414,69 +1414,39 @@ get_child_debug_event (DWORD *continue_status, goto gotevent; } -#ifndef _WIN32_WCE attaching = 0; -#else - if (attaching) - { - /* WinCE doesn't set an initial breakpoint automatically. To - stop the inferior, we flush all currently pending debug - events -- the thread list and the dll list are always - reported immediatelly without delay, then, we suspend all - threads and pretend we saw a trap at the current PC of the - main thread. - - Contrary to desktop Windows, Windows CE *does* report the dll - names on LOAD_DLL_DEBUG_EVENTs resulting from a - DebugActiveProcess call. This limits the way we can detect - if all the dlls have already been reported. If we get a real - debug event before leaving attaching, the worst that will - happen is the user will see a spurious breakpoint. */ - - current_event.dwDebugEventCode = 0; - if (!wait_for_debug_event (¤t_event, 0)) - { - OUTMSG2(("no attach events left\n")); - fake_breakpoint_event (); - attaching = 0; - } - else - OUTMSG2(("got attach event\n")); - } - else -#endif - { - gdb::optional stop = fetch_pending_stop (debug_threads); - if (stop.has_value ()) - { - *ourstatus = stop->status; - current_event = stop->event; - ptid = debug_event_ptid (¤t_event); - current_thread = find_thread_ptid (ptid); - return 1; - } + { + gdb::optional stop = fetch_pending_stop (debug_threads); + if (stop.has_value ()) + { + *ourstatus = stop->status; + current_event = stop->event; + ptid = debug_event_ptid (¤t_event); + current_thread = find_thread_ptid (ptid); + return 1; + } - /* Keep the wait time low enough for comfortable remote - interruption, but high enough so gdbserver doesn't become a - bottleneck. */ - if (!wait_for_debug_event (¤t_event, 250)) - { - DWORD e = GetLastError(); + /* Keep the wait time low enough for comfortable remote + interruption, but high enough so gdbserver doesn't become a + bottleneck. */ + if (!wait_for_debug_event (¤t_event, 250)) + { + DWORD e = GetLastError(); - if (e == ERROR_PIPE_NOT_CONNECTED) - { - /* This will happen if the loader fails to succesfully - load the application, e.g., if the main executable - tries to pull in a non-existing export from a - DLL. */ - ourstatus->kind = TARGET_WAITKIND_EXITED; - ourstatus->value.integer = 1; - return 1; - } + if (e == ERROR_PIPE_NOT_CONNECTED) + { + /* This will happen if the loader fails to succesfully + load the application, e.g., if the main executable + tries to pull in a non-existing export from a + DLL. */ + ourstatus->kind = TARGET_WAITKIND_EXITED; + ourstatus->value.integer = 1; + return 1; + } - return 0; - } - } + return 0; + } + } gotevent: @@ -1521,19 +1491,6 @@ get_child_debug_event (DWORD *continue_status, main_thread_id, current_event.u.CreateProcessInfo.hThread, current_event.u.CreateProcessInfo.lpThreadLocalBase); - -#ifdef _WIN32_WCE - if (!attaching) - { - /* Windows CE doesn't set the initial breakpoint - automatically like the desktop versions of Windows do. - We add it explicitly here. It will be removed as soon as - it is hit. */ - set_breakpoint_at ((CORE_ADDR) (long) current_event.u - .CreateProcessInfo.lpStartAddress, - auto_delete_breakpoint); - } -#endif break; case EXIT_PROCESS_DEBUG_EVENT: diff --git a/gdbserver/win32-low.h b/gdbserver/win32-low.h index a023eb1f8394..f3b44776ae1c 100644 --- a/gdbserver/win32-low.h +++ b/gdbserver/win32-low.h @@ -183,8 +183,4 @@ extern void win32_require_context (windows_nat::windows_thread_info *th); of GetLastError. */ extern char * strwinerror (DWORD error); -/* in wincecompat.c */ - -extern void to_back_slashes (char *); - #endif /* GDBSERVER_WIN32_LOW_H */ diff --git a/gdbserver/wincecompat.cc b/gdbserver/wincecompat.cc deleted file mode 100644 index 46eece17e557..000000000000 --- a/gdbserver/wincecompat.cc +++ /dev/null @@ -1,38 +0,0 @@ -/* Compatibility routines for Windows CE. - Copyright (C) 2007-2020 Free Software Foundation, 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 - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#include "server.h" - -#include - -void -perror (const char *s) -{ - if (s && *s) - fprintf (stderr, "%s: %s\n", s, strwinerror (GetLastError ())); - else - fprintf (stderr, "%s\n", strwinerror (GetLastError ())); -} - -void -to_back_slashes (char *path) -{ - for (; *path; ++path) - if ('/' == *path) - *path = '\\'; -} diff --git a/gdbserver/wincecompat.h b/gdbserver/wincecompat.h deleted file mode 100644 index 34705c3d66c5..000000000000 --- a/gdbserver/wincecompat.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Compatibility routines for Windows CE. - Copyright (C) 2007-2020 Free Software Foundation, 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 - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#ifndef GDBSERVER_WINCECOMPAT_H -#define GDBSERVER_WINCECOMPAT_H - -#include - -#define errno (GetLastError ()) - -/* in win32-low.c */ -extern char * strwinerror (DWORD error); -#define strerror strwinerror - -#endif /* GDBSERVER_WINCECOMPAT_H */ -- 2.26.2