aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--lib.c6
-rw-r--r--validation/endian-big.c3
-rw-r--r--validation/endian-little.c3
3 files changed, 12 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index daf7d021..de635043 100644
--- a/lib.c
+++ b/lib.c
@@ -964,6 +964,12 @@ static void predefined_macros(void)
add_pre_buffer("#weak_define __%s_ENDIAN__ 1\n",
arch_big_endian ? "BIG" : "LITTLE");
+
+ add_pre_buffer("#weak_define __ORDER_LITTLE_ENDIAN__ 1234\n");
+ add_pre_buffer("#weak_define __ORDER_BIG_ENDIAN__ 4321\n");
+ add_pre_buffer("#weak_define __ORDER_PDP_ENDIAN__ 3412\n");
+ add_pre_buffer("#weak_define __BYTE_ORDER__ __ORDER_%s_ENDIAN__\n",
+ arch_big_endian ? "BIG" : "LITTLE");
}
void declare_builtin_functions(void)
diff --git a/validation/endian-big.c b/validation/endian-big.c
index d535748c..ebf95df7 100644
--- a/validation/endian-big.c
+++ b/validation/endian-big.c
@@ -4,6 +4,9 @@
#if (__BIG_ENDIAN__ != 1)
#error "__BIG_ENDIAN__ not correctly defined!"
#endif
+#if (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__)
+#error "__BYTE_ORDER__ not correctly defined!"
+#endif
/*
* check-name: endian-big.c
diff --git a/validation/endian-little.c b/validation/endian-little.c
index cc4a14f7..57ef6986 100644
--- a/validation/endian-little.c
+++ b/validation/endian-little.c
@@ -4,6 +4,9 @@
#if (__LITTLE_ENDIAN__ != 1)
#error "__LITTLE_ENDIAN__ not correctly defined!"
#endif
+#if (__BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__)
+#error "__BYTE_ORDER__ not correctly defined!"
+#endif
/*
* check-name: endian-little.c