master
 1/* Features part to handle 64-bit time_t support.
 2   Copyright (C) 2021-2025 Free Software Foundation, Inc.
 3   This file is part of the GNU C Library.
 4
 5   The GNU C Library is free software; you can redistribute it and/or
 6   modify it under the terms of the GNU Lesser General Public
 7   License as published by the Free Software Foundation; either
 8   version 2.1 of the License, or (at your option) any later version.
 9
10   The GNU C Library is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   Lesser General Public License for more details.
14
15   You should have received a copy of the GNU Lesser General Public
16   License along with the GNU C Library; if not, see
17   <https://www.gnu.org/licenses/>.  */
18
19/* We need to know the word size in order to check the time size.  */
20#include <bits/wordsize.h>
21#include <bits/timesize.h>
22
23#if defined _TIME_BITS
24# if _TIME_BITS == 64
25#  if ! defined (_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64
26#   error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
27#  endif
28#  define __USE_TIME_BITS64	1
29# elif _TIME_BITS == 32
30#  if __TIMESIZE > 32
31#   error "_TIME_BITS=32 is not compatible with __TIMESIZE > 32"
32#  endif
33# else
34#  error Invalid _TIME_BITS value (can only be 32 or 64-bit)
35# endif
36#elif __TIMESIZE == 64
37# define __USE_TIME_BITS64      1
38#endif
39
40#if defined __USE_TIME_BITS64 && __TIMESIZE == 32
41# define __USE_TIME64_REDIRECTS 1
42#endif