[COMMITTED] Set default __TIMESIZE default to 64

Message ID 20211223144319.3093308-1-adhemerval.zanella@linaro.org
State Committed
Commit a4b413135535c83a25a8b2d661bf1c75006dfa15
Headers
Series [COMMITTED] Set default __TIMESIZE default to 64 |

Commit Message

Adhemerval Zanella Dec. 23, 2021, 2:43 p.m. UTC
  This is expected size for newer ABIs.
---
 bits/timesize.h                               |  4 +---
 .../linux/arc => mach/hurd}/bits/timesize.h   | 11 ++++-----
 sysdeps/unix/sysv/linux/arm/bits/timesize.h   | 20 ++++++++++++++++
 sysdeps/unix/sysv/linux/csky/bits/timesize.h  | 20 ++++++++++++++++
 sysdeps/unix/sysv/linux/hppa/bits/timesize.h  | 20 ++++++++++++++++
 sysdeps/unix/sysv/linux/m68k/bits/timesize.h  | 20 ++++++++++++++++
 .../sysv/linux/microblaze/bits/timesize.h     | 20 ++++++++++++++++
 sysdeps/unix/sysv/linux/mips/bits/timesize.h  | 24 +++++++++++++++++++
 .../linux/{riscv => nios2}/bits/timesize.h    | 10 ++++----
 .../linux/powerpc/powerpc32/bits/timesize.h   | 20 ++++++++++++++++
 .../sysv/linux/s390/s390-32/bits/timesize.h   | 20 ++++++++++++++++
 sysdeps/unix/sysv/linux/sh/bits/timesize.h    | 20 ++++++++++++++++
 .../sysv/linux/sparc/sparc32/bits/timesize.h  | 20 ++++++++++++++++
 sysdeps/unix/sysv/linux/x86/bits/timesize.h   |  2 ++
 14 files changed, 216 insertions(+), 15 deletions(-)
 rename sysdeps/{unix/sysv/linux/arc => mach/hurd}/bits/timesize.h (74%)
 create mode 100644 sysdeps/unix/sysv/linux/arm/bits/timesize.h
 create mode 100644 sysdeps/unix/sysv/linux/csky/bits/timesize.h
 create mode 100644 sysdeps/unix/sysv/linux/hppa/bits/timesize.h
 create mode 100644 sysdeps/unix/sysv/linux/m68k/bits/timesize.h
 create mode 100644 sysdeps/unix/sysv/linux/microblaze/bits/timesize.h
 create mode 100644 sysdeps/unix/sysv/linux/mips/bits/timesize.h
 rename sysdeps/unix/sysv/linux/{riscv => nios2}/bits/timesize.h (77%)
 create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/bits/timesize.h
 create mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/bits/timesize.h
 create mode 100644 sysdeps/unix/sysv/linux/sh/bits/timesize.h
 create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc32/bits/timesize.h
  

Comments

Joseph Myers Dec. 30, 2021, 9:58 p.m. UTC | #1
On Thu, 23 Dec 2021, Adhemerval Zanella via Libc-alpha wrote:

>  .../linux/powerpc/powerpc32/bits/timesize.h   | 20 ++++++++++++++++
>  .../sysv/linux/s390/s390-32/bits/timesize.h   | 20 ++++++++++++++++
>  .../sysv/linux/sparc/sparc32/bits/timesize.h  | 20 ++++++++++++++++

There should be no installed headers in such sub-architecture sysdeps 
directories (unless the header is identical for all sub-architecture 
variants of an architecture but required to be in the sub-architecture 
directory to get the right header found in the sysdeps directory 
ordering), because installed headers should be suitable to share between 
all ABIs for an architecture.  Instead, there need to be bits/timesize.h 
headers for powerpc, s390 and sparc that contain conditionals to determine 
the correct value of __TIMESIZE for a given compilation.

