diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2002-07-02 22:18:58 +0400 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2002-07-02 22:18:58 +0400 |
commit | cec4a9f8f00e58c2486849aa0cf784b84a411beb (patch) | |
tree | ae3d9daebd3a3c5501497beab441a1bf27737092 /newlib/libc/include | |
parent | d183515c9fa35681286cbdf02da37845648cef0b (diff) |
2002-07-02 Chris Demetriou <cgd@broadcom.com>
* libc/include/sys/config.h (__IEEE_LITTLE_ENDIAN)
(__IEEE_BIG_ENDIAN): Define appropriately for MIPS.
Check that one of them is defined and error out if not.
Add any platforms defined in <machine/ieeefp.h> that are missing.
* libc/search/hash.h (DB_BYTE_ORDER, DB_BIG_ENDIAN)
(DB_LITTLE_ENDIAN): New defines.
* libc/search/hash.c: Replace all incorrect checks for
_IEEE_LITTLE_ENDIAN with tests of BYTE_ORDER, and all uses of
BYTE_ORDER, LITTLE_ENDIAN, and BIG_ENDIAN with DB_* versions.
* libc/search/hash_page.c: Likewise.
Diffstat (limited to 'newlib/libc/include')
-rw-r--r-- | newlib/libc/include/sys/config.h | 86 |
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__ */ |