BUG/MINOR: compat: make sure __WORDSIZE is always defined

-Wundef triggered on a MIPS-based musl build on __WORDSIZE that's used
in ultoa_o() and some Lua initialization. The former will fail to convert
integers larger to 1 billion to proper string in this case. Let's make
sure this macro is defined and fall back to values determined from
__SIZEOF_LONG__ otherwise. A cleaner long-term approach would consist
in removing all remaining occurrences of this macro.

This can be backported to all versions.
This commit is contained in:
Willy Tarreau 2021-09-15 10:15:03 +02:00
parent 8ab9419394
commit 4f5485bfad
1 changed files with 10 additions and 0 deletions

View File

@ -85,6 +85,16 @@ typedef struct { } empty_t;
#define BITS_PER_INT (8*sizeof(int)) #define BITS_PER_INT (8*sizeof(int))
#endif #endif
#ifndef __WORDSIZE
# if defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4
# define __WORDSIZE 32
# elif defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8
# define __WORDSIZE 64
# else
# error "Unknown machine word size (__WORDSIZE, __SIZEOF_LONG)"
# endif
#endif
#ifndef MIN #ifndef MIN
#define MIN(a, b) (((a) < (b)) ? (a) : (b)) #define MIN(a, b) (((a) < (b)) ? (a) : (b))
#endif #endif