From: Gary Benson Date: Wed, 18 Mar 2015 11:19:02 +0000 (+0000) Subject: Reimplement "vFile:fstat" without qSupported X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=464b0089f0068838a014a8fa27ea2eef536ebada;p=binutils-gdb.git Reimplement "vFile:fstat" without qSupported This commit makes support for the "vFile:fstat" packet be detected by probing rather than using qSupported, for consistency with the other vFile: packets. gdb/ChangeLog: (remote_protocol_features): Remove the "vFile:fstat" feature. (remote_hostio_fstat): Probe for "vFile:fstat" support. gdb/doc/ChangeLog: * gdb.texinfo (General Query Packets): Remove documentation for now-removed vFile:fstat qSupported features. gdb/gdbserver/ChangeLog: * server.c (handle_query): Do not report vFile:fstat as supported. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9578a9e7da6..222922f1682 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2015-03-18 Gary Benson + + (remote_protocol_features): Remove the "vFile:fstat" feature. + (remote_hostio_fstat): Probe for "vFile:fstat" support. + 2015-03-11 Yao Qi PR tdep/18107 diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 5efb060545c..1f120da3c65 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2015-03-18 Gary Benson + + * gdb.texinfo (General Query Packets): Remove documentation + for now-removed vFile:fstat qSupported features. + 2015-03-11 Gary Benson * gdb.texinfo (Remote Configuration): Document the diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 9e7164282eb..552da3111ef 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -36062,11 +36062,6 @@ These are the currently defined stub features and their properties: @tab @samp{-} @tab No -@item @samp{vFile:fstat} -@tab No -@tab @samp{-} -@tab No - @end multitable These are the currently defined stub features, in more detail: @@ -36255,9 +36250,6 @@ breakpoints. The remote stub reports the @samp{hwbreak} stop reason for hardware breakpoints. -@item vFile:fstat -The remote stub understands the @samp{vFile:fstat} packet. - @end table @item qSymbol:: @@ -37426,10 +37418,6 @@ and the return value is the size of this attachment in bytes. If an error occurs the return value is -1. The format of the returned binary attachment is as described in @ref{struct stat}. -This packet is not probed by default; the remote stub must request -it, by supplying an appropriate @samp{qSupported} response -(@pxref{qSupported}). - @item vFile:unlink: @var{filename} Delete the file at @var{filename} on the target. Return 0, or -1 if an error occurs. The @var{filename} is a string. diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 6b0492a54c2..7f009f1b339 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,7 @@ +2015-03-18 Gary Benson + + * server.c (handle_query): Do not report vFile:fstat as supported. + 2015-03-11 Gary Benson * hostio.c (sys/types.h): New include. @@ -5,7 +9,6 @@ (common-remote-fileio.h): Likewise. (handle_fstat): New function. (handle_vFile): Handle vFile:fstat packets. - * server.c (handle_query): Report vFile:fstat as supported. 2015-03-11 Gary Benson diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index 9ff2f8ef7d4..08dbb60710e 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -2082,8 +2082,6 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p) if (target_supports_stopped_by_hw_breakpoint ()) strcat (own_buf, ";hwbreak+"); - strcat (own_buf, ";vFile:fstat+"); - return; } diff --git a/gdb/remote.c b/gdb/remote.c index 9aaee137bed..dfa68b3a4d4 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -4049,8 +4049,6 @@ static const struct protocol_feature remote_protocol_features[] = { PACKET_Qbtrace_conf_bts_size }, { "swbreak", PACKET_DISABLE, remote_supported_packet, PACKET_swbreak_feature }, { "hwbreak", PACKET_DISABLE, remote_supported_packet, PACKET_hwbreak_feature }, - { "vFile:fstat", PACKET_DISABLE, remote_supported_packet, - PACKET_vFile_fstat }, }; static char *remote_support_xml; @@ -10084,8 +10082,18 @@ remote_hostio_fstat (struct target_ops *self, struct fio_stat fst; int read_len; - if (packet_support (PACKET_vFile_fstat) != PACKET_ENABLE) + remote_buffer_add_string (&p, &left, "vFile:fstat:"); + + remote_buffer_add_int (&p, &left, fd); + + ret = remote_hostio_send_command (p - rs->buf, PACKET_vFile_fstat, + remote_errno, &attachment, + &attachment_len); + if (ret < 0) { + if (*remote_errno != FILEIO_ENOSYS) + return ret; + /* Strictly we should return -1, ENOSYS here, but when "set sysroot remote:" was implemented in August 2008 BFD's need for a stat function was sidestepped with @@ -10104,16 +10112,6 @@ remote_hostio_fstat (struct target_ops *self, return 0; } - remote_buffer_add_string (&p, &left, "vFile:fstat:"); - - remote_buffer_add_int (&p, &left, fd); - - ret = remote_hostio_send_command (p - rs->buf, PACKET_vFile_fstat, - remote_errno, &attachment, - &attachment_len); - if (ret < 0) - return ret; - read_len = remote_unescape_input ((gdb_byte *) attachment, attachment_len, (gdb_byte *) &fst, sizeof (fst));