Could not compile endian.h with the release 4. Found out line 86's condition is not evaluated properly: #if BYTE_ORDER == _LITTLE_ENDIAN The _LITTLE_ENDIAN is defined as LITTLE_ENDIAN at line 40. When removed the underscore char at line 86, it passed.