From: Pedro Alves <palves@redhat.com>
To: Julio Guerra <julio@farjump.io>,
"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [PATCH v3] Allow using special files with File I/O functions
Date: Fri, 29 Jun 2018 15:01:00 -0000 [thread overview]
Message-ID: <cb6729e2-9808-442b-83c9-727afdcdcbf1@redhat.com> (raw)
In-Reply-To: <010201644bfcc9f7-34e2955f-fdda-460d-9ffd-f03a76b20d30-000000@eu-west-1.amazonses.com>
On 06/29/2018 03:40 PM, Julio Guerra wrote:
> Le 29/06/2018 à 16:28, Pedro Alves a écrit :
>> On 06/29/2018 03:01 PM, Julio Guerra wrote:
>>
>>> I assumed a system >= POSIX.1-2001 here. man 7 inode says:
>>>
>>>
>>>
>>> The S_IF* constants are present in POSIX.1-2001 and later.
>>> [â¦]
>>> The S_ISLNK() and S_ISSOCK() macros were not in POSIX.1-1996, but
>>> both are present in POSIX.1-2001
>>>
>>>
>> POSIX specification != actual implementations. Also, Windows != POSIX,
>> for example. See the gnulib page I pointed at. Also, looking through
>> history with "git blame", etc. may find something.
>
> Isn't GDB compiled with mingw? I am no expert in mingw, but I thought it
> was a POSIX implementation based on Windows.
It's compiled with either MinGW or Cygwin. Cygwin is POSIX-like, but
mingw is native Windows.
> Anyway, we can add usual #ifdef guards arounds the cases.
That may not be needed, but does not address the S_ISxxx vs S_IFxxx comment.
Again, please take a look at the gnulib header. ISTM that S_ISxxx is
always available (there's a default implementation that just returns 0),
not sure about S_IFxxx. But please do take a better look. I've only
skimmed it.
>>
>>> Yes, because of man 2 open:
>>>
>>>
>>>
>>> EISDIR: The named file is a directory and oflag includes O_WRONLY or O_RDWR,
>>> or includes O_CREAT without O_DIRECTORY.
>> I assume you're on Linux, so "man 2" is the Linux Programmer's manual.
>> But GDB works in other hosts too. So it may be the code was there for
>> some other host. I mean, why did someone write that in the first place?
>> Again, sounds like some code archaeology is in order.
>
> Yes, but I checked it was POSIX too:
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html
Again, spec vs implementation. It may not be needed, but I wouldn't be
surprised if that was needed on e.g., Windows either. Again, archaeology
may help here.
>>
>> I forgot to say in the previous email, but it would be really nice if we
>> could add some coverage for these change to the testsuite. I've asked
>> before but I don't remember the answer -- Would it be possible to portably
>> update e.g. gdb.base/fileio.exp to cover at least one kind
>> of FILEIO_STDEV_SPECIAL file?
>
> Ok, I'll have a look, but I thought there File IOs were not implemented
> in gdbserver, so what runs this test? If it is natively run, it won't
> cover remote_fileio_func_*.
You can run the testsuite against other remote stubs, not just gdbserver.
Ideally, you'd set up the testsuite to against your stub. Did you try
that? I'd recommend that regardless.
Otherwise, even if we only test it when natively run, other folks that have
embedded stubs that support fileio will end up exercising the test.
Thanks,
Pedro Alves
next prev parent reply other threads:[~2018-06-29 15:01 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20180628192635.44056-1-julio@farjump.io>
2018-06-28 19:27 ` Julio Guerra
[not found] ` <b725e8cb-4a89-b204-1492-d8af5c76b89f@farjump.io>
2018-06-28 19:31 ` Julio Guerra
2018-06-29 13:42 ` Pedro Alves
[not found] ` <79758ca1-2541-9ae6-d793-b367d6094468@farjump.io>
2018-06-29 14:01 ` Julio Guerra
[not found] ` <9e53034b-7e28-625e-ad70-fbb53863c7e1@redhat.com>
[not found] ` <6ea235bf-bc87-256a-e745-e54f5e97bf5c@farjump.io>
2018-06-29 14:40 ` Julio Guerra
2018-06-29 15:01 ` Pedro Alves [this message]
[not found] ` <817850f4-7ee1-6301-2256-a85b7a9edb02@farjump.io>
2018-07-04 9:44 ` Julio Guerra
2018-07-05 16:50 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cb6729e2-9808-442b-83c9-727afdcdcbf1@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=julio@farjump.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox