mlibc: Mescc-tools support: endianness.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 19 Nov 2017 13:06:32 +0000 (14:06 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 19 Nov 2017 13:06:32 +0000 (14:06 +0100)
* mlibc/include/endian.h: New file.
* mlibc/include/ctype.h[!(__GNUC__ && POSIX)]: Include it.
* mlibc/include/stdlib.h: Likewise.
* mlibc/include/sys/types.h: Likewise.

mlibc/include/ctype.h
mlibc/include/endian.h [new file with mode: 0644]
mlibc/include/stdlib.h
mlibc/include/sys/types.h

index d6e961c233c5cec8dc58e9cca71812714eb04de4..69d1210c6543d849bb071aa0d6659939c69ee302 100644 (file)
@@ -28,6 +28,7 @@
 #include_next <ctype.h>
 
 #else // ! (__GNUC__ && POSIX)
+#include <endian.h>
 int isdigit (int);
 int isxdigit (int);
 #endif // ! (__GNUC__ && POSIX)
diff --git a/mlibc/include/endian.h b/mlibc/include/endian.h
new file mode 100644 (file)
index 0000000..87d1011
--- /dev/null
@@ -0,0 +1,36 @@
+/* -*-comment-start: "//";comment-end:""-*-
+ * Mes --- Maxwell Equations of Software
+ * Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
+ *
+ * This file is part of Mes.
+ *
+ * Mes is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * Mes is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef __MES_ENDIAN_H
+#define __MES_ENDIAN_H 1
+
+#if __GNUC__ && POSIX
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#undef __MES_ENDIAN_H
+#include_next <endian.h>
+
+#else // ! (__GNUC__ && POSIX)
+#define        __LITTLE_ENDIAN 1234
+#define        __BIG_ENDIAN 4321
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#endif // ! (__GNUC__ && POSIX)
+
+#endif // __MES_ENDIAN_H
index a6719adcba109273bc87bda975d02c2863b4677c..cb9f0a8c4bff731de07df5f5161129389c817577 100644 (file)
@@ -49,6 +49,8 @@ unsigned long long strtoull (char const *nptr, char **endptr, int base);
 #define EXIT_FAILURE 1
 #define EXIT_SUCCESS 0
 
+#include <endian.h>
+
 #endif // !(__GNUC__ && POSIX)
 
 #endif // __MES_STDLIB_H
index d2f1620ca7a7ffeba1dacaeb8467acd61fe264a8..4e00b73e1a08893aac772fb584aa397a6ffd2b56 100644 (file)
@@ -23,7 +23,9 @@
 #if __GNUC__ && POSIX
 #undef __MES_SYS_TYPES_H
 #include_next <sys/types.h>
-#endif // (__GNUC__ && POSIX)
+#else // ! (__GNUC__ && POSIX)
+#include <endian.h>
+#endif // ! (__GNUC__ && POSIX)
 
 #endif // __MES_SYS_TYPES_H