Remove process_stratum_target::hostio_last_error abstraction (Re: [PATCH] gdb, gdbserver: remove WinCE support code)

Message ID d21c52d1-0cf9-8945-1ed7-266604b40dd3@palves.net
State New
Headers show
Series
  • Remove process_stratum_target::hostio_last_error abstraction (Re: [PATCH] gdb, gdbserver: remove WinCE support code)
Related show

Commit Message

Pedro Alves April 12, 2021, 10:20 p.m.
On 12/04/21 16:24, Simon Marchi wrote:
> On 2021-04-12 11:12 a.m., Simon Marchi via Gdb-patches wrote:

>> On 2021-04-12 7:42 a.m., Pedro Alves wrote:


>>> We can also get rid of the whole 

>>>

>>>   the_target->hostio_last_error / hostio-errno.cc / hostio_last_error_from_errno

>>>

>>> abstraction now.

>>

>> Ok, I didn't really know what that was for.  I pushed the patch and will

>> send a follow up for that.


> 

> Well, I spoke too soon, I don't really understand what abstraction you

> are talking about.



This.

From 6a3ffc7e3f65799402078dc9c0721eeb33fc19c9 Mon Sep 17 00:00:00 2001
From: Pedro Alves <pedro@palves.net>

Date: Mon, 12 Apr 2021 20:23:54 +0100
Subject: [PATCH] Remove process_stratum_target::hostio_last_error abstraction

Now that the WinCE port is gone, all ports map host I/O errors from
errno, so this abstraction is no longer necessary.

Basically undoes:
  https://sourceware.org/pipermail/gdb-patches/2008-January/055246.html
  https://sourceware.org/pipermail/gdb-patches/attachments/20080131/f44e7012/attachment.bin

gdbserver/ChangeLog:

	* Makefile.in (SFILES): Remove hostio-errno.cc.
	* configure: Regenerate.
	* configure.ac (GDBSERVER_DEPFILES): No longer add
	$srv_hostio_err_objs.
	* configure.srv (srv_hostio_err_objs): Delete.
	* hostio-errno.cc: Delete.
	* hostio.cc (hostio_error): Inline hostio_last_error_from_errno
	here.
	* hostio.h (hostio_last_error_from_errno): Delete.
	* target.cc (process_stratum_target::hostio_last_error): Delete.
	* target.h (class process_stratum_target) <hostio_last_error>:
	Delete.
---
 gdbserver/Makefile.in     |  1 -
 gdbserver/configure       |  2 +-
 gdbserver/configure.ac    |  2 +-
 gdbserver/configure.srv   |  5 -----
 gdbserver/hostio-errno.cc | 36 ------------------------------------
 gdbserver/hostio.cc       |  8 +++++---
 gdbserver/hostio.h        |  4 ----
 gdbserver/target.cc       |  6 ------
 gdbserver/target.h        |  4 ----
 9 files changed, 7 insertions(+), 61 deletions(-)
 delete mode 100644 gdbserver/hostio-errno.cc


base-commit: 4bb920c68e3a9e310095d54e0c4034c9cee12916
-- 
2.26.2

Comments

Pedro Alves April 12, 2021, 10:52 p.m. | #1
On 12/04/21 23:20, Pedro Alves wrote:

> Basically undoes:

>   https://sourceware.org/pipermail/gdb-patches/2008-January/055246.html


Sorry, wrong URL here, I meant this one:

  https://sourceware.org/pipermail/gdb-patches/2008-January/055511.html

>   https://sourceware.org/pipermail/gdb-patches/attachments/20080131/f44e7012/attachment.bin

>
Lancelot SIX via Gdb-patches April 12, 2021, 11:56 p.m. | #2
On 2021-04-12 6:20 p.m., Pedro Alves wrote:> On 12/04/21 16:24, Simon Marchi wrote:
>> On 2021-04-12 11:12 a.m., Simon Marchi via Gdb-patches wrote:

>>> On 2021-04-12 7:42 a.m., Pedro Alves wrote:

> 

>>>> We can also get rid of the whole 

>>>>

>>>>   the_target->hostio_last_error / hostio-errno.cc / hostio_last_error_from_errno

>>>>

>>>> abstraction now.

>>>

>>> Ok, I didn't really know what that was for.  I pushed the patch and will

