Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/include/sys/config.h')
-rw-r--r--newlib/libc/include/sys/config.h86
1 files changed, 85 insertions, 1 deletions
diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h
index ae4fcdaa3..928927334 100644
--- a/newlib/libc/include/sys/config.h
+++ b/newlib/libc/include/sys/config.h
@@ -45,11 +45,23 @@
#define __IEEE_BIG_ENDIAN
#endif
+#ifdef __sh__
+#ifdef __LITTLE_ENDIAN__
+#define __IEEE_LITTLE_ENDIAN
+#else
+#define __IEEE_BIG_ENDIAN
+#endif
+#if defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__)
+#define _DOUBLE_IS_32BITS
+#endif
+#endif
+
#ifdef ___AM29K__
#define _FLOAT_RET double
#endif
#ifdef __i386__
+#define __IEEE_LITTLE_ENDIAN
#ifndef __unix__
/* in other words, go32 */
#define _FLOAT_RET double
@@ -82,6 +94,13 @@
#define __IEEE_LITTLE_ENDIAN
#endif
+#ifdef __MIPSEL__
+#define __IEEE_LITTLE_ENDIAN
+#endif
+#ifdef __MIPSEB__
+#define __IEEE_BIG_ENDIAN
+#endif
+
#ifdef __MMIX__
#define __IEEE_BIG_ENDIAN
#endif
@@ -97,19 +116,57 @@
#define __IEEE_LITTLE_ENDIAN
#endif
+#ifdef __v800
+#define __IEEE_LITTLE_ENDIAN
+#endif
+
#ifdef __v850
#define __IEEE_LITTLE_ENDIAN
#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__))
#endif
+#ifdef __ia64__
+#ifdef __BIG_ENDIAN__
+#define __IEEE_BIG_ENDIAN
+#else
+#define __IEEE_LITTLE_ENDIAN
+#endif
+#endif
+
#ifdef __D30V__
#define __IEEE_BIG_ENDIAN
#endif
+#ifdef __m88k__
+#define __IEEE_BIG_ENDIAN
+#endif
+
/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
-#if defined(__PPC__) && defined(_CALL_SYSV)
+#if defined(__PPC__)
+#if defined(_CALL_SYSV)
#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
#endif
+#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX)
+#define __IEEE_BIG_ENDIAN
+#else
+#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32)
+#define __IEEE_LITTLE_ENDIAN
+#endif
+#endif
+#endif
+
+#if defined(__arm__) || defined(__thumb__)
+/* ARM always has big-endian words. Within those words the byte ordering
+ will be big or little endian depending upon the target. */
+#define __IEEE_BIG_ENDIAN
+#ifdef __ARMEL__
+#define __IEEE_BYTES_LITTLE_ENDIAN
+#endif
+#endif
+
+#ifdef __hppa__
+#define __IEEE_BIG_ENDIAN
+#endif
#ifdef __sparc__
#ifdef __LITTLE_ENDIAN_DATA__
@@ -119,6 +176,11 @@
#endif
#endif
+#if defined(__or32__) || defined(__or1k__) || defined(__or16__)
+#define __IEEE_BIG_ENDIAN
+#endif
+
+
#ifdef __xstormy16__
#define __IEEE_LITTLE_ENDIAN
#define __SMALL_BITFIELDS
@@ -164,6 +226,22 @@
#define _POINTER_INT long
#endif
+#ifdef __arc__
+#ifdef __big_endian__
+#define __IEEE_BIG_ENDIAN
+#else
+#define __IEEE_LITTLE_ENDIAN
+#endif
+#endif
+
+#ifdef __fr30__
+#define __IEEE_BIG_ENDIAN
+#endif
+
+#ifdef __mcore__
+#define __IEEE_BIG_ENDIAN
+#endif
+
#ifdef __frv__
#define __IEEE_BIG_ENDIAN
#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
@@ -202,4 +280,10 @@
#define _READ_WRITE_RETURN_TYPE int
#endif
+#ifndef __IEEE_BIG_ENDIAN
+#ifndef __IEEE_LITTLE_ENDIAN
+#error Endianess not declared!!
+#endif /* not __IEEE_LITTLE_ENDIAN */
+#endif /* not __IEEE_BIG_ENDIAN */
+
#endif /* __SYS_CONFIG_H__ */