id summary reporter owner description type status milestone component version severity resolution keywords cc 10505 Use gcc/clang built-in endianity macros (too) Jan Hudec René Rivera "Endian detection in `boost/predef/other/endian.h` does consider the gcc/clang built-in `__BYTE_ORDER__` macros and consequently fails to detect endianity of some (usually mobile) platforms. E.g. on Android I get `_BYTE_ORDER` defined to `_LITTLE_ENDIAN`, but `_LITTLE_ENDIAN` is '''not''' defined, leading to all three conditions (`_BYTE_ORDER == _BIG_ENDIAN`, `_BYTE_ORDER == _LITTLE_ENDIAN` and `_BYTE_ORDER == _PDP_ENDIAN` being satisfied and yielding conflicting definitions. The `__BYTE_ORDER__` is provided by gcc and clang compilers themselves and therefore should always be there no matter how broken the rest of standard library is. What I am not sure is whether they should be used in preference to any other method or as a fallback (in which case definedness of the `_BIG_ENDIAN`, `_LITTLE_ENDIAN` etc. macros also has to be tested before trying to use them)" Bugs reopened To Be Determined predef USE GITHUB Boost 1.56.0 Problem