@@ -101,19 +101,34 @@ static inline uint64_t git_bswap64(uint64_t x)
101101#undef ntohll
102102#undef htonll
103103
104- #if !defined(__BYTE_ORDER )
105- # if defined(BYTE_ORDER ) && defined(LITTLE_ENDIAN ) && defined(BIG_ENDIAN )
106- # define __BYTE_ORDER BYTE_ORDER
107- # define __LITTLE_ENDIAN LITTLE_ENDIAN
108- # define __BIG_ENDIAN BIG_ENDIAN
104+ #if defined(BYTE_ORDER ) && defined(LITTLE_ENDIAN ) && defined(BIG_ENDIAN )
105+
106+ # define GIT_BYTE_ORDER BYTE_ORDER
107+ # define GIT_LITTLE_ENDIAN LITTLE_ENDIAN
108+ # define GIT_BIG_ENDIAN BIG_ENDIAN
109+
110+ #elif defined(__BYTE_ORDER ) && defined(__LITTLE_ENDIAN ) && defined(__BIG_ENDIAN )
111+
112+ # define GIT_BYTE_ORDER __BYTE_ORDER
113+ # define GIT_LITTLE_ENDIAN __LITTLE_ENDIAN
114+ # define GIT_BIG_ENDIAN __BIG_ENDIAN
115+
116+ #else
117+
118+ # define GIT_BIG_ENDIAN 4321
119+ # define GIT_LITTLE_ENDIAN 1234
120+
121+ # if defined(_BIG_ENDIAN ) && !defined(_LITTLE_ENDIAN )
122+ # define GIT_BYTE_ORDER GIT_BIG_ENDIAN
123+ # elif defined(_BIG_ENDIAN ) && !defined(_LITTLE_ENDIAN )
124+ # define GIT_BYTE_ORDER GIT_LITTLE_ENDIAN
125+ # else
126+ # error "Cannot determine endianness"
109127# endif
110- #endif
111128
112- #if !defined(__BYTE_ORDER )
113- # error "Cannot determine endianness"
114129#endif
115130
116- #if __BYTE_ORDER == __BIG_ENDIAN
131+ #if GIT_BYTE_ORDER == GIT_BIG_ENDIAN
117132# define ntohll (n ) (n)
118133# define htonll (n ) (n)
119134#else
0 commit comments