take byte order from gcc if gcc has defined it
authorRich Felker <dalias@aerifal.cx>
Sun, 6 May 2012 17:40:19 +0000 (13:40 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 6 May 2012 17:40:19 +0000 (13:40 -0400)
this only works with gcc 4.6 and later, but it allows us to support
non-default endianness on archs like arm, mips, ppc, etc. that can do
both without having separate header sets for both variants, and it
saves one #include even on fixed-endianness archs like x86.

include/endian.h

index 9652c30..41ca171 100644 (file)
@@ -5,7 +5,11 @@
 #define __BIG_ENDIAN 4321
 #define __PDP_ENDIAN 3412
 
+#if defined(__GNUC__) && defined(__BYTE_ORDER__)
+#define __BYTE_ORDER __BYTE_ORDER__
+#else
 #include <bits/endian.h>
+#endif
 
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)