From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x135.google.com (mail-il1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) by sourceware.org (Postfix) with ESMTPS id C45933858416 for ; Wed, 31 Jan 2024 17:48:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C45933858416 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C45933858416 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::135 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706723318; cv=none; b=sHzlsPD5UB3Zpd1bW47UhbILN2ZwSRHICTEflODGozo4Ti1yN2v0J43FB9wfYAobd+9+6vH67YI6pQUx+ToxYalZuZtxJKYcZgxYQqmAjWZBPoOe/vd5KrkF7gcgQLZtnD17ADa7x/IuNqaz/tpXqL7LyBGLwpu/bOXRxuYaB9o= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706723318; c=relaxed/simple; bh=ixKBTZAVd7tQjC3/GINanMaPY572iSftwQB7fpZnrJA=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=TCCMZX7EcYp9zgCewg9b2NUNag5kjZs7we2LFDalZU1AzC6eVYhatdAg23y8KEQ+QuHzmS8hBruPNYWPPs4UT6b0MS+P8YWjGgE9+3KVtQ2Feu9JUw9MLQFyoxP5/X7T0brsvQYrc4IG9MGBRxS/53WqzQFPrHbDPhBmeV1VBQQ= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-il1-x135.google.com with SMTP id e9e14a558f8ab-36376bf7f6dso164375ab.3 for ; Wed, 31 Jan 2024 09:48:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1706723311; x=1707328111; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=8nYhZxoDEM4Xrjc6gEZIn7gjYTeNHkNvinyeNUk7k2g=; b=pAY66pcbc5ytUJ3iNHD8L3ImRj4a//OUVPABQQOSSRsciX/HFnk1JsjphddbYXTyQq t/X9A7mH8hJNhCCMhVLXo9wgfujUYmTaDxUQe6FE4bEjXWl51/Lbg8EOctU+TEBlofll A2x33wdVDtLIpEVQ/YN0cuRTaiMWbP6KW75NOJESkFE9vStnbjeAZyqbbBGyxOks9KRV lOb7f2kA1zzlPxQZCPRkhcg1cM9RfzLQTEj3/RiyCXsFnmGxpJ9J0G3TJVoBVTzdJG0v QnIkTU3DXvLghrBaWq49LKvzCCCaRzjk6H/YoA71aE8noNAnVoWLBza90OXO7Ns7le6V DcSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706723311; x=1707328111; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8nYhZxoDEM4Xrjc6gEZIn7gjYTeNHkNvinyeNUk7k2g=; b=LWo0N9h0a9w3PvzhNIXBnpccr8HgBC0ad8KMktPJyXmHkrrXPCOGRX93JoPgNNCbox oYpdvbffyh+yor+AA49V3/2KQ3HzXP5ZRlhmQ5/+0m3+Do1Yl3Wa/q1AKF8T0Q7P6Qr+ +v37ZNM5j08o5hcWHC105p4q2HqNyTvSBfRTL+WgBI9Fc3yHt9oEeAr8CqHLcs1pUoTC /tOt9Y/PK17PUnSsKQYQY6/NI27+Bw8iqRpgrrDKvS+075ShGGGf/PdUVp1GwuKmHE1X svALoQUqQkaoOTGaKhGiBE24VYJlr+45xwYVV4rfZ21PHY/U4tMBPk6kQwJ13CeJH0GM 8AhQ== X-Gm-Message-State: AOJu0YxhkSGKFe1rKJ3lpN9GAWQhbo8603yokRXEbmnFrW9br99C/faD lZherm0Q/wTrfo6vLkLiH7y0504gyyAIEgXhO9xrRKNyvGeNj7gSGgEe31L5hag= X-Google-Smtp-Source: AGHT+IEChGtkEMmB5P6QaxUG7GDvqNyR8YdBWhacwUF/1E7lDr6rPUAoLeAgBPraFj5YvRwAx/3evw== X-Received: by 2002:a92:d20f:0:b0:363:81a2:2915 with SMTP id y15-20020a92d20f000000b0036381a22915mr2644509ily.19.1706723309945; Wed, 31 Jan 2024 09:48:29 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCWcGGCXmcsUGxFtAAZ5liXwm5RWsWzQT4BFA8nCHOx1KeZLMQWYo3QN7tuD6l9prGj+GYQzHRjoC1GvJXYUG7gv2EdP9DEeVNdFzRrAaCI= Received: from ?IPV6:2804:1b3:a7c3:574b:39fe:bdee:79da:4995? ([2804:1b3:a7c3:574b:39fe:bdee:79da:4995]) by smtp.gmail.com with ESMTPSA id d13-20020a63d70d000000b005cd821a01d4sm10864295pgg.28.2024.01.31.09.48.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 31 Jan 2024 09:48:29 -0800 (PST) Message-ID: <88fdef1f-66fc-48d1-a2a4-7e719711a1fc@linaro.org> Date: Wed, 31 Jan 2024 14:48:25 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3] Always define __USE_TIME_BITS64 when 64 bit time_t is used Content-Language: en-US To: Jonathan Wakely Cc: libc-alpha@sourceware.org, Jan Henrik Weinstock , Florian Weimer References: <20240118131801.600373-1-adhemerval.zanella@linaro.org> From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 31/01/24 09:34, Jonathan Wakely wrote: > On 18/01/24 10:18 -0300, Adhemerval Zanella wrote: >> It was raised on libc-help [1] that some Linux kernel interfaces expect >> the libc to define __USE_TIME_BITS64 to indicate the time_t size for the >> kABI.  Different than defined by the initial y2038 design document [2], >> the __USE_TIME_BITS64 is only defined for ABIs that support more than >> one time_t size (by defining the _TIME_BITS for each module). > > Libstdc++ needs a way to detect "the traditional ABI for this target > used 32-bit time_t but this translation unit is using the new 64-bit > ABI". Previously __USE_TIME_BITS64 served exactly that purpose. With > this patch it just seems to mean sizeof(time_t) == 64 which is not > useful, I can find that out for myself (and a __TIME_WIDTH__ macro or > similar would be better and more consistent with standard macros for > integer types like int32_t). > > See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99832 for the > libstdc++ issue. I don't like relying on an internal glibc macro like > __USE_TIME_BITS64 but I need _some_ way at preprocessing time (not > when libstdc++ is configured) to detect that the current translation > unit is using new 64-bit APIs *which are different from the historical > APIs on that target*. > > Is there some semi-stable / semi-public API I can use to detect that? > Is this appropriate? > #if __GLIBC_PREREQ(2, 34) && __TIMESIZE==32 && _TIME_BITS==64 > I think this says "the traditional time_t size is 32 but the user has > requested 64 in this TU, and glibc is new enough to honour that > request". The '__GLIBC_PREREQ(2, 34) && __TIMESIZE==32 && _TIME_BITS==64' does work, although this patch also adds the __USE_TIME64_REDIRECTS, which is essentially what __USE_TIME_BITS64 current means internally. I do plan to backport this fix once it is reviewed, so I am not sure which one libstdc++ would prefer. > > Tangentially, > https://www.gnu.org/software/libc/manual/html_node/64_002dbit-time-symbol-handling.html > still says "In a later change, the public API will allow user code to > choose the time size for a given compilation unit." which should have > been updated by now. Thanks, I will send a patch to update it. > > >> The 64 bit time_t redirects are now enabled using a different internal >> define (__USE_TIME64_REDIRECTS). There is no expected change in semantic >> or code generation. >> >> Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu, and >> arm-linux-gnueabi >> >> [1] https://sourceware.org/pipermail/libc-help/2024-January/006557.html >> [2] https://sourceware.org/glibc/wiki/Y2038ProofnessDesign >> -- >> Changes from v2: >> * Only defined __USE_TIME_BITS64 when 64 bit time_t is used. >> >> Changes from v1: >> * Use __USE_TIME64_REDIRECTS to allow replace the current macro. >> --- >> io/bits/poll2.h                               |  2 +- >> io/fcntl.h                                    |  2 +- >> io/fts.h                                      |  6 ++--- >> io/ftw.h                                      | 12 +++++----- >> io/sys/poll.h                                 |  2 +- >> io/sys/stat.h                                 | 16 ++++++------- >> io/utime.h                                    |  4 ++-- >> misc/sys/ioctl.h                              |  2 +- >> misc/sys/select.h                             |  4 ++-- >> posix/glob.h                                  |  4 ++-- >> posix/sched.h                                 |  2 +- >> posix/sys/wait.h                              |  4 ++-- >> resolv/netdb.h                                |  2 +- >> resource/sys/resource.h                       |  2 +- >> rt/aio.h                                      |  4 ++-- >> rt/mqueue.h                                   |  2 +- >> signal/signal.h                               |  2 +- >> socket/sys/socket.h                           | 14 +++++------ >> support/timespec.h                            |  2 +- >> support/xtime.h                               |  2 +- >> support/xunistd.h                             |  2 +- >> sysdeps/generic/features-time64.h             |  2 ++ >> sysdeps/nptl/pthread.h                        | 18 +++++++------- >> sysdeps/pthread/semaphore.h                   |  4 ++-- >> sysdeps/pthread/threads.h                     |  6 ++--- >> .../unix/sysv/linux/arm/bits/struct_stat.h    |  4 ++-- >> .../unix/sysv/linux/bits/socket-constants.h   |  2 +- >> sysdeps/unix/sysv/linux/bits/time.h           |  2 +- >> sysdeps/unix/sysv/linux/bits/timex.h          |  2 +- >> .../sysv/linux/bits/types/struct_msqid_ds.h   |  2 +- >> .../sysv/linux/bits/types/struct_semid_ds.h   |  2 +- >> .../sysv/linux/bits/types/struct_shmid_ds.h   |  2 +- >> .../unix/sysv/linux/csky/bits/struct_stat.h   |  4 ++-- >> sysdeps/unix/sysv/linux/features-time64.h     |  9 +++++-- >> .../sysv/linux/hppa/bits/socket-constants.h   |  2 +- >> .../unix/sysv/linux/hppa/bits/struct_stat.h   |  4 ++-- >> .../linux/hppa/bits/types/struct_msqid_ds.h   |  2 +- >> .../linux/hppa/bits/types/struct_semid_ds.h   |  2 +- >> .../linux/hppa/bits/types/struct_shmid_ds.h   |  2 +- >> .../unix/sysv/linux/m68k/bits/struct_stat.h   |  4 ++-- >> .../sysv/linux/microblaze/bits/struct_stat.h  |  6 ++--- >> .../sysv/linux/mips/bits/socket-constants.h   |  2 +- >> .../unix/sysv/linux/mips/bits/struct_stat.h   |  8 +++---- >> .../linux/mips/bits/types/struct_msqid_ds.h   |  2 +- >> .../linux/mips/bits/types/struct_semid_ds.h   |  2 +- >> .../linux/mips/bits/types/struct_shmid_ds.h   |  2 +- >> .../unix/sysv/linux/nios2/bits/struct_stat.h  |  4 ++-- >> .../linux/powerpc/bits/socket-constants.h     |  2 +- >> .../sysv/linux/powerpc/bits/struct_stat.h     |  4 ++-- >> .../powerpc/bits/types/struct_msqid_ds.h      |  2 +- >> .../powerpc/bits/types/struct_semid_ds.h      |  2 +- >> .../powerpc/bits/types/struct_shmid_ds.h      |  2 +- >> .../unix/sysv/linux/s390/bits/struct_stat.h   |  4 ++-- >> sysdeps/unix/sysv/linux/sh/bits/struct_stat.h |  4 ++-- >> .../sysv/linux/sparc/bits/socket-constants.h  |  2 +- >> .../unix/sysv/linux/sparc/bits/struct_stat.h  |  4 ++-- >> .../linux/sparc/bits/types/struct_msqid_ds.h  |  2 +- >> .../linux/sparc/bits/types/struct_semid_ds.h  |  2 +- >> .../linux/sparc/bits/types/struct_shmid_ds.h  |  2 +- >> sysdeps/unix/sysv/linux/sys/epoll.h           |  2 +- >> sysdeps/unix/sysv/linux/sys/prctl.h           |  2 +- >> sysdeps/unix/sysv/linux/sys/timerfd.h         |  4 ++-- >> sysdeps/unix/sysv/linux/sys/timex.h           |  2 +- >> .../unix/sysv/linux/x86/bits/struct_stat.h    |  4 ++-- >> .../linux/x86/bits/types/struct_semid_ds.h    |  2 +- >> sysvipc/sys/msg.h                             |  2 +- >> sysvipc/sys/sem.h                             |  4 ++-- >> sysvipc/sys/shm.h                             |  2 +- >> time/bits/types/struct_timespec.h             |  4 ++-- >> time/bits/types/struct_timeval.h              |  2 +- >> time/bits/types/time_t.h                      |  2 +- >> time/sys/time.h                               | 10 ++++---- >> time/time.h                                   | 24 +++++++++---------- >> 73 files changed, 149 insertions(+), 142 deletions(-) >> >> diff --git a/io/bits/poll2.h b/io/bits/poll2.h >> index 6152a8c5e4..efc8b85403 100644 >> --- a/io/bits/poll2.h >> +++ b/io/bits/poll2.h >> @@ -43,7 +43,7 @@ poll (struct pollfd *__fds, nfds_t __nfds, int __timeout) >> >> >> #ifdef __USE_GNU >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> extern int __REDIRECT (__ppoll64_alias, (struct pollfd *__fds, nfds_t __nfds, >>                        const struct timespec *__timeout, >>                        const __sigset_t *__ss), __ppoll64); >> diff --git a/io/fcntl.h b/io/fcntl.h >> index 9cee0b5900..0a493d1dd3 100644 >> --- a/io/fcntl.h >> +++ b/io/fcntl.h >> @@ -172,7 +172,7 @@ typedef __pid_t pid_t; >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> # ifndef __USE_FILE_OFFSET64 >> extern int fcntl (int __fd, int __cmd, ...); >> # else >> diff --git a/io/fts.h b/io/fts.h >> index 61f95bb441..97a031ebbd 100644 >> --- a/io/fts.h >> +++ b/io/fts.h >> @@ -187,7 +187,7 @@ FTSENT    *fts_read (FTS *); >> int     fts_set (FTS *, FTSENT *, int) __THROW; >> #else >> # ifdef __REDIRECT >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> FTSENT    *__REDIRECT (fts_children, (FTS *, int), fts64_children); >> int     __REDIRECT (fts_close, (FTS *), fts64_close); >> FTS    *__REDIRECT (fts_open, (char * const *, int, >> @@ -206,7 +206,7 @@ int     __REDIRECT_NTH (fts_set, (FTS *, FTSENT *, int), >>              __fts64_set_time64); >> #  endif >> # else >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> #   define fts_children fts64_children >> #   define fts_close fts64_close >> #   define fts_open fts64_open >> @@ -217,7 +217,7 @@ int     __REDIRECT_NTH (fts_set, (FTS *, FTSENT *, int), >> # endif >> #endif >> #ifdef __USE_LARGEFILE64 >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> FTSENT64 *fts64_children (FTS64 *, int); >> int      fts64_close (FTS64 *); >> FTS64     *fts64_open (char * const *, int, >> diff --git a/io/ftw.h b/io/ftw.h >> index e4d1b84d53..39cf595b27 100644 >> --- a/io/ftw.h >> +++ b/io/ftw.h >> @@ -137,7 +137,7 @@ extern int ftw (const char *__dir, __ftw_func_t __func, int __descriptors) >>      __nonnull ((1, 2)); >> #else >> # ifdef __REDIRECT >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int __REDIRECT (ftw, (const char *__dir, __ftw_func_t __func, >>                  int __descriptors), ftw64) __nonnull ((1, 2)); >> #  else >> @@ -146,7 +146,7 @@ extern int __REDIRECT (ftw, (const char *__dir, __ftw_func_t __func, >>      __nonnull ((1, 2)); >> #  endif >> # else >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> #   define ftw ftw64 >> #  else >> #   define ftw __ftw64_time64 >> @@ -154,7 +154,7 @@ extern int __REDIRECT (ftw, (const char *__dir, __ftw_func_t __func, >> # endif >> #endif >> #ifdef __USE_LARGEFILE64 >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int ftw64 (const char *__dir, __ftw64_func_t __func, >>           int __descriptors) __nonnull ((1, 2)); >> # else >> @@ -180,7 +180,7 @@ extern int nftw (const char *__dir, __nftw_func_t __func, int __descriptors, >>          int __flag) __nonnull ((1, 2)); >> # else >> #  ifdef __REDIRECT >> -#   ifndef __USE_TIME_BITS64 >> +#   ifndef __USE_TIME64_REDIRECTS >> extern int __REDIRECT (nftw, (const char *__dir, __nftw_func_t __func, >>                   int __descriptors, int __flag), nftw64) >>      __nonnull ((1, 2)); >> @@ -190,7 +190,7 @@ extern int __REDIRECT (nftw, (const char *__dir, __nftw_func_t __func, >>      __nonnull ((1, 2)); >> #   endif >> #  else >> -#   ifndef __USE_TIME_BITS64 >> +#   ifndef __USE_TIME64_REDIRECTS >> #    define nftw nftw64 >> #   else >> #    define nftw __nftw64_time64 >> @@ -198,7 +198,7 @@ extern int __REDIRECT (nftw, (const char *__dir, __nftw_func_t __func, >> #  endif >> # endif >> # ifdef __USE_LARGEFILE64 >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int nftw64 (const char *__dir, __nftw64_func_t __func, >>            int __descriptors, int __flag) __nonnull ((1, 2)); >> #  else >> diff --git a/io/sys/poll.h b/io/sys/poll.h >> index 7858fad6b9..c324ff5dad 100644 >> --- a/io/sys/poll.h >> +++ b/io/sys/poll.h >> @@ -66,7 +66,7 @@ extern int ppoll (struct pollfd *__fds, nfds_t __nfds, >>           const __sigset_t *__ss) >>     __fortified_attr_access (__write_only__, 1, 2); >> >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  ifdef __REDIRECT >> extern int __REDIRECT (ppoll, (struct pollfd *__fds, nfds_t __nfds, >>                                const struct timespec *__timeout, >> diff --git a/io/sys/stat.h b/io/sys/stat.h >> index 1fa6d6e62e..3b4ba80132 100644 >> --- a/io/sys/stat.h >> +++ b/io/sys/stat.h >> @@ -209,7 +209,7 @@ extern int stat (const char *__restrict __file, >>    that file descriptor FD is open on and put them in BUF.  */ >> extern int fstat (int __fd, struct stat *__buf) __THROW __nonnull ((2)); >> #else >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  ifdef __REDIRECT_NTH >> extern int __REDIRECT_NTH (stat, (const char *__restrict __file, >>                   struct stat *__restrict __buf), >> @@ -236,7 +236,7 @@ extern int __REDIRECT_NTH (fstat, (int __fd, struct stat *__buf), fstat64) >> # endif >> #endif >> #ifdef __USE_LARGEFILE64 >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int stat64 (const char *__restrict __file, >>            struct stat64 *__restrict __buf) __THROW __nonnull ((1, 2)); >> extern int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull ((2)); >> @@ -265,7 +265,7 @@ extern int fstatat (int __fd, const char *__restrict __file, >>             struct stat *__restrict __buf, int __flag) >>      __THROW __nonnull ((2, 3)); >> # else >> -#  ifdef __USE_TIME_BITS64 >> +#  ifdef __USE_TIME64_REDIRECTS >> #   ifdef __REDIRECT_NTH >> extern int __REDIRECT_NTH (fstatat, (int __fd, const char *__restrict __file, >>                      struct stat *__restrict __buf, >> @@ -287,7 +287,7 @@ extern int __REDIRECT_NTH (fstatat, (int __fd, const char *__restrict __file, >> # endif >> >> # ifdef __USE_LARGEFILE64 >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int fstatat64 (int __fd, const char *__restrict __file, >>               struct stat64 *__restrict __buf, int __flag) >>      __THROW __nonnull ((2, 3)); >> @@ -313,7 +313,7 @@ extern int __REDIRECT_NTH (fstatat64, (int __fd, >> extern int lstat (const char *__restrict __file, >>           struct stat *__restrict __buf) __THROW __nonnull ((1, 2)); >> # else >> -#  ifdef __USE_TIME_BITS64 >> +#  ifdef __USE_TIME64_REDIRECTS >> #   ifdef __REDIRECT_NTH >> extern int __REDIRECT_NTH (lstat, >>                (const char *__restrict __file, >> @@ -334,7 +334,7 @@ extern int __REDIRECT_NTH (lstat, >> #  endif >> # endif >> # ifdef __USE_LARGEFILE64 >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int lstat64 (const char *__restrict __file, >>             struct stat64 *__restrict __buf) >>      __THROW __nonnull ((1, 2)); >> @@ -427,7 +427,7 @@ extern int mkfifoat (int __fd, const char *__path, __mode_t __mode) >> #endif >> >> #ifdef __USE_ATFILE >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Set file access and modification times relative to directory file >>    descriptor.  */ >> extern int utimensat (int __fd, const char *__path, >> @@ -447,7 +447,7 @@ extern int __REDIRECT_NTH (utimensat, (int fd, const char *__path, >> #endif >> >> #ifdef __USE_XOPEN2K8 >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Set file access and modification times of the file associated with FD.  */ >> extern int futimens (int __fd, const struct timespec __times[2]) __THROW; >> >> diff --git a/io/utime.h b/io/utime.h >> index c5eacedd6a..1c7587d9c1 100644 >> --- a/io/utime.h >> +++ b/io/utime.h >> @@ -35,7 +35,7 @@ __BEGIN_DECLS >> /* Structure describing file times.  */ >> struct utimbuf >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >>     __time64_t actime;        /* Access time.  */ >>     __time64_t modtime;        /* Modification time.  */ >> #else >> @@ -46,7 +46,7 @@ struct utimbuf >> >> /* Set the access and modification times of FILE to those given in >>    *FILE_TIMES.  If FILE_TIMES is NULL, set them to the current time.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int utime (const char *__file, >>           const struct utimbuf *__file_times) >>      __THROW __nonnull ((1)); >> diff --git a/misc/sys/ioctl.h b/misc/sys/ioctl.h >> index 3f2338ddd3..ea6583e122 100644 >> --- a/misc/sys/ioctl.h >> +++ b/misc/sys/ioctl.h >> @@ -38,7 +38,7 @@ __BEGIN_DECLS >> /* Perform the I/O control operation specified by REQUEST on FD. >>    One argument may follow; its presence and type depend on REQUEST. >>    Return value depends on REQUEST.  Usually -1 indicates error.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int ioctl (int __fd, unsigned long int __request, ...) __THROW; >> #else >> # ifdef __REDIRECT >> diff --git a/misc/sys/select.h b/misc/sys/select.h >> index e6a0c1b8b2..2e45e94bc1 100644 >> --- a/misc/sys/select.h >> +++ b/misc/sys/select.h >> @@ -98,7 +98,7 @@ __BEGIN_DECLS >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int select (int __nfds, fd_set *__restrict __readfds, >>            fd_set *__restrict __writefds, >>            fd_set *__restrict __exceptfds, >> @@ -123,7 +123,7 @@ extern int __REDIRECT (select, >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int pselect (int __nfds, fd_set *__restrict __readfds, >>             fd_set *__restrict __writefds, >>             fd_set *__restrict __exceptfds, >> diff --git a/posix/glob.h b/posix/glob.h >> index 3406662840..b6bba0fbcd 100644 >> --- a/posix/glob.h >> +++ b/posix/glob.h >> @@ -150,7 +150,7 @@ extern int glob (const char *__restrict __pattern, int __flags, >> /* Free storage allocated in PGLOB by a previous `glob' call.  */ >> extern void globfree (glob_t *__pglob) __THROW; >> #else >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> extern int __REDIRECT_NTHNL (glob, (const char *__restrict __pattern, >>                     int __flags, >>                     int (*__errfunc) (const char *, int), >> @@ -170,7 +170,7 @@ extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64); >> #endif >> >> #ifdef __USE_LARGEFILE64 >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> extern int __REDIRECT_NTHNL (glob64, (const char *__restrict __pattern, >>                       int __flags, >>                       int (*__errfunc) (const char *, int), >> diff --git a/posix/sched.h b/posix/sched.h >> index 3eac206f35..49f504a488 100644 >> --- a/posix/sched.h >> +++ b/posix/sched.h >> @@ -74,7 +74,7 @@ extern int sched_get_priority_max (int __algorithm) __THROW; >> extern int sched_get_priority_min (int __algorithm) __THROW; >> >> /* Get the SCHED_RR interval for the named process.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW; >> #else >> # ifdef __REDIRECT_NTH >> diff --git a/posix/sys/wait.h b/posix/sys/wait.h >> index edbb7b4392..1f44ee1145 100644 >> --- a/posix/sys/wait.h >> +++ b/posix/sys/wait.h >> @@ -139,7 +139,7 @@ struct rusage; >>    nil, store information about the child's resource usage there.  If the >>    WUNTRACED bit is set in OPTIONS, return status for stopped children; >>    otherwise don't.  */ >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern __pid_t wait3 (int *__stat_loc, int __options, >>               struct rusage * __usage) __THROWNL; >> # else >> @@ -154,7 +154,7 @@ extern __pid_t __REDIRECT_NTHNL (wait3, (int *__stat_loc, int __options, >> #endif >> >> #ifdef __USE_MISC >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* PID is like waitpid.  Other args are like wait3.  */ >> extern __pid_t wait4 (__pid_t __pid, int *__stat_loc, int __options, >>               struct rusage *__usage) __THROWNL; >> diff --git a/resolv/netdb.h b/resolv/netdb.h >> index 14228b0d95..b7f473fafe 100644 >> --- a/resolv/netdb.h >> +++ b/resolv/netdb.h >> @@ -701,7 +701,7 @@ extern int getaddrinfo_a (int __mode, struct gaicb *__list[__restrict_arr], >> extern int gai_suspend (const struct gaicb *const __list[], int __ent, >>             const struct timespec *__timeout); >> >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  if defined(__REDIRECT) >> extern int __REDIRECT (gai_suspend, (const struct gaicb *const __list[], >>                                      int __ent, >> diff --git a/resource/sys/resource.h b/resource/sys/resource.h >> index a5634ba715..b0bf751e92 100644 >> --- a/resource/sys/resource.h >> +++ b/resource/sys/resource.h >> @@ -88,7 +88,7 @@ extern int setrlimit64 (__rlimit_resource_t __resource, >>    and put it in *USAGE.  Returns 0 for success, -1 for failure.  */ >> extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __THROW; >> >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # if defined(__REDIRECT_NTH) >> extern int __REDIRECT_NTH (getrusage, (__rusage_who_t __who, >>                                        struct rusage *__usage), >> diff --git a/rt/aio.h b/rt/aio.h >> index 37d19abf16..e71435733f 100644 >> --- a/rt/aio.h >> +++ b/rt/aio.h >> @@ -193,7 +193,7 @@ extern __ssize_t __REDIRECT_NTH (aio_return, (struct aiocb *__aiocbp), >> extern int __REDIRECT_NTH (aio_cancel, >>                (int __fildes, struct aiocb *__aiocbp), >>                aio_cancel64); >> -#  ifdef __USE_TIME_BITS64 >> +#  ifdef __USE_TIME64_REDIRECTS >> extern int __REDIRECT_NTH (aio_suspend, >>                (const struct aiocb *const __list[], int __nent, >>                 const struct timespec *__restrict __timeout), >> @@ -215,7 +215,7 @@ extern int __REDIRECT_NTH (aio_fsync, >> #  define aio_error aio_error64 >> #  define aio_return aio_return64 >> #  define aio_cancel aio_cancel64 >> -#  ifdef __USE_TIME_BITS64 >> +#  ifdef __USE_TIME64_REDIRECTS >> #   define aio_suspend __aio_suspend_time64 >> #  else >> #   define aio_suspend aio_suspend64 >> diff --git a/rt/mqueue.h b/rt/mqueue.h >> index 787cc36df2..fd6fff4bb2 100644 >> --- a/rt/mqueue.h >> +++ b/rt/mqueue.h >> @@ -71,7 +71,7 @@ extern int mq_send (mqd_t __mqdes, const char *__msg_ptr, size_t __msg_len, >>             unsigned int __msg_prio) __nonnull ((2)); >> >> #ifdef __USE_XOPEN2K >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Receive the oldest from highest priority messages in message queue >>    MQDES, stop waiting if ABS_TIMEOUT expires.  */ >> extern ssize_t mq_timedreceive (mqd_t __mqdes, char *__restrict __msg_ptr, >> diff --git a/signal/signal.h b/signal/signal.h >> index f37499ce60..8e07b041b1 100644 >> --- a/signal/signal.h >> +++ b/signal/signal.h >> @@ -269,7 +269,7 @@ extern int sigwaitinfo (const sigset_t *__restrict __set, >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int sigtimedwait (const sigset_t *__restrict __set, >>              siginfo_t *__restrict __info, >>              const struct timespec *__restrict __timeout) >> diff --git a/socket/sys/socket.h b/socket/sys/socket.h >> index 366eaab845..463cf3291b 100644 >> --- a/socket/sys/socket.h >> +++ b/socket/sys/socket.h >> @@ -170,7 +170,7 @@ extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern ssize_t sendmsg (int __fd, const struct msghdr *__message, >>             int __flags); >> #else >> @@ -191,7 +191,7 @@ extern ssize_t __sendmsg64 (int __fd, const struct msghdr *__message, >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int sendmmsg (int __fd, struct mmsghdr *__vmessages, >>              unsigned int __vlen, int __flags); >> # else >> @@ -204,7 +204,7 @@ extern int __sendmmsg64 (int __fd, struct mmsghdr *__vmessages, >>              unsigned int __vlen, int __flags); >> #   define sendmmsg __sendmmsg64 >> #  endif >> -# endif     /* __USE_TIME_BITS64 */ >> +# endif     /* __USE_TIME64_REDIRECTS */ >> #endif /* __USE_GNU */ >> >> /* Receive a message as described by MESSAGE from socket FD. >> @@ -212,7 +212,7 @@ extern int __sendmmsg64 (int __fd, struct mmsghdr *__vmessages, >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags); >> #else >> # ifdef __REDIRECT >> @@ -231,7 +231,7 @@ extern ssize_t __recvmsg64 (int __fd, struct msghdr *__message, int __flags); >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int recvmmsg (int __fd, struct mmsghdr *__vmessages, >>              unsigned int __vlen, int __flags, >>              struct timespec *__tmo); >> @@ -251,7 +251,7 @@ extern int __REDIRECT (recvmmsg, (int __fd, struct mmsghdr *__vmessages, >> /* Put the current value for socket FD's option OPTNAME at protocol level LEVEL >>    into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's >>    actual length.  Returns 0 on success, -1 for errors.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int getsockopt (int __fd, int __level, int __optname, >>                void *__restrict __optval, >>                socklen_t *__restrict __optlen) __THROW; >> @@ -273,7 +273,7 @@ extern int __getsockopt64 (int __fd, int __level, int __optname, >> /* Set socket FD's option OPTNAME at protocol level LEVEL >>    to *OPTVAL (which is OPTLEN bytes long). >>    Returns 0 on success, -1 for errors.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int setsockopt (int __fd, int __level, int __optname, >>                const void *__optval, socklen_t __optlen) __THROW; >> #else >> diff --git a/support/timespec.h b/support/timespec.h >> index 42f32bcc2c..5ccc7163a5 100644 >> --- a/support/timespec.h >> +++ b/support/timespec.h >> @@ -35,7 +35,7 @@ make_timespec (time_t s, long int ns) >> >> enum { TIMESPEC_HZ = 1000000000 }; >> >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> struct timespec timespec_add (struct timespec, struct timespec) >>   __attribute__((const)); >> struct timespec timespec_sub (struct timespec, struct timespec) >> diff --git a/support/xtime.h b/support/xtime.h >> index 5200eef2e0..9961899634 100644 >> --- a/support/xtime.h >> +++ b/support/xtime.h >> @@ -30,7 +30,7 @@ __BEGIN_DECLS >> /* The following functions call the corresponding libc functions and >>    terminate the process on error.  */ >> >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> void xclock_gettime (clockid_t clock, struct timespec *ts); >> void xclock_settime (clockid_t clock, const struct timespec *ts); >> #else >> diff --git a/support/xunistd.h b/support/xunistd.h >> index b5e8c2f420..13be9a46a3 100644 >> --- a/support/xunistd.h >> +++ b/support/xunistd.h >> @@ -36,7 +36,7 @@ pid_t xwaitpid (pid_t, int *status, int flags); >> void xpipe (int[2]); >> void xdup2 (int, int); >> int xopen (const char *path, int flags, mode_t); >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> # ifdef __USE_FILE_OFFSET64 >> void xstat (const char *path, struct stat *); >> void xlstat (const char *path, struct stat *); >> diff --git a/sysdeps/generic/features-time64.h b/sysdeps/generic/features-time64.h >> index 4d38b8ba76..4d1c8319d4 100644 >> --- a/sysdeps/generic/features-time64.h >> +++ b/sysdeps/generic/features-time64.h >> @@ -17,3 +17,5 @@ >>    .  */ >> >> /* The generic configuration only support _TIME_BITS=32.  */ >> +#define __USE_TIME_BITS64       0 >> +#define __USE_TIME64_REDIRECTS  0 >> diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h >> index 1607fdf29a..3d4f4a756c 100644 >> --- a/sysdeps/nptl/pthread.h >> +++ b/sysdeps/nptl/pthread.h >> @@ -223,7 +223,7 @@ extern int pthread_join (pthread_t __th, void **__thread_return); >>    the thread in *THREAD_RETURN, if THREAD_RETURN is not NULL.  */ >> extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW; >> >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Make calling thread wait for termination of the thread TH, but only >>    until TIMEOUT.  The exit status of the thread is stored in >>    *THREAD_RETURN, if THREAD_RETURN is not NULL. >> @@ -796,7 +796,7 @@ extern int pthread_mutex_lock (pthread_mutex_t *__mutex) >> >> #ifdef __USE_XOPEN2K >> /* Wait until lock becomes available, or specified time passes. */ >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, >>                     const struct timespec *__restrict >>                     __abstime) __THROWNL __nonnull ((1, 2)); >> @@ -813,7 +813,7 @@ extern int __REDIRECT_NTHNL (pthread_mutex_timedlock, >> #endif >> >> #ifdef __USE_GNU >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex, >>                     clockid_t __clockid, >>                     const struct timespec *__restrict >> @@ -982,7 +982,7 @@ extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) >> >> # ifdef __USE_XOPEN2K >> /* Try to acquire read lock for RWLOCK or return after specified time.  */ >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, >>                        const struct timespec *__restrict >>                        __abstime) __THROWNL __nonnull ((1, 2)); >> @@ -1000,7 +1000,7 @@ extern int __REDIRECT_NTHNL (pthread_rwlock_timedrdlock, >> # endif >> >> # ifdef __USE_GNU >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock, >>                        clockid_t __clockid, >>                        const struct timespec *__restrict >> @@ -1029,7 +1029,7 @@ extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) >> >> # ifdef __USE_XOPEN2K >> /* Try to acquire write lock for RWLOCK or return after specified time.  */ >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, >>                        const struct timespec *__restrict >>                        __abstime) __THROWNL __nonnull ((1, 2)); >> @@ -1047,7 +1047,7 @@ extern int __REDIRECT_NTHNL (pthread_rwlock_timedwrlock, >> # endif >> >> # ifdef __USE_GNU >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock, >>                        clockid_t __clockid, >>                        const struct timespec *__restrict >> @@ -1141,7 +1141,7 @@ extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, >>                    pthread_mutex_t *__restrict __mutex, >>                    const struct timespec *__restrict __abstime) >> @@ -1167,7 +1167,7 @@ extern int __REDIRECT (pthread_cond_timedwait, >> >>    This function is a cancellation point and therefore not marked with >>    __THROW. */ >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond, >>                    pthread_mutex_t *__restrict __mutex, >>                    __clockid_t __clock_id, >> diff --git a/sysdeps/pthread/semaphore.h b/sysdeps/pthread/semaphore.h >> index c75ca4ce6d..8a09633699 100644 >> --- a/sysdeps/pthread/semaphore.h >> +++ b/sysdeps/pthread/semaphore.h >> @@ -59,7 +59,7 @@ extern int sem_wait (sem_t *__sem) __nonnull ((1)); >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int sem_timedwait (sem_t *__restrict __sem, >>               const struct timespec *__restrict __abstime) >>   __nonnull ((1, 2)); >> @@ -77,7 +77,7 @@ extern int __REDIRECT (sem_timedwait, >> #endif >> >> #ifdef __USE_GNU >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int sem_clockwait (sem_t *__restrict __sem, >>               clockid_t clock, >>               const struct timespec *__restrict __abstime) >> diff --git a/sysdeps/pthread/threads.h b/sysdeps/pthread/threads.h >> index c5410b5c3a..7cade24e1f 100644 >> --- a/sysdeps/pthread/threads.h >> +++ b/sysdeps/pthread/threads.h >> @@ -90,7 +90,7 @@ extern thrd_t thrd_current (void); >>    __TIME_POINT.  The current thread may resume if receives a signal.  In >>    that case, if __REMAINING is not NULL, the remaining time is stored in >>    the object pointed by it.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int thrd_sleep (const struct timespec *__time_point, >>                struct timespec *__remaining); >> #else >> @@ -143,7 +143,7 @@ extern int mtx_lock (mtx_t *__mutex); >> /* Block the current thread until the mutex pointed by __MUTEX is unlocked >>    or time pointed by __TIME_POINT is reached.  In case the mutex is unlock, >>    the current thread will not be blocked.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int mtx_timedlock (mtx_t *__restrict __mutex, >>               const struct timespec *__restrict __time_point); >> #else >> @@ -194,7 +194,7 @@ extern int cnd_wait (cnd_t *__cond, mtx_t *__mutex); >> /* Block current thread on the condition variable until condition variable >>    pointed by __COND is signaled or time pointed by __TIME_POINT is >>    reached.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int cnd_timedwait (cnd_t *__restrict __cond, >>               mtx_t *__restrict __mutex, >>               const struct timespec *__restrict __time_point); >> diff --git a/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h b/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h >> index 255feaa8cb..1fc5917b8e 100644 >> --- a/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h >> @@ -28,7 +28,7 @@ >> >> struct stat >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     __dev_t st_dev;            /* Device.  */ >> @@ -89,7 +89,7 @@ struct stat >> #ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;            /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/bits/socket-constants.h b/sysdeps/unix/sysv/linux/bits/socket-constants.h >> index d997dbf594..b2102d3abf 100644 >> --- a/sysdeps/unix/sysv/linux/bits/socket-constants.h >> +++ b/sysdeps/unix/sysv/linux/bits/socket-constants.h >> @@ -64,7 +64,7 @@ >> #  define SO_TIMESTAMPNS_NEW 64 >> #  define SO_TIMESTAMPING_NEW 65 >> >> -#  ifdef __USE_TIME_BITS64 >> +#  ifdef __USE_TIME64_REDIRECTS >> #   define SO_RCVTIMEO SO_RCVTIMEO_NEW >> #   define SO_SNDTIMEO SO_SNDTIMEO_NEW >> #   define SO_TIMESTAMP SO_TIMESTAMP_NEW >> diff --git a/sysdeps/unix/sysv/linux/bits/time.h b/sysdeps/unix/sysv/linux/bits/time.h >> index b70ba58a7d..cab4057971 100644 >> --- a/sysdeps/unix/sysv/linux/bits/time.h >> +++ b/sysdeps/unix/sysv/linux/bits/time.h >> @@ -77,7 +77,7 @@ __BEGIN_DECLS >> /* Tune a POSIX clock.  */ >> extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW __nonnull((2)); >> >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # if defined(__REDIRECT_NTH) >> extern int __REDIRECT_NTH (clock_adjtime, (__clockid_t __clock_id, >>                                            struct timex *__utx), >> diff --git a/sysdeps/unix/sysv/linux/bits/timex.h b/sysdeps/unix/sysv/linux/bits/timex.h >> index 398d8094f2..03ccde6d0a 100644 >> --- a/sysdeps/unix/sysv/linux/bits/timex.h >> +++ b/sysdeps/unix/sysv/linux/bits/timex.h >> @@ -25,7 +25,7 @@ >> >> struct timex >> { >> -# if defined __USE_TIME_BITS64 || (__TIMESIZE == 64 && __WORDSIZE == 32) >> +# if defined __USE_TIME64_REDIRECTS || (__TIMESIZE == 64 && __WORDSIZE == 32) >>   unsigned int modes;          /* mode selector */ >>   int :32;                     /* pad */ >>   long long offset;            /* time offset (usec) */ >> diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h >> index fae50281c7..86296ca922 100644 >> --- a/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h >> +++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h >> @@ -26,7 +26,7 @@ >>    The type `struct msg' is opaque.  */ >> struct msqid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm msg_perm;    /* structure describing operation permission */ >> diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h >> index 3c277ed1d8..2ac89b3ce4 100644 >> --- a/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h >> +++ b/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a set of semaphores.  */ >> struct semid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm sem_perm;        /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h >> index 09de0b4e3a..1012ed0317 100644 >> --- a/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h >> +++ b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a shared memory segment.  */ >> struct shmid_ds >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     struct ipc_perm shm_perm;        /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h b/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h >> index 4b4822d6d0..47a9f0aaff 100644 >> --- a/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h >> @@ -43,7 +43,7 @@ >> >> struct stat >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     __dev_t st_dev;        /* Device.  */ >> @@ -88,7 +88,7 @@ struct stat >> #ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;        /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/features-time64.h b/sysdeps/unix/sysv/linux/features-time64.h >> index dd3442c2ea..8d573cd23e 100644 >> --- a/sysdeps/unix/sysv/linux/features-time64.h >> +++ b/sysdeps/unix/sysv/linux/features-time64.h >> @@ -24,9 +24,8 @@ >> # if _TIME_BITS == 64 >> #  if ! defined (_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64 >> #   error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" >> -#  elif __TIMESIZE == 32 >> -#   define __USE_TIME_BITS64    1 >> #  endif >> +#  define __USE_TIME_BITS64    1 >> # elif _TIME_BITS == 32 >> #  if __TIMESIZE > 32 >> #   error "_TIME_BITS=32 is not compatible with __TIMESIZE > 32" >> @@ -34,4 +33,10 @@ >> # else >> #  error Invalid _TIME_BITS value (can only be 32 or 64-bit) >> # endif >> +#elif __TIMESIZE == 64 >> +# define __USE_TIME_BITS64      1 >> +#endif >> + >> +#if defined __USE_TIME_BITS64 && __TIMESIZE == 32 >> +# define __USE_TIME64_REDIRECTS 1 >> #endif >> diff --git a/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h b/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h >> index 58b523d03a..80a76a17dc 100644 >> --- a/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h >> +++ b/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h >> @@ -54,7 +54,7 @@ >> # define SO_TIMESTAMPNS_NEW 0x4039 >> # define SO_TIMESTAMPING_NEW 0x403A >> >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  define SO_RCVTIMEO SO_RCVTIMEO_NEW >> #  define SO_SNDTIMEO SO_SNDTIMEO_NEW >> #  define SO_TIMESTAMP SO_TIMESTAMP_NEW >> diff --git a/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h b/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h >> index 069efdbc55..67f7c110cd 100644 >> --- a/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h >> @@ -28,7 +28,7 @@ >> >> struct stat >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     __dev_t st_dev;            /* Device.  */ >> @@ -89,7 +89,7 @@ struct stat >> #ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;            /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h >> index 2bc7cac06d..4995e0a4a5 100644 >> --- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h >> +++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h >> @@ -26,7 +26,7 @@ >>    The type `struct msg' is opaque.  */ >> struct msqid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm msg_perm;    /* structure describing operation permission */ >> diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h >> index dd8fbebcf4..df88949dc2 100644 >> --- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h >> +++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a set of semaphores.  */ >> struct semid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm sem_perm;   /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h >> index 58ac572b6e..cb3b0303aa 100644 >> --- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h >> +++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a shared memory segment.  */ >> struct shmid_ds >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     struct ipc_perm shm_perm;        /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h b/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h >> index 3b1db157bc..2b662668e8 100644 >> --- a/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h >> @@ -25,7 +25,7 @@ >> >> struct stat >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     __dev_t st_dev;            /* Device.  */ >> @@ -86,7 +86,7 @@ struct stat >> #ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;            /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h b/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h >> index 0f4693fb1f..04686f30ec 100644 >> --- a/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h >> @@ -26,7 +26,7 @@ >> #ifndef __USE_FILE_OFFSET64 >> struct stat >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>         __dev_t         st_dev;     /* Device.  */ >> @@ -74,7 +74,7 @@ struct stat >>  * create one ifdef to separate stats structures.  */ >> struct stat >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>         unsigned long long      st_dev;     /* Device.  */ >> @@ -119,7 +119,7 @@ struct stat >> #ifdef __USE_LARGEFILE64 >> struct stat64 >> { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>         unsigned long long      st_dev;     /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h b/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h >> index c6908a2793..77ffc8b890 100644 >> --- a/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h >> +++ b/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h >> @@ -54,7 +54,7 @@ >> # define SO_TIMESTAMPNS_NEW 64 >> # define SO_TIMESTAMPING_NEW 65 >> >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  define SO_RCVTIMEO SO_RCVTIMEO_NEW >> #  define SO_SNDTIMEO SO_SNDTIMEO_NEW >> #  define SO_TIMESTAMP SO_TIMESTAMP_NEW >> diff --git a/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h b/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h >> index 277ebad9b6..26682f8d4f 100644 >> --- a/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h >> @@ -29,7 +29,7 @@ >> /* Structure describing file characteristics.  */ >> struct stat >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     unsigned long int st_dev; >> @@ -88,7 +88,7 @@ struct stat >> # ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -#  ifdef __USE_TIME_BITS64 >> +#  ifdef __USE_TIME64_REDIRECTS >> #   include >> #  else >>     unsigned long int st_dev; >> @@ -131,7 +131,7 @@ struct stat64 >> >> struct stat >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev; >> @@ -189,7 +189,7 @@ struct stat >> #ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev; >> diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h >> index 4e8bd51b0a..09c53648b7 100644 >> --- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h >> +++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h >> @@ -26,7 +26,7 @@ >>    The type `struct msg' is opaque.  */ >> struct msqid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm msg_perm;    /* structure describing operation permission */ >> diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h >> index d1a30e3164..0746684a7d 100644 >> --- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h >> +++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a set of semaphores.  */ >> struct semid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm sem_perm;        /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h >> index 8771164b57..c665af1874 100644 >> --- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h >> +++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a shared memory segment.  */ >> struct shmid_ds >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     struct ipc_perm shm_perm;        /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h b/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h >> index 672c7c6bb8..dab466d881 100644 >> --- a/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h >> @@ -43,7 +43,7 @@ >> >> struct stat >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     __dev_t st_dev;        /* Device.  */ >> @@ -88,7 +88,7 @@ struct stat >> #ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;        /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h b/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h >> index 6be5055e65..0d3e095c5d 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h >> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h >> @@ -54,7 +54,7 @@ >> # define SO_TIMESTAMPNS_NEW 64 >> # define SO_TIMESTAMPING_NEW 65 >> >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  define SO_RCVTIMEO SO_RCVTIMEO_NEW >> #  define SO_SNDTIMEO SO_SNDTIMEO_NEW >> #  define SO_TIMESTAMP SO_TIMESTAMP_NEW >> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h b/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h >> index f6328399cd..20ed8dd9b8 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h >> @@ -28,7 +28,7 @@ >> #if __WORDSIZE == 32 >> struct stat >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;            /* Device.  */ >> @@ -85,7 +85,7 @@ struct stat >> # ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -#  ifdef __USE_TIME_BITS64 >> +#  ifdef __USE_TIME64_REDIRECTS >> #   include >> #  else >>     __dev_t st_dev;            /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h >> index 830629cd37..44ae08265d 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h >> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h >> @@ -26,7 +26,7 @@ >>    The type `struct msg' is opaque.  */ >> struct msqid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm msg_perm;    /* structure describing operation permission */ >> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h >> index 4370257557..ccee57c28b 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h >> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a set of semaphores.  */ >> struct semid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm sem_perm;   /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h >> index da1b4b3c56..58145d0a5d 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h >> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a shared memory segment.  */ >> struct shmid_ds >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     struct ipc_perm shm_perm;        /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h >> index 9911c47bb2..e5c9024fb2 100644 >> --- a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h >> @@ -65,7 +65,7 @@ struct stat >> #else >> struct stat >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;            /* Device.  */ >> @@ -166,7 +166,7 @@ struct stat64 >> # else >> struct stat64 >>   { >> -#  ifdef __USE_TIME_BITS64 >> +#  ifdef __USE_TIME64_REDIRECTS >> #   include >> #  else >>     __dev_t st_dev;            /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h b/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h >> index cbd4bc0f31..9ad0943982 100644 >> --- a/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h >> @@ -28,7 +28,7 @@ >> >> struct stat >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     __dev_t st_dev;            /* Device.  */ >> @@ -89,7 +89,7 @@ struct stat >> #ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;            /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h b/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h >> index 59958611c4..e7a6b684cc 100644 >> --- a/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h >> +++ b/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h >> @@ -54,7 +54,7 @@ >> # define SO_TIMESTAMPNS_NEW 0x0042 >> # define SO_TIMESTAMPING_NEW 0x0043 >> >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  define SO_RCVTIMEO SO_RCVTIMEO_NEW >> #  define SO_SNDTIMEO SO_SNDTIMEO_NEW >> #  define SO_TIMESTAMP SO_TIMESTAMP_NEW >> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h b/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h >> index 4e48634edc..9ce67b289d 100644 >> --- a/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h >> @@ -28,7 +28,7 @@ >> >> struct stat >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     __dev_t st_dev;            /* Device.  */ >> @@ -85,7 +85,7 @@ struct stat >> #ifdef __USE_LARGEFILE64 >> struct stat64 >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;            /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h >> index db783c28d4..ed8d47c9b6 100644 >> --- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h >> +++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h >> @@ -26,7 +26,7 @@ >>    The type `struct msg' is opaque.  */ >> struct msqid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm msg_perm;    /* structure describing operation permission */ >> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h >> index 1c8a3693db..b9e729b8b4 100644 >> --- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h >> +++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a set of semaphores.  */ >> struct semid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm sem_perm;   /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h >> index 35a0cc36ab..7885d2ab25 100644 >> --- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h >> +++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a shared memory segment.  */ >> struct shmid_ds >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     struct ipc_perm shm_perm;        /* operation permission struct */ >> diff --git a/sysdeps/unix/sysv/linux/sys/epoll.h b/sysdeps/unix/sysv/linux/sys/epoll.h >> index 9b51e3bd14..fc8dce45c8 100644 >> --- a/sysdeps/unix/sysv/linux/sys/epoll.h >> +++ b/sysdeps/unix/sysv/linux/sys/epoll.h >> @@ -140,7 +140,7 @@ extern int epoll_pwait (int __epfd, struct epoll_event *__events, >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int epoll_pwait2 (int __epfd, struct epoll_event *__events, >>              int __maxevents, const struct timespec *__timeout, >>              const __sigset_t *__ss) >> diff --git a/sysdeps/unix/sysv/linux/sys/prctl.h b/sysdeps/unix/sysv/linux/sys/prctl.h >> index b13b846261..79a9b31273 100644 >> --- a/sysdeps/unix/sysv/linux/sys/prctl.h >> +++ b/sysdeps/unix/sysv/linux/sys/prctl.h >> @@ -38,7 +38,7 @@ >> __BEGIN_DECLS >> >> /* Control process execution.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int prctl (int __option, ...) __THROW; >> #else >> # ifdef __REDIRECT >> diff --git a/sysdeps/unix/sysv/linux/sys/timerfd.h b/sysdeps/unix/sysv/linux/sys/timerfd.h >> index 19d0cbfae0..f66ece306a 100644 >> --- a/sysdeps/unix/sysv/linux/sys/timerfd.h >> +++ b/sysdeps/unix/sysv/linux/sys/timerfd.h >> @@ -47,7 +47,7 @@ extern int timerfd_settime (int __ufd, int __flags, >>                 const struct itimerspec *__utmr, >>                 struct itimerspec *__otmr) __THROW; >> >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # if defined(__REDIRECT_NTH) >> extern int __REDIRECT_NTH (timerfd_settime, >>                            (int __ufd, int __flags, >> @@ -62,7 +62,7 @@ extern int __REDIRECT_NTH (timerfd_settime, >> /* Return the next expiration time of UFD.  */ >> extern int timerfd_gettime (int __ufd, struct itimerspec *__otmr) __THROW; >> >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # if defined(__REDIRECT_NTH) >> extern int __REDIRECT_NTH (timerfd_gettime, (int __ufd, >>                                              struct itimerspec *__otmr), >> diff --git a/sysdeps/unix/sysv/linux/sys/timex.h b/sysdeps/unix/sysv/linux/sys/timex.h >> index 28ce022253..568748d767 100644 >> --- a/sysdeps/unix/sysv/linux/sys/timex.h >> +++ b/sysdeps/unix/sysv/linux/sys/timex.h >> @@ -54,7 +54,7 @@ struct ntptimeval >> >> __BEGIN_DECLS >> >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int adjtimex (struct timex *__ntx) __THROW __nonnull ((1)); >> extern int ntp_gettimex (struct ntptimeval *__ntv) __THROW __nonnull ((1)); >> >> diff --git a/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h b/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h >> index 21aa315d8d..b8b580fbde 100644 >> --- a/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h >> +++ b/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h >> @@ -25,7 +25,7 @@ >> >> struct stat >>   { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>     __dev_t st_dev;        /* Device.  */ >> @@ -102,7 +102,7 @@ struct stat >> /* Note stat64 has the same shape as stat for x86-64.  */ >> struct stat64 >>   { >> -# ifdef __USE_TIME_BITS64 >> +# ifdef __USE_TIME64_REDIRECTS >> #  include >> # else >>     __dev_t st_dev;        /* Device.  */ >> diff --git a/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h >> index 9f3d170b65..81867c0316 100644 >> --- a/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h >> +++ b/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h >> @@ -23,7 +23,7 @@ >> /* Data structure describing a set of semaphores.  */ >> struct semid_ds >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> # include >> #else >>   struct ipc_perm sem_perm;   /* operation permission struct */ >> diff --git a/sysvipc/sys/msg.h b/sysvipc/sys/msg.h >> index d0388b0522..4178ad9955 100644 >> --- a/sysvipc/sys/msg.h >> +++ b/sysvipc/sys/msg.h >> @@ -58,7 +58,7 @@ struct msgbuf >> __BEGIN_DECLS >> >> /* Message queue control operation.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int msgctl (int __msqid, int __cmd, struct msqid_ds *__buf) __THROW; >> #else >> # ifdef __REDIRECT_NTH >> diff --git a/sysvipc/sys/sem.h b/sysvipc/sys/sem.h >> index 5d9ec39296..812f1303b3 100644 >> --- a/sysvipc/sys/sem.h >> +++ b/sysvipc/sys/sem.h >> @@ -48,7 +48,7 @@ struct sembuf >> __BEGIN_DECLS >> >> /* Semaphore control operation.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int semctl (int __semid, int __semnum, int __cmd, ...) __THROW; >> #else >> # ifdef __REDIRECT_NTH >> @@ -68,7 +68,7 @@ extern int semop (int __semid, struct sembuf *__sops, size_t __nsops) __THROW; >> >> #ifdef __USE_GNU >> /* Operate on semaphore with timeout.  */ >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int semtimedop (int __semid, struct sembuf *__sops, size_t __nsops, >>                const struct timespec *__timeout) __THROW; >> # else >> diff --git a/sysvipc/sys/shm.h b/sysvipc/sys/shm.h >> index 04191656d5..496e57ef45 100644 >> --- a/sysvipc/sys/shm.h >> +++ b/sysvipc/sys/shm.h >> @@ -46,7 +46,7 @@ __BEGIN_DECLS >>    facility.  The definition is found in XPG4.2.  */ >> >> /* Shared memory control operation.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int shmctl (int __shmid, int __cmd, struct shmid_ds *__buf) __THROW; >> #else >> # ifdef __REDIRECT_NTH >> diff --git a/time/bits/types/struct_timespec.h b/time/bits/types/struct_timespec.h >> index 489e81136d..1141015f27 100644 >> --- a/time/bits/types/struct_timespec.h >> +++ b/time/bits/types/struct_timespec.h >> @@ -10,14 +10,14 @@ >>    has nanoseconds instead of microseconds.  */ >> struct timespec >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >>   __time64_t tv_sec;        /* Seconds.  */ >> #else >>   __time_t tv_sec;        /* Seconds.  */ >> #endif >> #if __WORDSIZE == 64 \ >>   || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \ >> -  || (__TIMESIZE == 32 && !defined __USE_TIME_BITS64) >> +  || (__TIMESIZE == 32 && !defined __USE_TIME64_REDIRECTS) >>   __syscall_slong_t tv_nsec;    /* Nanoseconds.  */ >> #else >> # if __BYTE_ORDER == __BIG_ENDIAN >> diff --git a/time/bits/types/struct_timeval.h b/time/bits/types/struct_timeval.h >> index 3466137c35..0c8e88c82c 100644 >> --- a/time/bits/types/struct_timeval.h >> +++ b/time/bits/types/struct_timeval.h >> @@ -7,7 +7,7 @@ >>    microsecond but also has a range of years.  */ >> struct timeval >> { >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >>   __time64_t tv_sec;        /* Seconds.  */ >>   __suseconds64_t tv_usec;    /* Microseconds.  */ >> #else >> diff --git a/time/bits/types/time_t.h b/time/bits/types/time_t.h >> index 84d67f6ac3..00cde92c62 100644 >> --- a/time/bits/types/time_t.h >> +++ b/time/bits/types/time_t.h >> @@ -4,7 +4,7 @@ >> #include >> >> /* Returned by `time'.  */ >> -#ifdef __USE_TIME_BITS64 >> +#ifdef __USE_TIME64_REDIRECTS >> typedef __time64_t time_t; >> #else >> typedef __time_t time_t; >> diff --git a/time/sys/time.h b/time/sys/time.h >> index c8708198a5..8c3d0c3022 100644 >> --- a/time/sys/time.h >> +++ b/time/sys/time.h >> @@ -63,7 +63,7 @@ struct timezone >>    use localtime etc. instead. >>    This function itself is semi-obsolete; >>    most callers should use time or clock_gettime instead. */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern int gettimeofday (struct timeval *__restrict __tv, >>              void *__restrict __tz) __THROW __nonnull ((1)); >> #else >> @@ -77,7 +77,7 @@ extern int __REDIRECT_NTH (gettimeofday, (struct timeval *__restrict __tv, >> #endif >> >> #ifdef __USE_MISC >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Set the current time of day and timezone information. >>    This call is restricted to the super-user. >>    Setting the timezone in this way is obsolete, but we don't yet >> @@ -143,7 +143,7 @@ typedef enum __itimer_which __itimer_which_t; >> typedef int __itimer_which_t; >> #endif >> >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> /* Set *VALUE to the current setting of timer WHICH. >>    Return 0 on success, -1 on errors.  */ >> extern int getitimer (__itimer_which_t __which, >> @@ -184,7 +184,7 @@ extern int __REDIRECT_NTH (utimes, (const char *__file, >> #endif >> >> #ifdef __USE_MISC >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Same as `utimes', but does not follow symbolic links.  */ >> extern int lutimes (const char *__file, const struct timeval __tvp[2]) >>      __THROW __nonnull ((1)); >> @@ -207,7 +207,7 @@ extern int __REDIRECT_NTH (futimes, (int __fd, const struct timeval __tvp[2]), >> #endif >> >> #ifdef __USE_GNU >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Change the access time of FILE relative to FD to TVP[0] and the >>    modification time of FILE to TVP[1].  If TVP is a null pointer, use >>    the current time instead.  Returns 0 on success, -1 on errors.  */ >> diff --git a/time/time.h b/time/time.h >> index 1609aaeffa..3785dc608f 100644 >> --- a/time/time.h >> +++ b/time/time.h >> @@ -71,7 +71,7 @@ __BEGIN_DECLS >>    The result / CLOCKS_PER_SEC is program time in seconds.  */ >> extern clock_t clock (void) __THROW; >> >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> /* Return the current time and put it in *TIMER if TIMER is not NULL.  */ >> extern time_t time (time_t *__timer) __THROW; >> >> @@ -127,7 +127,7 @@ extern char *strptime_l (const char *__restrict __s, >> #endif >> >> >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> /* Return the `struct tm' representation of *TIMER >>    in Universal Coordinated Time (aka Greenwich Mean Time).  */ >> extern struct tm *gmtime (const time_t *__timer) __THROW; >> @@ -149,7 +149,7 @@ extern struct tm *__REDIRECT_NTH (localtime, (const time_t *__timer), >> >> >> #if defined __USE_POSIX || __GLIBC_USE (ISOC2X) >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Return the `struct tm' representation of *TIMER in UTC, >>    using *TP to store the result.  */ >> extern struct tm *gmtime_r (const time_t *__restrict __timer, >> @@ -180,7 +180,7 @@ extern struct tm*__REDIRECT_NTH (localtime_r, (const time_t *__restrict __t, >> extern char *asctime (const struct tm *__tp) __THROW; >> >> /* Equivalent to `asctime (localtime (timer))'.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern char *ctime (const time_t *__timer) __THROW; >> #else >> # ifdef __REDIRECT_NTH >> @@ -199,7 +199,7 @@ extern char *asctime_r (const struct tm *__restrict __tp, >>             char *__restrict __buf) __THROW; >> >> /* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'.  */ >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> extern char *ctime_r (const time_t *__restrict __timer, >>               char *__restrict __buf) __THROW; >> #else >> @@ -242,7 +242,7 @@ extern long int timezone; >> >> >> #if defined __USE_MISC || __GLIBC_USE (ISOC2X) >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Like `mktime', but for TP represents Universal Time, not local time.  */ >> extern time_t timegm (struct tm *__tp) __THROW; >> # else >> @@ -259,7 +259,7 @@ extern time_t __REDIRECT_NTH (timegm, (struct tm *__tp), __timegm64); >> /* Miscellaneous functions many Unices inherited from the public domain >>    localtime package.  These are included only for compatibility.  */ >> >> -#ifndef __USE_TIME_BITS64 >> +#ifndef __USE_TIME64_REDIRECTS >> /* Another name for `mktime'.  */ >> extern time_t timelocal (struct tm *__tp) __THROW; >> #else >> @@ -274,7 +274,7 @@ extern int dysize (int __year) __THROW  __attribute__ ((__const__)); >> >> >> #ifdef __USE_POSIX199309 >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Pause execution for a number of nanoseconds. >> >>    This function is a cancellation point and therefore not marked with >> @@ -320,7 +320,7 @@ extern int __REDIRECT_NTH (clock_settime, (clockid_t __clock_id, const struct >> >>    This function is a cancellation point and therefore not marked with >>    __THROW.  */ >> -#  ifndef __USE_TIME_BITS64 >> +#  ifndef __USE_TIME64_REDIRECTS >> extern int clock_nanosleep (clockid_t __clock_id, int __flags, >>                 const struct timespec *__req, >>                 struct timespec *__rem); >> @@ -349,7 +349,7 @@ extern int timer_create (clockid_t __clock_id, >> extern int timer_delete (timer_t __timerid) __THROW; >> >> /* Set timer TIMERID to VALUE, returning old value in OVALUE.  */ >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> extern int timer_settime (timer_t __timerid, int __flags, >>               const struct itimerspec *__restrict __value, >>               struct itimerspec *__restrict __ovalue) __THROW; >> @@ -379,7 +379,7 @@ extern int timer_getoverrun (timer_t __timerid) __THROW; >> >> >> #ifdef __USE_ISOC11 >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Set TS to calendar time based in time base BASE.  */ >> extern int timespec_get (struct timespec *__ts, int __base) >>      __THROW __nonnull ((1)); >> @@ -395,7 +395,7 @@ extern int __REDIRECT_NTH (timespec_get, (struct timespec *__ts, int __base), >> >> >> #if __GLIBC_USE (ISOC2X) >> -# ifndef __USE_TIME_BITS64 >> +# ifndef __USE_TIME64_REDIRECTS >> /* Set TS to resolution of time base BASE.  */ >> extern int timespec_getres (struct timespec *__ts, int __base) >>      __THROW; >> --  >> 2.34.1 >> >