From ff88ee7edfaa439e23c42fccaf3a36cd5f041894 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 4 Oct 2016 16:17:59 +0000 Subject: Fix LONG_WIDTH, ULONG_WIDTH include ordering issue. As described in , there is an include ordering issue with the integer width macros in glibc's , where definitions conditional on LONG_MAX do not work as intended because when the headers are installed, this part of glibc's is processed before the part of GCC's that will define LONG_MAX. This patch changes the definitions just to use __WORDSIZE for the expansion of LONG_WIDTH and ULONG_WIDTH rather than making those definitions conditional on LONG_MAX. Tested for x86_64 and x86. * include/limits.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (LONG_WIDTH): Define to __WORDSIZE, not conditional on [LONG_MAX == 0x7fffffffL]. [__GLIBC_USE (IEC_60559_BFP_EXT)] (ULONG_WIDTH): Likewise. --- include/limits.h | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'include/limits.h') diff --git a/include/limits.h b/include/limits.h index 93cac49..dd601d5 100644 --- a/include/limits.h +++ b/include/limits.h @@ -164,20 +164,11 @@ # ifndef UINT_WIDTH # define UINT_WIDTH 32 # endif -# if LONG_MAX == 0x7fffffffL -# ifndef LONG_WIDTH -# define LONG_WIDTH 32 -# endif -# ifndef ULONG_WIDTH -# define ULONG_WIDTH 32 -# endif -# else -# ifndef LONG_WIDTH -# define LONG_WIDTH 64 -# endif -# ifndef ULONG_WIDTH -# define ULONG_WIDTH 64 -# endif +# ifndef LONG_WIDTH +# define LONG_WIDTH __WORDSIZE +# endif +# ifndef ULONG_WIDTH +# define ULONG_WIDTH __WORDSIZE # endif # ifndef LLONG_WIDTH # define LLONG_WIDTH 64 -- cgit v1.1