This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Do not clear the value of st_dev in File I/O's stat()


Hi Pedro,

On May 17 15:36, Pedro Alves wrote:
> [Hi Corinna, adding you in case you still happen to remember
> any of this and have any input.  If not, that's fine.]

Sorry for the late reply, just back from vacation.  I remember this
stuff patially only, but in terms of st_dev, I recall some discussion.

> On 05/17/2018 09:28 AM, Julio Guerra wrote:
> > Do not clear the value of st_dev in the fileio stat structure sent to the
> > target. It prevents from being able to check the file type on the target.
> > Note that the fileio function fstat `remote_fileio_func_fstat()` doesn't clear
> > this field.
> 
> Curious.  This looked like was written in a way like you'd write if you
> had a reason to so I did some archaeology to try to find what it was, see
> if the reason is still valid.
> 
> I found the original File I/O protocol proposal here:
> 
>   https://www.sourceware.org/ml/gdb/2002-11/msg00107.html
> 
> and in there, in the intro, it said:
> 
> ~~~~~
>   The protocol is only used for files on the host file system and
>   for I/O on the console.  Character or block special devices, pipes,
>   named pipes or sockets or any other communication method on the host
>   system are not supported by this protocol.
> ~~~~~
> 
> and further below, in "B.3 struct stat", it says:
> 
> ~~~~~
>   The values of several fields have a restricted meaning and/or
>   range of values.
> 
>     st_dev:	0	file
> 		1	console
> ~~~~~
> 
> And the current manual also says:
> 
>  @item st_dev
>  A value of 0 represents a file, 1 the console.
> [...]

The idea was that st_dev values on one system don't make sense on
another system.  Also, st_dev values for files reflect the underlying
partition on the inferior system, which doesn't mean anything to the GDB
host system.

I don't know how important backward compat is here, but there may
be code out there which still relies on the simple file vs. console
st_dev from stat().  Version check?

Other than that, if you think that this is an outdated approach, just
make sure to change the docs as well.


HTH,
Corinna


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]