From 255542761001c2c98a331a83e2a8bcc165ae4180 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 19 Nov 2017 14:06:32 +0100 Subject: [PATCH] mlibc: Mescc-tools support: endianness. * 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 | 1 + mlibc/include/endian.h | 36 ++++++++++++++++++++++++++++++++++++ mlibc/include/stdlib.h | 2 ++ mlibc/include/sys/types.h | 4 +++- 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 mlibc/include/endian.h diff --git a/mlibc/include/ctype.h b/mlibc/include/ctype.h index d6e961c2..69d1210c 100644 --- a/mlibc/include/ctype.h +++ b/mlibc/include/ctype.h @@ -28,6 +28,7 @@ #include_next #else // ! (__GNUC__ && POSIX) +#include 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 index 00000000..87d10117 --- /dev/null +++ b/mlibc/include/endian.h @@ -0,0 +1,36 @@ +/* -*-comment-start: "//";comment-end:""-*- + * Mes --- Maxwell Equations of Software + * Copyright © 2017 Jan Nieuwenhuizen + * + * 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 . + */ +#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 + +#else // ! (__GNUC__ && POSIX) +#define __LITTLE_ENDIAN 1234 +#define __BIG_ENDIAN 4321 +#define __BYTE_ORDER __LITTLE_ENDIAN +#endif // ! (__GNUC__ && POSIX) + +#endif // __MES_ENDIAN_H diff --git a/mlibc/include/stdlib.h b/mlibc/include/stdlib.h index a6719adc..cb9f0a8c 100644 --- a/mlibc/include/stdlib.h +++ b/mlibc/include/stdlib.h @@ -49,6 +49,8 @@ unsigned long long strtoull (char const *nptr, char **endptr, int base); #define EXIT_FAILURE 1 #define EXIT_SUCCESS 0 +#include + #endif // !(__GNUC__ && POSIX) #endif // __MES_STDLIB_H diff --git a/mlibc/include/sys/types.h b/mlibc/include/sys/types.h index d2f1620c..4e00b73e 100644 --- a/mlibc/include/sys/types.h +++ b/mlibc/include/sys/types.h @@ -23,7 +23,9 @@ #if __GNUC__ && POSIX #undef __MES_SYS_TYPES_H #include_next -#endif // (__GNUC__ && POSIX) +#else // ! (__GNUC__ && POSIX) +#include +#endif // ! (__GNUC__ && POSIX) #endif // __MES_SYS_TYPES_H