This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v5] Add LFS support for fts functions [BZ #11460]
- From: Mark Wielaard <mjw at redhat dot com>
- To: libc-alpha at sourceware dot org
- Cc: Joseph Myers <joseph at codesourcery dot com>, "Dmitry V. Levin" <ldv at altlinux dot org>, Andreas Schwab <schwab at suse dot de>
- Date: Wed, 28 Oct 2015 20:56:11 +0100
- Subject: Re: [PATCH v5] Add LFS support for fts functions [BZ #11460]
- Authentication-results: sourceware.org; auth=none
- References: <1445002620-4017-1-git-send-email-mjw at redhat dot com> <1445513672-21431-1-git-send-email-mjw at redhat dot com>
On Thu, 2015-10-22 at 13:34 +0200, Mark Wielaard wrote:
> I believe I dealt with all the review comments. This last version
> is just to deal with the changes caused by rebasing to current master.
> OK to commit?
Ping. I rebased and retested again. This time luckily the only conflicts
were in the NEWS file, so I won't post a new version. I still would like
to commit it though. OK?
> changes:
> - Rebased. Deal with prototype-style functions everywhere.
>
> V4 changes:
> - Add NEWS entry.
>
> V3 changes:
> - Remove redundant initialization in test.
> - Use %m instead of %s with strerror(errno) in test.
> - Use 0600/0700 modes for open/mkdir in test.
> - Replace error with printf/exit(1) in test.
> - Use asprintf instead of malloc+snprintf in test.
>
> V2 changes:
> - Change fts functions to prototypes.
> - Update sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
> - Add sysdeps/unix/sysv/linux/mips/mips64/n64/fts{64,}.c
> - Add sysdeps/unix/sysv/linux/x86_64/x32/fts{64,}.c
>
> fts didn't have large-file support yet and fts.h had an #error preventing
> usage when _FILE_OFFSET_BITS was set. This required nasty workarounds for
> programs using fts with LFS. This patch implements LFS support for fts by
> adding FTS64 and FTENT64 variants plus fts64 functions. Which are simple
> aliases for 64bit off_t arches.
>
> Also includes a simple testcase for some of the fts functions with or
> without LFS enabled.
>
> 2015-10-22 Mark Wielaard <mjw@redhat.com>
>
> * io/Makefile (routines): Add fts64.
> (tests): Add tst-fts and tst-fts-lfs.
> (CFLAGS-fts64.c): New.
> * io/Versions (GLIBC_2.23): New.
> * io/fts.c: Replace FTS with FTSOBJ, FTSENT with FTSENTRY. Use
> function defines FTS_OPEN, FTS_CLOSE, FTS_READ, FTS_SET and
> FTS_CHILDREN. Define FTSOBJ, FTSENTRY, FTS_OPEN, FTS_CLOSE,
> FTS_READ, FTS_SET, FTS_CHILDREN, INO_T, STAT and LSTAT if necessary.
> * io/fts.h (FTS64): New if _USE_LARGEFILE64.
> (FTSENT64): Likewise.
> (fts64_children): Likewise.
> (fts64_close): Likewise.
> (fts64_open): Likewise.
> (fts64_read): Likewise.
> (fts64_set): Likewise.
> * io/fts64.c: New file.
> * io/tst-fts.c: New test.
> * io/tst-fts-lfs.c: Likewise.
> * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.23): Add
> GLIBC_2.23, fts64_children, fts64_close, fts64_open, fts64_read and
> fts64_set.
> * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
> Likewise.
> * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
> Likewise.
> * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
> * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
> * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
> * sysdeps/wordsize-64/fts.c: New file.
> * sysdeps/wordsize-64/fts64.c: Likewise.
> * sysdeps/unix/sysv/linux/mips/mips64/n64/fts.c: Likewise.
> * sysdeps/unix/sysv/linux/mips/mips64/n64/fts64.c: Likewise.
> * sysdeps/unix/sysv/linux/x86_64/x32/fts.c: likewise.
> * sysdeps/unix/sysv/linux/x86_64/x32/fts64.c: likewise.