config: Check order and endianess even when cross-compiling

This commit is contained in:
ZyX
2015-08-15 17:41:28 +03:00
parent b249529676
commit d1830e1433
2 changed files with 41 additions and 18 deletions

View File

@@ -3141,6 +3141,9 @@ static inline uint64_t be64toh(uint64_t big_endian_64_bits)
#ifdef ORDER_BIG_ENDIAN
return big_endian_64_bits;
#else
// It may appear that when !defined(ORDER_BIG_ENDIAN) actual order is big
// endian. This variant is suboptimal, but it works regardless of actual
// order.
uint8_t *buf = (uint8_t *) &big_endian_64_bits;
uint64_t ret = 0;
for (size_t i = 8; i; i--) {