From patchwork Wed Jan 17 11:47:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 84245 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8FCB5385B512 for ; Wed, 17 Jan 2024 11:48:22 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-oi1-x22d.google.com (mail-oi1-x22d.google.com [IPv6:2607:f8b0:4864:20::22d]) by sourceware.org (Postfix) with ESMTPS id 505F93857432 for ; Wed, 17 Jan 2024 11:47:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 505F93857432 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 505F93857432 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::22d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705492074; cv=none; b=tPi2Ut+TQiN/Bk+ejZ2wS4WxGNlv8PRb9d/WxRUi91ezSs7PNfU0jLcIPEQhLdr84eOxzVJ2EuVFSzfA3rpohRgHewGBZm33Ch6i/wnQropJhSlJuL3g2q2rx/CFtTH7yBbZ0OOWqAr0C6zcUjIUjATLRpYKalYABXttTmMSOGc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705492074; c=relaxed/simple; bh=XU4FamWJqvaCc76BI706LrhyXUF5m/ZQC/GZAWFnEdA=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=aBC090BK41muFx1mNixM3XLM2sdBLV/gFfCsHJIVacyZ6mjxcgneaTa+9qomdfp5RSrekg+HXXcpUKSd4pkUVhega5usFLItiv9YCXurkhJIoUNo1AixcoQVXJiNbOFUD1xZdxZkPkdhcFyzsxud2WFcxyP4ld1825YsQ9l+jRw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-oi1-x22d.google.com with SMTP id 5614622812f47-3bb53e20a43so7378937b6e.1 for ; Wed, 17 Jan 2024 03:47:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1705492067; x=1706096867; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Q7s+BkWmuwa86aGj9jF67Ynh1ym5QtMLbQ578TW+ccg=; b=y85v18EYY/6buEvoqUa+KDn8ixNO0dRzt2oiq1Zrb7Tq/uMZeIpO2xL1+QSXmvyaUB glaZcIPMoGCkcX2hbf1FVo5NUSvzL2l5SBhcFe76Hozarp1leQMxPbQuRiK6CT2EM0Io OCPDJGGAXocBi7CM3GrPy/Zwo53zGOhquFvqpsNURPzyWTBjHbgNe2K3nNpscv9iqSly Dd5w0K1FTV/wVqNsnHXRDuuQ3riXlOIoZwlyx7UvcUjPUcFuFd5Owjj3r5Ii28LO3dOd 5Sli+uAMO0nyPngcGcFvIBpCM4oEiPKveIgMvd02yT0f2cCfQgX9k0mncYUkwveLgw94 yGYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705492067; x=1706096867; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Q7s+BkWmuwa86aGj9jF67Ynh1ym5QtMLbQ578TW+ccg=; b=Q9yjioeB41pL69X3YmT2wfieO9fWmU/2FVZ76jW9KO9S7fy74IMYSDU94k/bXpHU9G rzLxlwNVuemd+bWi2sMTjj3lNRadoJJlswcCHnBL645KwtjKrgTIWI6uDwDbLHIQF5Y8 Wj5ZtKQaP/VhdxpuZeyEbmNQQmBUNlDDT2Cwr4uuf2WEz4X6GBdbk6sshzPykM1+V97c TN5jDkPT0/upZ8oATHzqGetHzg+Prn/vsFyPUCRmX+2hokvHRaTbXmGBa0KY/chZI039 3gu27KZYI5qAQHr2O/PE1yS1r75eQcsSzuqa8lvcXZ0JsGMCJw4nRm3ADiFpkcDqsCZc so+g== X-Gm-Message-State: AOJu0YzMLTrRNaIztgWeMzRX8K+Zwu2+ZCTNwPMcCqZYBXxjmDOlsepN 9I2uRCmwCBhx4UzGw1tWGH3V1LA1ECHeJ0brzCNEvDTLcOY= X-Google-Smtp-Source: AGHT+IGZ3XDQadN8SUEmKmTNfR/YYN6giRxvas4/9btLCO6gIPPYdEMqGDwWd5PZRWPq+A2vNgi3gA== X-Received: by 2002:a05:6808:171c:b0:3bd:5f60:cb9 with SMTP id bc28-20020a056808171c00b003bd5f600cb9mr10360363oib.97.1705492066101; Wed, 17 Jan 2024 03:47:46 -0800 (PST) Received: from mandiga.. ([2804:1b3:a7c2:2787:f7ea:8e32:ad62:f45a]) by smtp.gmail.com with ESMTPSA id d17-20020a056a00199100b006d7f1ae421csm1264682pfl.145.2024.01.17.03.47.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jan 2024 03:47:45 -0800 (PST) From: Adhemerval Zanella To: libc-alpha@sourceware.org Cc: Jan Henrik Weinstock , Florian Weimer Subject: [PATCH] Always define __USE_TIME_BITS64 Date: Wed, 17 Jan 2024 08:47:41 -0300 Message-Id: <20240117114741.1892749-1-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org 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 time_t size (by defining the _TIME_BITS for each module). The 64 bit time_t redirects are now used for __USE_TIME_BITS64 along with __TIMESIZE equal to 32 (since it is the size of the default ABI). There is no expected change in semantic or code generation. On the libc-help it was raised that this might break applications that use __USE_TIME_BITS64 to implement redirection. In this case, since the code is already using an internal interface, it can also check for __TIMESIZE similar to what installed headers do. 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 --- 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 | 12 +++++----- support/timespec.h | 2 +- support/xtime.h | 2 +- support/xunistd.h | 2 +- sysdeps/generic/features-time64.h | 1 + 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 | 3 ++- .../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 | 8 +++++++ .../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(+), 139 deletions(-) diff --git a/io/bits/poll2.h b/io/bits/poll2.h index 6152a8c5e4..c92af1df90 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 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..efb06807cf 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 # ifndef __USE_FILE_OFFSET64 extern int fcntl (int __fd, int __cmd, ...); # else diff --git a/io/fts.h b/io/fts.h index 61f95bb441..3d59cc28a8 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 # 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..aacf0f2c7b 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 # 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 # 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..675070fcf6 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..86caf53a38 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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..9a4f18316c 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 __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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..5be5b74b8a 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..f0aa3588bb 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..68476d9924 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 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..9eb32d1bbb 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..f1d1da8cd5 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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..58a8f378d1 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..960aaa1199 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..2d78fd0655 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # define aio_suspend __aio_suspend_time64 # else # define aio_suspend aio_suspend64 diff --git a/rt/mqueue.h b/rt/mqueue.h index 787cc36df2..0519040581 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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..697c74f4e4 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..1c2114e8cf 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 extern int sendmmsg (int __fd, struct mmsghdr *__vmessages, unsigned int __vlen, int __flags); # else @@ -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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..6123e52fbf 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..0c9efe734e 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..04409c64ce 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 # 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..31efba67e9 100644 --- a/sysdeps/generic/features-time64.h +++ b/sysdeps/generic/features-time64.h @@ -17,3 +17,4 @@ . */ /* The generic configuration only support _TIME_BITS=32. */ +#define __USE_TIME_BITS64 0 diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h index 1607fdf29a..44f4fb8e5e 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..c56ed5ed8c 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..e266f2ffb1 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..6f521acd94 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # include #else __dev_t st_dev; /* Device. */ @@ -89,7 +89,7 @@ struct stat #ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..db5d3884db 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..45cfb24b33 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..9c4af4d0b9 100644 --- a/sysdeps/unix/sysv/linux/bits/timex.h +++ b/sysdeps/unix/sysv/linux/bits/timex.h @@ -25,7 +25,8 @@ struct timex { -# if defined __USE_TIME_BITS64 || (__TIMESIZE == 64 && __WORDSIZE == 32) +# if (__USE_TIME_BITS64 && __TIMESIZE == 32) \ + || (__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..0f6e3abdf1 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..d23fce59c5 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..1a4df5f2bf 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..8708c9d75e 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # include #else __dev_t st_dev; /* Device. */ @@ -88,7 +88,7 @@ struct stat #ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..4b0336ec4b 100644 --- a/sysdeps/unix/sysv/linux/features-time64.h +++ b/sysdeps/unix/sysv/linux/features-time64.h @@ -26,6 +26,8 @@ # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" # elif __TIMESIZE == 32 # define __USE_TIME_BITS64 1 +# else +# define __USE_TIME_BITS64 0 # endif # elif _TIME_BITS == 32 # if __TIMESIZE > 32 @@ -34,4 +36,10 @@ # else # error Invalid _TIME_BITS value (can only be 32 or 64-bit) # endif +#else +# if __TIMESIZE == 64 +# define __USE_TIME_BITS64 1 +# else +# define __USE_TIME_BITS64 0 +# endif #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..48e1e46035 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..4e9dd81f98 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # include #else __dev_t st_dev; /* Device. */ @@ -89,7 +89,7 @@ struct stat #ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..fc923d2b6b 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..8441c4ef2c 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..c1db0f75b4 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..7ed9ce126d 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # include #else __dev_t st_dev; /* Device. */ @@ -86,7 +86,7 @@ struct stat #ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..b605e645ec 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # include #else unsigned long long st_dev; /* Device. */ @@ -119,7 +119,7 @@ struct stat #ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..47bdaedf7c 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..8103d7b1a5 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # include # else unsigned long int st_dev; @@ -88,7 +88,7 @@ struct stat # ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # include # else unsigned long int st_dev; @@ -131,7 +131,7 @@ struct stat64 struct stat { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # include # else __dev_t st_dev; @@ -189,7 +189,7 @@ struct stat #ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..ac6fc5ed3f 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..46ee56514b 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..6042b1090e 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..5fe46852aa 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # include #else __dev_t st_dev; /* Device. */ @@ -88,7 +88,7 @@ struct stat #ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..d854b97baa 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..788c9fb595 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # include # else __dev_t st_dev; /* Device. */ @@ -85,7 +85,7 @@ struct stat # ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..95af975834 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..0f26dff38e 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..112c01f2b2 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..2d8174bbe0 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # include # else __dev_t st_dev; /* Device. */ @@ -166,7 +166,7 @@ struct stat64 # else struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..001eff5ec6 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # include #else __dev_t st_dev; /* Device. */ @@ -89,7 +89,7 @@ struct stat #ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..cfbde40df6 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..f987d686a1 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # include #else __dev_t st_dev; /* Device. */ @@ -85,7 +85,7 @@ struct stat #ifdef __USE_LARGEFILE64 struct stat64 { -# ifdef __USE_TIME_BITS64 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..7633dd6606 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..b20b1775e8 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..73a73e67d0 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..94b32263d2 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..e0e81ab364 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..6c15ec54b5 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..b2efa6ff20 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..fc7ef4ec55 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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 +# if __USE_TIME_BITS64 && __TIMESIZE == 32 # 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..cb9eacff58 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 # include #else struct ipc_perm sem_perm; /* operation permission struct */ diff --git a/sysvipc/sys/msg.h b/sysvipc/sys/msg.h index d0388b0522..ba0ad8a68f 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..45664bdcf2 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..b9a2502a39 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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..81df6cbe78 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 __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 && !__USE_TIME_BITS64) __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..acf36f7212 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 __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..e80b7d10f3 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 +#if __USE_TIME_BITS64 && __TIMESIZE == 32 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..9a1d96038f 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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..69d519669c 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +#if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* 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 +# if !__USE_TIME_BITS64 || __TIMESIZE == 64 /* Set TS to resolution of time base BASE. */ extern int timespec_getres (struct timespec *__ts, int __base) __THROW;