Fix 2 issues in proxendian.h, see details:
Only some OSes include endian.h from sys/types.h, not Termux, so let's include endian.h directly. Moreover the past logic defined BYTE_ORDER to an undef macro, so BYTE_ORDER was not undef but def to 0 and BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN was always false as (0!=0 && 0!=0)
This commit is contained in:
@@ -16,17 +16,22 @@
|
||||
#ifdef _WIN32
|
||||
# define HOST_LITTLE_ENDIAN
|
||||
#else
|
||||
# include <sys/types.h>
|
||||
# ifndef BYTE_ORDER
|
||||
# define BYTE_ORDER __BYTE_ORDER
|
||||
# define LITTLE_ENDIAN __LITTLE_ENDIAN
|
||||
# define BIG_ENDIAN __BIG_ENDIAN
|
||||
# endif
|
||||
# if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
|
||||
# error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
|
||||
# endif
|
||||
# if BYTE_ORDER == LITTLE_ENDIAN
|
||||
# define HOST_LITTLE_ENDIAN
|
||||
// Only some OSes include endian.h from sys/types.h, not Termux, so let's include endian.h directly
|
||||
# include <endian.h>
|
||||
# if !defined(BYTE_ORDER)
|
||||
# if !defined(__BYTE_ORDER) || (__BYTE_ORDER != __LITTLE_ENDIAN && __BYTE_ORDER != __BIG_ENDIAN)
|
||||
# error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
|
||||
# endif
|
||||
# if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
# define HOST_LITTLE_ENDIAN
|
||||
# endif
|
||||
# else
|
||||
# if BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN
|
||||
# error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
|
||||
# endif
|
||||
# if BYTE_ORDER == LITTLE_ENDIAN
|
||||
# define HOST_LITTLE_ENDIAN
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user