> diff --git a/sysdeps/unix/sysv/linux/mips/bits/timesize.h b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
> new file mode 100644
> index 0000000000..95a27ad5b6
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
> @@ -0,0 +1,24 @@
> +/* Bit size of the time_t type at glibc build time, Linux/MIPS.
> +   Copyright (C) 2021 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <https://www.gnu.org/licenses/>.  */
> +
> +/* Size in bits of the 'time_t' type of the default ABI.  */
> +#if _MIPS_SIM == _ABI64

Headers checking _MIPS_SIM like this should include <sgidefs.h> to ensure 
all the _ABI* macros are defined (GCC only predefines the one for the 
current ABI, so while the code would work correctly for other ABIs, 
there's the potential for -Wundef warnings if <sgidefs.h> hasn't already 
been included).
  
Adhemerval Zanella Dec. 30, 2021, 10:38 p.m. UTC | #2
On 30/12/2021 18:58, Joseph Myers wrote:
> On Thu, 23 Dec 2021, Adhemerval Zanella via Libc-alpha wrote:
> 
>>  .../linux/powerpc/powerpc32/bits/timesize.h   | 20 ++++++++++++++++
>>  .../sysv/linux/s390/s390-32/bits/timesize.h   | 20 ++++++++++++++++
>>  .../sysv/linux/sparc/sparc32/bits/timesize.h  | 20 ++++++++++++++++
> 
> There should be no installed headers in such sub-architecture sysdeps 
> directories (unless the header is identical for all sub-architecture 
> variants of an architecture but required to be in the sub-architecture 
> directory to get the right header found in the sysdeps directory 
> ordering), because installed headers should be suitable to share between 
> all ABIs for an architecture.  Instead, there need to be bits/timesize.h 
> headers for powerpc, s390 and sparc that contain conditionals to determine 
> the correct value of __TIMESIZE for a given compilation.

Ok, I will fix it (I though about it, but I was not sure sure if this was
the correct approach).

> 
>> diff --git a/sysdeps/unix/sysv/linux/mips/bits/timesize.h b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
>> new file mode 100644
>> index 0000000000..95a27ad5b6
>> --- /dev/null
>> +++ b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
>> @@ -0,0 +1,24 @@
>> +/* Bit size of the time_t type at glibc build time, Linux/MIPS.
>> +   Copyright (C) 2021 Free Software Foundation, Inc.
>> +   This file is part of the GNU C Library.
>> +
>> +   The GNU C Library is free software; you can redistribute it and/or
>> +   modify it under the terms of the GNU Lesser General Public
>> +   License as published by the Free Software Foundation; either
>> +   version 2.1 of the License, or (at your option) any later version.
>> +
>> +   The GNU C Library is distributed in the hope that it will be useful,
>> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
>> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>> +   Lesser General Public License for more details.
>> +
>> +   You should have received a copy of the GNU Lesser General Public
>> +   License along with the GNU C Library; if not, see
>> +   <https://www.gnu.org/licenses/>.  */
>> +
>> +/* Size in bits of the 'time_t' type of the default ABI.  */
>> +#if _MIPS_SIM == _ABI64
> 
> Headers checking _MIPS_SIM like this should include <sgidefs.h> to ensure 
> all the _ABI* macros are defined (GCC only predefines the one for the 
> current ABI, so while the code would work correctly for other ABIs, 
> there's the potential for -Wundef warnings if <sgidefs.h> hasn't already 
> been included).
> 

Ack, I will fix it as well.
  

Patch

diff --git a/bits/timesize.h b/bits/timesize.h
index 11a9c9a499..2b85c51560 100644
--- a/bits/timesize.h
+++ b/bits/timesize.h
@@ -16,7 +16,5 @@ 
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
-#include <bits/wordsize.h>
-
 /* Size in bits of the 'time_t' type of the default ABI.  */
