Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx> writes: > The __BYTE_ORDER__ define is provided by gcc (since ~v4.6), clang > (since ~v3.2) and icc (since ~16.0.3). It is not provided by msvc as of > v19.43 / 17.13.6. I think it is more confusing than illuninating to have the last sentence in the above paragraph. There probably are tons of other compilers that do not support it, and this patch does not target any of them, including MSVC, which is the topic of the next step anyway. So, I'm inclined to just remove the sentence, or replace it with something like "Even recent versions of MSVC do not support it, which will be dealt with in the next patch." > The __BYTE_ORDER and BYTE_ORDER macros are libc specific and are not > available on all supported platforms such as mingw. > > Add support for the __BYTE_ORDER__ macro as a fallback. > > Signed-off-by: Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx> > --- > compat/bswap.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/compat/bswap.h b/compat/bswap.h > index b34054f2bd728..0a457542dd76a 100644 > --- a/compat/bswap.h > +++ b/compat/bswap.h > @@ -116,6 +116,12 @@ static inline uint64_t git_bswap64(uint64_t x) > # define GIT_LITTLE_ENDIAN LITTLE_ENDIAN > # define GIT_BIG_ENDIAN BIG_ENDIAN > > +#elif defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) > + > +# define GIT_BYTE_ORDER __BYTE_ORDER__ > +# define GIT_LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__ > +# define GIT_BIG_ENDIAN __ORDER_BIG_ENDIAN__ > + > #else > > # define GIT_BIG_ENDIAN 4321