From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id F21E639A002D for ; Fri, 4 Jun 2021 19:39:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org F21E639A002D Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-400-nsb2RASKNZKohd4wF7D8xA-1; Fri, 04 Jun 2021 15:39:22 -0400 X-MC-Unique: nsb2RASKNZKohd4wF7D8xA-1 Received: by mail-qk1-f200.google.com with SMTP id e8-20020a05620a2088b02903a5edeec4d6so7253336qka.11 for ; Fri, 04 Jun 2021 12:39:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=/0x9JC/GVgVI2DWDnjZ3XC6bqHzTdMq7giQcXt8j1Ys=; b=mFlHgE7ciL1v+SnwWKak/80Zc9S9Hk7/j+ZQHWhkkBdwEd42J1XAA03zJTuzPMUYog /f2VaQ0ZWeL7/Jpxfw0AZDzHT+MMI2oDj9RO6wt0DvvZW5k6t0J/kguGtmoi6MEy16Np 1+wwmbU74TnfV/nszHxOaAlhS7uCescsPr2roTxwoHK7asslnhm7xtAgHD9UJWORyTOM KFedRzp2GAsEqNuMbz8dMx1UjyRY8GQOztzYQPRuI6T1XQ1HfamQcjkfnRvxiMWSrs8d MYph7mIcLeKT12Mt6jbuSEjAeyKheGoWOi8cUURWbycBlAIVyTEsOt5kQrklxy+cCrTO x2/w== X-Gm-Message-State: AOAM533ygVV1nweh4WbO7/I65hnIczcC/qLZi0Z6iTbhiC9CJPsTgBpS VkICt/34/z3B2z89Ri9ur5gqzD1gbUqgN49gfGH8nfVGlAvtAmxDga+LSrUXE9Zlu7qckUPYZqA DV6ladW3m52n9QGq0tled X-Received: by 2002:a05:620a:404d:: with SMTP id i13mr5800778qko.24.1622835561230; Fri, 04 Jun 2021 12:39:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyiwaR49bpjBqOcBC1PUwyJcnJo3dBhBtirXYe+qaNM+ZISisiuMTkoDXYlQ9z3CA5ixnOw5w== X-Received: by 2002:a05:620a:404d:: with SMTP id i13mr5800747qko.24.1622835560902; Fri, 04 Jun 2021 12:39:20 -0700 (PDT) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id k6sm4180056qtg.78.2021.06.04.12.39.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 04 Jun 2021 12:39:20 -0700 (PDT) Subject: Re: [PATCH v2 21/25] io: Add fts64 with 64 bit time_t support To: Adhemerval Zanella , libc-alpha@sourceware.org References: <20210518205613.1487824-1-adhemerval.zanella@linaro.org> <20210518205613.1487824-22-adhemerval.zanella@linaro.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <5c6d5a39-2035-14b8-e1cc-4298e7124bae@redhat.com> Date: Fri, 4 Jun 2021 15:39:19 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <20210518205613.1487824-22-adhemerval.zanella@linaro.org> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jun 2021 19:39:35 -0000 On 5/18/21 4:56 PM, Adhemerval Zanella wrote: > Similar to glob, fts routines passes a stat pointer that might > differ of size and layout when 64 bit time API is used. LGTM. No regressions on x86_64, i686, ppc64le, aarch64, s390x. Reviewed-by: Carlos O'Donell Tested-by: Carlos O'Donell > Checked on i686-linux-gnu and x86_64-linux-gnu. > --- > include/fts.h | 51 +++++++++++++++++++ > io/Makefile | 4 +- > io/fts.h | 43 ++++++++++++++-- > io/fts64-time64.c | 35 +++++++++++++ > sysdeps/unix/sysv/linux/Versions | 5 ++ > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 5 ++ > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 5 ++ > sysdeps/unix/sysv/linux/csky/libc.abilist | 5 ++ > sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 ++ > sysdeps/unix/sysv/linux/i386/libc.abilist | 5 ++ > .../sysv/linux/m68k/coldfire/libc.abilist | 5 ++ > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 5 ++ > .../sysv/linux/microblaze/be/libc.abilist | 5 ++ > .../sysv/linux/microblaze/le/libc.abilist | 5 ++ > .../sysv/linux/mips/mips32/fpu/libc.abilist | 5 ++ > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 5 ++ > .../sysv/linux/mips/mips64/n32/libc.abilist | 5 ++ > sysdeps/unix/sysv/linux/nios2/libc.abilist | 5 ++ > .../linux/powerpc/powerpc32/fpu/libc.abilist | 5 ++ > .../powerpc/powerpc32/nofpu/libc.abilist | 5 ++ > .../unix/sysv/linux/s390/s390-32/libc.abilist | 5 ++ > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 5 ++ > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 5 ++ > .../sysv/linux/sparc/sparc32/libc.abilist | 5 ++ > 24 files changed, 227 insertions(+), 6 deletions(-) > create mode 100644 io/fts64-time64.c > > diff --git a/include/fts.h b/include/fts.h > index 145dce6779..ea36a9b9be 100644 > --- a/include/fts.h > +++ b/include/fts.h > @@ -1 +1,52 @@ > +#ifndef _FTS_H > #include > + > +#ifndef _ISOMAC > +# if __TIMESIZE != 64 > +# include > + > +typedef struct > +{ > + struct _ftsent64_time64 *fts_cur; > + struct _ftsent64_time64 *fts_child; > + struct _ftsent64_time64 **fts_array; OK, cur, child, array. All using ftsent64 and time64 as expected. > + dev_t fts_dev; > + char *fts_path; > + int fts_rfd; > + int fts_pathlen; > + int fts_nitems; OK, dev_t, char, int int int. > + int (*fts_compar) (const void *, const void *); OK, function pointer. > + int fts_options; OK. Int. > +} FTS64_TIME64; > + > +typedef struct _ftsent64_time64 > +{ > + struct _ftsent64_time64 *fts_cycle; > + struct _ftsent64_time64 *fts_parent; > + struct _ftsent64_time64 *fts_link; OK. cycle, parent, linke. Use ftsent64 and time64. > + long fts_number; > + void *fts_pointer; > + char *fts_accpath; > + char *fts_path; > + int fts_errno; > + int fts_symfd; > + unsigned short fts_pathlen; > + unsigned short fts_namelen; OK. Long, void, char char, int int, ushort, ushort. > + > + ino64_t fts_ino; > + dev_t fts_dev; > + nlink_t fts_nlink; OK. ino64_t, dev_t, nlink_t. > + > + short fts_level; > + unsigned short fts_info; > + unsigned short fts_flags; > + unsigned short fts_instr; OK. Short, ushort, ushort, ushort. > + > + struct __stat64_t64 *fts_statp; OK. A stat64 with time64. > + char fts_name[1]; OK. char. > +} FSTENT64_TIME64; > + > +# endif > +#endif > + > +#endif /* _FTS_H */ > diff --git a/io/Makefile b/io/Makefile > index a22492f3f3..12c832cfcb 100644 > --- a/io/Makefile > +++ b/io/Makefile > @@ -54,7 +54,8 @@ routines := \ > posix_fadvise posix_fadvise64 \ > posix_fallocate posix_fallocate64 \ > sendfile sendfile64 copy_file_range \ > - utimensat futimens file_change_detection > + utimensat futimens file_change_detection \ > + fts64-time64 OK. New test. > > others := pwd > test-srcs := ftwtest > @@ -102,6 +103,7 @@ CFLAGS-statvfs.c += -fexceptions > CFLAGS-fstatvfs.c += -fexceptions > CFLAGS-fts.c += -Wno-uninitialized $(uses-callbacks) -fexceptions > CFLAGS-fts64.c += -Wno-uninitialized $(uses-callbacks) -fexceptions > +CFLAGS-fts64-time64.c += -Wno-uninitialized $(uses-callbacks) -fexceptions OK. > CFLAGS-ftw.c += $(uses-callbacks) -fexceptions > CFLAGS-ftw64.c += $(uses-callbacks) -fexceptions > CFLAGS-posix_fallocate.c += -fexceptions > diff --git a/io/fts.h b/io/fts.h > index 867677a27e..8d3395fa31 100644 > --- a/io/fts.h > +++ b/io/fts.h > @@ -187,6 +187,7 @@ FTSENT *fts_read (FTS *); > int fts_set (FTS *, FTSENT *, int) __THROW; > #else > # ifdef __REDIRECT > +# ifndef __USE_TIME_BITS64 > FTSENT *__REDIRECT (fts_children, (FTS *, int), fts64_children); > int __REDIRECT (fts_close, (FTS *), fts64_close); > FTS *__REDIRECT (fts_open, (char * const *, int, > @@ -194,21 +195,53 @@ FTS *__REDIRECT (fts_open, (char * const *, int, > fts64_open); > FTSENT *__REDIRECT (fts_read, (FTS *), fts64_read); > int __REDIRECT_NTH (fts_set, (FTS *, FTSENT *, int), fts64_set); > +# else > +FTSENT *__REDIRECT (fts_children, (FTS *, int), __fts64_children_time64); > +int __REDIRECT (fts_close, (FTS *), __fts64_close_time64); > +FTS *__REDIRECT (fts_open, (char * const *, int, > + int (*)(const FTSENT **, const FTSENT **)), > + __fts64_open_time64); > +FTSENT *__REDIRECT (fts_read, (FTS *), __fts64_read_time64); > +int __REDIRECT_NTH (fts_set, (FTS *, FTSENT *, int), > + __fts64_set_time64); OK. Redirects with new type. > +# endif > # else > -# define fts_children fts64_children > -# define fts_close fts64_close > -# define fts_open fts64_open > -# define fts_read fts64_read > -# define fts_set fts64_set > +# ifndef __USE_TIME_BITS64 > +# define fts_children fts64_children > +# define fts_close fts64_close > +# define fts_open fts64_open > +# define fts_read fts64_read > +# define fts_set fts64_set OK. Macros for new functions. > +# else > +# endif > # endif > #endif > #ifdef __USE_LARGEFILE64 > +# ifndef __USE_TIME_BITS64 > FTSENT64 *fts64_children (FTS64 *, int); > int fts64_close (FTS64 *); > FTS64 *fts64_open (char * const *, int, > int (*)(const FTSENT64 **, const FTSENT64 **)); > FTSENT64 *fts64_read (FTS64 *); > int fts64_set (FTS64 *, FTSENT64 *, int) __THROW; > +# else > +# ifdef __REDIRECT > +FTSENT *__REDIRECT (fts64_children, (FTS64 *, int), __fts64_children_time64); > +int __REDIRECT (fts64_close, (FTS64 *), __fts64_close_time64); > +FTS *__REDIRECT (fts64_open, (char * const *, int, > + int (*)(const FTSENT64 **, const FTSENT64 **)), > + __fts64_open_time64); > +FTSENT *__REDIRECT (fts64_read, (FTS64 *), __fts64_read_time64); > +int __REDIRECT_NTH (fts64_set, (FTS64 *, FTSENT64 *, int), > + __fts64_set_time64); > +# else > +# define fts_children __fts64_children_time64 > +# define fts_close __fts64_close_time64 > +# define fts_open __fts64_open_time64 > +# define fts_read __fts64_read_time64 > +# define fts_set __fts64_set_time64 > +# endif > +# endif > #endif > __END_DECLS > > diff --git a/io/fts64-time64.c b/io/fts64-time64.c > new file mode 100644 > index 0000000000..c8885ca79b > --- /dev/null > +++ b/io/fts64-time64.c > @@ -0,0 +1,35 @@ > +/* File tree traversal functions LFS version. > + Copyright (C) 2015-2021 Free Software Foundation, Inc. > + This file is part of the GNU C Library. > + > + The GNU C Library is free software; you can redistribute it and/or > + modify it under the terms of the GNU Lesser General Public > + License as published by the Free Software Foundation; either > + version 2.1 of the License, or (at your option) any later version. > + > + The GNU C Library is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + Lesser General Public License for more details. > + > + You should have received a copy of the GNU Lesser General Public > + License along with the GNU C Library; if not, see > + . */ > + > +#include > + > +#if __TIMESIZE != 64 > +# define FTS_OPEN __fts64_open_time64 > +# define FTS_CLOSE __fts64_close_time64 > +# define FTS_READ __fts64_read_time64 > +# define FTS_SET __fts64_set_time64 > +# define FTS_CHILDREN __fts64_children_time64 > +# define FTSOBJ FTS64_TIME64 > +# define FTSENTRY FSTENT64_TIME64 > +# define INO_T ino64_t > +# define STRUCT_STAT __stat64_t64 > +# define STAT __stat64_time64 > +# define LSTAT __lstat64_time64 > + > +# include "fts.c" OK. Wow! I'm surprised you could implement it with a wrapper that didn't require any changes to fts.c, but here it is. I thought mips64 would need a change but it doesn't. > +#endif > diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions > index 27a464483b..eb258a7333 100644 > --- a/sysdeps/unix/sysv/linux/Versions > +++ b/sysdeps/unix/sysv/linux/Versions > @@ -189,6 +189,11 @@ libc { > __futimens64; > __futimes64; > __futimesat64; > + __fts64_open_time64; > + __fts64_close_time64; > + __fts64_read_time64; > + __fts64_set_time64; > + __fts64_children_time64; OK. > __getitimer64; > __getrusage64; > __gettimeofday64; > diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist > index 397c97cc16..4bdf41cae0 100644 > --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist > @@ -202,6 +202,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > index 9bc948703c..e7bd82b036 100644 > --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > @@ -199,6 +199,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist > index 0f84021d9f..857bc753e3 100644 > --- a/sysdeps/unix/sysv/linux/csky/libc.abilist > +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist > @@ -2279,6 +2279,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist > index 31caf8ebc3..3c94e046c5 100644 > --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist > +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist > @@ -2232,6 +2232,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist > index 75b71b8a5b..6b2f6e3ba9 100644 > --- a/sysdeps/unix/sysv/linux/i386/libc.abilist > +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist > @@ -2414,6 +2414,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > index 2f93afc071..9379012dd9 100644 > --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > @@ -203,6 +203,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > index dc074cf576..15142aae53 100644 > --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > @@ -2358,6 +2358,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > index a8b8366c48..fb73ff10d0 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > @@ -2330,6 +2330,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > index 63e3b096e3..fafcf2f255 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > @@ -2327,6 +2327,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > index 3d17b78b42..af82e41244 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > @@ -2323,6 +2323,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > index ba96f15040..9d7afa11f3 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > @@ -2321,6 +2321,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > index 04cc170344..3bbd2468d7 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > @@ -2329,6 +2329,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist > index ce21e19622..e3b4f8bd9d 100644 > --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist > +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist > @@ -2369,6 +2369,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > index 4cfae3b735..f0756a3997 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > @@ -2385,6 +2385,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > index 3e03f313b1..9e4bf76ba1 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > @@ -2418,6 +2418,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > index 4dfdc61761..56db45a52d 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > @@ -2383,6 +2383,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist > index 2c00100dd6..dbfdc3571f 100644 > --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist > @@ -2239,6 +2239,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist > index 2bcf38af9b..4b959c0f79 100644 > --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist > @@ -2236,6 +2236,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > index dad08de21f..95fea73af5 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > @@ -2376,6 +2376,11 @@ GLIBC_2.34 __ctime64_r F > GLIBC_2.34 __difftime64 F > GLIBC_2.34 __fstat64_time64 F > GLIBC_2.34 __fstatat64_time64 F > +GLIBC_2.34 __fts64_children_time64 F > +GLIBC_2.34 __fts64_close_time64 F > +GLIBC_2.34 __fts64_open_time64 F > +GLIBC_2.34 __fts64_read_time64 F > +GLIBC_2.34 __fts64_set_time64 F > GLIBC_2.34 __futimens64 F > GLIBC_2.34 __futimes64 F > GLIBC_2.34 __futimesat64 F > -- Cheers, Carlos.