-#define __TIMESIZE	__WORDSIZE
+#define __TIMESIZE	64
diff --git a/sysdeps/unix/sysv/linux/arc/bits/timesize.h b/sysdeps/mach/hurd/bits/timesize.h
similarity index 74%
rename from sysdeps/unix/sysv/linux/arc/bits/timesize.h
rename to sysdeps/mach/hurd/bits/timesize.h
index 44fea80ca4..bf94764d98 100644
--- a/sysdeps/unix/sysv/linux/arc/bits/timesize.h
+++ b/sysdeps/mach/hurd/bits/timesize.h
@@ -1,5 +1,5 @@ 
-/* Bit size of the time_t type at glibc build time, general case.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+/* Bit size of the time_t type at glibc build time, Hurd.
+   Copyright (C) 2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,8 +14,7 @@ 
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
-#include <bits/wordsize.h>
-
-#define __TIMESIZE	64
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/arm/bits/timesize.h b/sysdeps/unix/sysv/linux/arm/bits/timesize.h
new file mode 100644
index 0000000000..4d3e7c2259
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/bits/timesize.h
@@ -0,0 +1,20 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/ARM.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/csky/bits/timesize.h b/sysdeps/unix/sysv/linux/csky/bits/timesize.h
new file mode 100644
index 0000000000..1a299269f0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/bits/timesize.h
@@ -0,0 +1,20 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/csky.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/timesize.h b/sysdeps/unix/sysv/linux/hppa/bits/timesize.h
new file mode 100644
index 0000000000..ec57054979
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/timesize.h
@@ -0,0 +1,20 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/HPPA.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/timesize.h b/sysdeps/unix/sysv/linux/m68k/bits/timesize.h
new file mode 100644
index 0000000000..9da243eb04
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/bits/timesize.h
@@ -0,0 +1,20 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/m68k.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h b/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h
new file mode 100644
index 0000000000..2f0214790a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h
@@ -0,0 +1,20 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/MicroBlaze.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/mips/bits/timesize.h b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
new file mode 100644
index 0000000000..95a27ad5b6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
@@ -0,0 +1,24 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/MIPS.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#if _MIPS_SIM == _ABI64
+# define __TIMESIZE	64
+#else
+# define __TIMESIZE	32
+#endif
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/timesize.h b/sysdeps/unix/sysv/linux/nios2/bits/timesize.h
similarity index 77%
rename from sysdeps/unix/sysv/linux/riscv/bits/timesize.h
rename to sysdeps/unix/sysv/linux/nios2/bits/timesize.h
index 1843ad57d8..29d1730d39 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/nios2/bits/timesize.h
@@ -1,5 +1,5 @@ 
-/* Bit size of the time_t type at glibc build time, RISC-V case.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+/* Bit size of the time_t type at glibc build time, Linux/NIOS2.
+   Copyright (C) 2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -16,7 +16,5 @@ 
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
-#include <bits/wordsize.h>
-
-/* RV32 and RV64 both use 64-bit time_t */
-#define __TIMESIZE	64
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/bits/timesize.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/bits/timesize.h
new file mode 100644
index 0000000000..33a8bf9862
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/bits/timesize.h
@@ -0,0 +1,20 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/PowerPC 32-bits.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/bits/timesize.h b/sysdeps/unix/sysv/linux/s390/s390-32/bits/timesize.h
new file mode 100644
index 0000000000..a3eb9455cd
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/bits/timesize.h
@@ -0,0 +1,20 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/s390 32-bits.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/sh/bits/timesize.h b/sysdeps/unix/sysv/linux/sh/bits/timesize.h
new file mode 100644
index 0000000000..a9ad07b823
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/bits/timesize.h
@@ -0,0 +1,20 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/sh.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/bits/timesize.h b/sysdeps/unix/sysv/linux/sparc/sparc32/bits/timesize.h
new file mode 100644
index 0000000000..586f4d9fdc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/bits/timesize.h
@@ -0,0 +1,20 @@ 
+/* Bit size of the time_t type at glibc build time, Linux/sparc 32-bits.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	32
diff --git a/sysdeps/unix/sysv/linux/x86/bits/timesize.h b/sysdeps/unix/sysv/linux/x86/bits/timesize.h
index 17e943a787..e8f5cd8190 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/timesize.h
@@ -16,6 +16,8 @@ 
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
+#include <bits/wordsize.h>
+
 #if defined __x86_64__ && defined __ILP32__
 /* For x32, time is 64-bit even though word size is 32-bit.  */
 # define __TIMESIZE	64