[PATCH] Added FTW.H Methods

Eshan Dhawan eshandhawan51@gmail.com
Mon Aug 17 10:40:25 GMT 2020


> On 17-Aug-2020, at 3:12 PM, Corinna Vinschen <vinschen@redhat.com> wrote:
> 
> On Aug 13 08:11, Joel Sherrill wrote:
>>> On Thu, Aug 13, 2020 at 3:17 AM Corinna Vinschen via Newlib <
>>> newlib@sourceware.org> wrote:
>>> 
>>> On Aug 13 03:08, Eshan dhawan via Newlib wrote:
>>>> Signed-off-by: Eshan dhawan <eshandhawan51@gmail.com>
>>>> ---
>>>> newlib/configure.host         |   2 +-
>>>> newlib/libc/include/ftw.h     |  64 ++++++++++++++
>>>> newlib/libc/posix/Makefile.am |   2 +-
>>>> newlib/libc/posix/ftw.c       |  36 ++++++++
>>>> newlib/libc/posix/nftw.c      | 154 ++++++++++++++++++++++++++++++++++
>>>> 5 files changed, 256 insertions(+), 2 deletions(-)
>>>> create mode 100644 newlib/libc/include/ftw.h
>>>> create mode 100644 newlib/libc/posix/ftw.c
>>>> create mode 100644 newlib/libc/posix/nftw.c
>>> 
>>> Why do we need _FTW_ENABLE_?
>>> 
>>> What do we need the foo64 variants for?  WHile newlib defines
>>> _LARGEFILE64_SOURCE for __linux__ and __RDOS__, it's not used
>>> anywhere else in newlib itself.
>>> 
>>> Also, there's a ftw/nftw implementation in Cygwin already.  Did you
>>> check it for inclusion into newlib, or to drop the Cygwin version in
>>> favor of a new newlib versions?  We could at least share a common
>>> header, but then we will have to use the flag values already used in
>>> the Cygwin implementation for backward compatibility.
>>> 
>> 
>> We went straight to *BSD for implementations and didn't look at Cygwin.
> 
> Cygwin's ftw is OpenBSD.  Which BSD is this ftw taken from?
It’s taken from MUSL Libc 
> 
>> I've asked Eshan to replace the implementation with the Cygwin one.
>> Hopefully that's easy and allows one more piece of shared software.
> 
> It's not *that* easy because OpenBSD's/Cygwin's ftw(3) uses fts(3) under
> the hood.
That’s the same reason We couldn’t use FTW from BSD 
> 
> While sharing code is good, your implementation is more compact, which
> speaks for your code.
> 
> However, I'd like to ask for ftw.h compatibility at least, so perhaps
> Cygwin can use this other ftw, too at one point.
> 
> But even then, there's still the _FTW_ENABLE_ and _LARGEFILE64_SOURCE
> stuff I asked about.
_FTW_ENABLE_ was there because the FTW implementation required pthread_setcancelstate ()
> 
> 
> Thanks,
> Corinna
> 


More information about the Newlib mailing list