diff options
author | Joseph Myers <joseph@codesourcery.com> | 2016-10-04 16:17:59 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2016-10-04 16:17:59 +0000 |
commit | ff88ee7edfaa439e23c42fccaf3a36cd5f041894 (patch) | |
tree | 1cdc914ae751fd393ae5f1084ab984383829fdf8 | |
parent | 22938c4103a4b0b6e8d4b3d50a1c41e3f27dd73e (diff) | |
download | glibc-ff88ee7edfaa439e23c42fccaf3a36cd5f041894.tar.gz glibc-ff88ee7edfaa439e23c42fccaf3a36cd5f041894.tar.xz glibc-ff88ee7edfaa439e23c42fccaf3a36cd5f041894.zip |
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.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | include/limits.h | 19 |
2 files changed, 12 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog index 9ea007a669..7c2139b516 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2016-10-04 Joseph Myers <joseph@codesourcery.com> + + * 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. + 2016-10-04 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> * sysdeps/powerpc/sys/platform/ppc.h (__ppc_get_timebase): Replace 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 |