summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-10-04 16:17:59 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-10-04 16:17:59 +0000
commitff88ee7edfaa439e23c42fccaf3a36cd5f041894 (patch)
tree1cdc914ae751fd393ae5f1084ab984383829fdf8 /include
parent22938c4103a4b0b6e8d4b3d50a1c41e3f27dd73e (diff)
downloadglibc-ff88ee7edfaa439e23c42fccaf3a36cd5f041894.tar.gz
Fix LONG_WIDTH, ULONG_WIDTH include ordering issue.
As described in <https://sourceware.org/ml/libc-alpha/2016-10/msg00047.html>, there is an include ordering issue with the integer width macros in glibc's <limits.h>, where definitions conditional on LONG_MAX do not work as intended because when the headers are installed, this part of glibc's <limits.h> is processed before the part of GCC's <limits.h> 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.
Diffstat (limited to 'include')
-rw-r--r--include/limits.h19
1 files changed, 5 insertions, 14 deletions
diff --git a/include/limits.h b/include/limits.h
index 93cac49e55..dd601d5793 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