>>> send a follow up for that.

> 

>>

>> Well, I spoke too soon, I don't really understand what abstraction you

>> are talking about.

> 

> 

> This.

> 

> From 6a3ffc7e3f65799402078dc9c0721eeb33fc19c9 Mon Sep 17 00:00:00 2001

> From: Pedro Alves <pedro@palves.net>

> Date: Mon, 12 Apr 2021 20:23:54 +0100

> Subject: [PATCH] Remove process_stratum_target::hostio_last_error abstraction

> 

> Now that the WinCE port is gone, all ports map host I/O errors from

> errno, so this abstraction is no longer necessary.

> 

> Basically undoes:

>   https://sourceware.org/pipermail/gdb-patches/2008-January/055246.html

>   https://sourceware.org/pipermail/gdb-patches/attachments/20080131/f44e7012/attachment.bin

> 

> gdbserver/ChangeLog:

> 

> 	* Makefile.in (SFILES): Remove hostio-errno.cc.

> 	* configure: Regenerate.

> 	* configure.ac (GDBSERVER_DEPFILES): No longer add

> 	$srv_hostio_err_objs.

> 	* configure.srv (srv_hostio_err_objs): Delete.

> 	* hostio-errno.cc: Delete.

> 	* hostio.cc (hostio_error): Inline hostio_last_error_from_errno

> 	here.

> 	* hostio.h (hostio_last_error_from_errno): Delete.

> 	* target.cc (process_stratum_target::hostio_last_error): Delete.

> 	* target.h (class process_stratum_target) <hostio_last_error>:

> 	Delete.


OK, I see.  Well, that LGTM!

Simon
Pedro Alves April 13, 2021, 1:12 p.m. | #3
On 13/04/21 00:56, Simon Marchi wrote:
> On 2021-04-12 6:20 p.m., Pedro Alves wrote:> On 12/04/21 16:24, Simon Marchi wrote:


>>> Well, I spoke too soon, I don't really understand what abstraction you

>>> are talking about.

>>

>>

>> This.


> OK, I see.  Well, that LGTM!


Merged then.  Thanks!

Patch

diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
index a05cd1a57ad..f7ade7d61d5 100644
--- a/gdbserver/Makefile.in
+++ b/gdbserver/Makefile.in
@@ -186,7 +186,6 @@  SFILES = \
 	$(srcdir)/dll.cc \
 	$(srcdir)/gdbreplay.cc \
 	$(srcdir)/hostio.cc \
-	$(srcdir)/hostio-errno.cc \
 	$(srcdir)/i387-fp.cc \
 	$(srcdir)/inferiors.cc \
 	$(srcdir)/linux-aarch64-low.cc \
diff --git a/gdbserver/configure b/gdbserver/configure
index 0db0ad3f4fb..032b4ae65bb 100755
--- a/gdbserver/configure
+++ b/gdbserver/configure
@@ -10633,7 +10633,7 @@  $as_echo "#define USE_XML 1" >>confdefs.h
   done
 fi
 
-GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles"
+GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_thread_depfiles"
 GDBSERVER_LIBS="$srv_libs"
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the target supports __sync_*_compare_and_swap" >&5
diff --git a/gdbserver/configure.ac b/gdbserver/configure.ac
index 6c504777d09..5ec222dfc60 100644
--- a/gdbserver/configure.ac
+++ b/gdbserver/configure.ac
@@ -379,7 +379,7 @@  if test "$srv_xmlfiles" != ""; then
   done
 fi
 
-GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles"
+GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_thread_depfiles"
 GDBSERVER_LIBS="$srv_libs"
 
 dnl Check whether the target supports __sync_*_compare_and_swap.
diff --git a/gdbserver/configure.srv b/gdbserver/configure.srv
index 2dd8f75a4e0..971f537bffa 100644
--- a/gdbserver/configure.srv
+++ b/gdbserver/configure.srv
@@ -8,8 +8,6 @@ 
 #   srv_regobj		The register protocol appropriate for this target.
 #   srv_tgtobj		Any other target-specific modules appropriate
 #			for this target.
-#   srv_hostio_err	The object implementing the hostio_last_error
-#			target method.
 #   srv_xmlfiles	All XML files which should be available for
 #			gdbserver in this configuration.
 #   ipa_obj		Any other target-specific modules appropriate
