#include "llvm/ADT/StringMap.h"
-#if defined(__linux__)
+#if defined(__linux__) || defined(__GNU__)
#include <endian.h>
#else
-#ifndef LLVM_ON_WIN32
+#if !defined(BYTE_ORDER) && !defined(LLVM_ON_WIN32)
#include <machine/endian.h>
#endif
#endif
namespace llvm {
namespace sys {
-#if BYTE_ORDER == BIG_ENDIAN
+#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && BYTE_ORDER == BIG_ENDIAN
static const bool IsBigEndianHost = true;
#else
static const bool IsBigEndianHost = false;