@@ -24,9 +22,6 @@ 
 #   srv_linux_usrregs	Set to "yes" if we can get at registers via
 #			PTRACE_PEEKUSR / PTRACE_POKEUSR.
 
-# Default hostio_last_error implementation
-srv_hostio_err_objs="hostio-errno.o"
-
 ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-isa205-ppr-dscr-vsx32l-ipa.o powerpc-isa207-vsx32l-ipa.o powerpc-isa207-htm-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o powerpc-isa205-ppr-dscr-vsx64l-ipa.o powerpc-isa207-vsx64l-ipa.o powerpc-isa207-htm-vsx64l-ipa.o"
 
 # Linux object files.  This is so we don't have to repeat
diff --git a/gdbserver/hostio-errno.cc b/gdbserver/hostio-errno.cc
deleted file mode 100644
index 4cb3922b92e..00000000000
--- a/gdbserver/hostio-errno.cc
+++ /dev/null
@@ -1,36 +0,0 @@ 
-/* Host file transfer support for gdbserver.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
-
-   Contributed by CodeSourcery.
-
-   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 <http://www.gnu.org/licenses/>.  */
-
-/* This file implements the hostio_last_error target callback
-   on top of errno.  */
-
-#include "server.h"
-
-#include "hostio.h"
-
-#include "gdbsupport/fileio.h"
-
-void
-hostio_last_error_from_errno (char *buf)
-{
-  int error = errno;
-  int fileio_error = host_to_fileio_error (error);
-  sprintf (buf, "F-1,%x", fileio_error);
-}
diff --git a/gdbserver/hostio.cc b/gdbserver/hostio.cc
index 26c0f119d20..0654bba3a6f 100644
--- a/gdbserver/hostio.cc
+++ b/gdbserver/hostio.cc
@@ -191,12 +191,14 @@  require_valid_fd (int fd)
   return -1;
 }
 
-/* Fill in own_buf with the last hostio error packet, however it
-   suitable for the target.  */
+/* Fill BUF with an hostio error packet representing the last hostio
+   error, from errno.  */
+
 static void
 hostio_error (char *own_buf)
 {
-  the_target->hostio_last_error (own_buf);
+  int fileio_error = host_to_fileio_error (errno);
+  sprintf (own_buf, "F-1,%x", fileio_error);
 }
 
 static void
diff --git a/gdbserver/hostio.h b/gdbserver/hostio.h
index 61c42196e54..97c27c6b744 100644
--- a/gdbserver/hostio.h
+++ b/gdbserver/hostio.h
@@ -22,10 +22,6 @@ 
 /* Per-connection setup.  */
 extern void hostio_handle_new_gdb_connection (void);
 
-/* Functions from hostio.c.  */
 extern int handle_vFile (char *, int, int *);
 
-/* Functions from hostio-errno.c.  */
-extern void hostio_last_error_from_errno (char *own_buf);
-
 #endif /* GDBSERVER_HOSTIO_H */
diff --git a/gdbserver/target.cc b/gdbserver/target.cc
index 5ec3e5cce9f..6660cc04fd5 100644
--- a/gdbserver/target.cc
+++ b/gdbserver/target.cc
@@ -505,12 +505,6 @@  process_stratum_target::get_tls_address (thread_info *thread,
   gdb_assert_not_reached ("target op get_tls_address not supported");
 }
 
-void
-process_stratum_target::hostio_last_error (char *buf)
-{
-  hostio_last_error_from_errno (buf);
-}
-
 bool
 process_stratum_target::supports_qxfer_osdata ()
 {
diff --git a/gdbserver/target.h b/gdbserver/target.h
index 769d8281176..2c4393ec8c6 100644
--- a/gdbserver/target.h
+++ b/gdbserver/target.h
@@ -256,10 +256,6 @@  class process_stratum_target
   virtual int get_tls_address (thread_info *thread, CORE_ADDR offset,
 			       CORE_ADDR load_module, CORE_ADDR *address);
 
-  /* Fill BUF with an hostio error packet representing the last hostio
-     error.  */
-  virtual void hostio_last_error (char *buf);
-
   /* Return true if the qxfer_osdata target op is supported.  */
   virtual bool supports_qxfer_osdata ();