From c78e178f37ee0c7405eb58730a4ebc0654e8b9b7 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 25 Jan 2007 20:27:27 +0000 Subject: A patch set that should probably become uClibc-0.9.28.1 --- .../uClibc/uClibc-0.9.28-math-endianness.patch | 247 +++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 toolchain/uClibc/uClibc-0.9.28-math-endianness.patch (limited to 'toolchain/uClibc/uClibc-0.9.28-math-endianness.patch') diff --git a/toolchain/uClibc/uClibc-0.9.28-math-endianness.patch b/toolchain/uClibc/uClibc-0.9.28-math-endianness.patch new file mode 100644 index 000000000..015f79568 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.28-math-endianness.patch @@ -0,0 +1,247 @@ +Index: uclibc/libm/fp_private.h +=================================================================== +--- uclibc/libm/fp_private.h (revision 12879) ++++ uclibc/libm/fp_private.h (working copy) +@@ -70,10 +70,11 @@ + *******************************************************************************/ + + #include ++#include + + typedef struct /* Hex representation of a double. */ + { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + uint32_t high; + uint32_t low; + #else +Index: uclibc/libm/powerpc/s_ceil.c +=================================================================== +--- uclibc/libm/powerpc/s_ceil.c (revision 12879) ++++ uclibc/libm/powerpc/s_ceil.c (working copy) +@@ -21,13 +21,15 @@ + * * + *******************************************************************************/ + ++#include ++ + static const double twoTo52 = 4503599627370496.0; + static const unsigned long signMask = 0x80000000ul; + + typedef union + { + struct { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned long int hi; + unsigned long int lo; + #else +Index: uclibc/libm/powerpc/s_ldexp.c +=================================================================== +--- uclibc/libm/powerpc/s_ldexp.c (revision 12879) ++++ uclibc/libm/powerpc/s_ldexp.c (working copy) +@@ -21,11 +21,12 @@ + + #include + #include ++#include + + typedef union + { + struct { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned long int hi; + unsigned long int lo; + #else +Index: uclibc/libm/powerpc/s_rint.c +=================================================================== +--- uclibc/libm/powerpc/s_rint.c (revision 12879) ++++ uclibc/libm/powerpc/s_rint.c (working copy) +@@ -46,13 +46,14 @@ + + #include + #include ++#include + + #define SET_INVALID 0x01000000UL + + typedef union + { + struct { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned long int hi; + unsigned long int lo; + #else +Index: uclibc/libm/powerpc/s_floor.c +=================================================================== +--- uclibc/libm/powerpc/s_floor.c (revision 12879) ++++ uclibc/libm/powerpc/s_floor.c (working copy) +@@ -21,13 +21,15 @@ + * * + *******************************************************************************/ + ++#include ++ + static const double twoTo52 = 4503599627370496.0; + static const unsigned long signMask = 0x80000000ul; + + typedef union + { + struct { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned long int hi; + unsigned long int lo; + #else +Index: uclibc/libm/powerpc/s_logb.c +=================================================================== +--- uclibc/libm/powerpc/s_logb.c (revision 12879) ++++ uclibc/libm/powerpc/s_logb.c (working copy) +@@ -32,10 +32,12 @@ + * Standard 754. * + *******************************************************************************/ + ++#include ++ + typedef union + { + struct { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned long int hi; + unsigned long int lo; + #else +Index: uclibc/libm/powerpc/s_frexp.c +=================================================================== +--- uclibc/libm/powerpc/s_frexp.c (revision 12879) ++++ uclibc/libm/powerpc/s_frexp.c (working copy) +@@ -21,13 +21,14 @@ + + #include + #include ++#include + + static const double two54 = 1.80143985094819840000e+16; /* 0x43500000, 0x00000000 */ + + typedef union + { + struct { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned long int hi; + unsigned long int lo; + #else +Index: uclibc/libm/powerpc/s_modf.c +=================================================================== +--- uclibc/libm/powerpc/s_modf.c (revision 12879) ++++ uclibc/libm/powerpc/s_modf.c (working copy) +@@ -45,13 +45,14 @@ + + #include + #include ++#include + + #define SET_INVALID 0x01000000UL + + typedef union + { + struct { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned long int hi; + unsigned long int lo; + #else +Index: uclibc/libm/powerpc/w_scalb.c +=================================================================== +--- uclibc/libm/powerpc/w_scalb.c (revision 12879) ++++ uclibc/libm/powerpc/w_scalb.c (working copy) +@@ -19,10 +19,12 @@ + ** + ***********************************************************************/ + ++#include ++ + typedef union + { + struct { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned long int hi; + unsigned long int lo; + #else +Index: uclibc/libc/string/sh64/strcpy.S +=================================================================== +--- uclibc/libc/string/sh64/strcpy.S (revision 12879) ++++ uclibc/libc/string/sh64/strcpy.S (working copy) +@@ -6,7 +6,9 @@ + ! + ! SH5 code Copyright 2002 SuperH Ltd. + +-#ifdef __LITTLE_ENDIAN__ ++#include ++ ++#if __BYTE_ORDER == __LITTLE_ENDIAN + #define SHHI shlld + #define SHLO shlrd + #else +@@ -67,7 +69,7 @@ + add r5, r63, r4 + addi r0, 8, r0 + shortstring: +-#ifndef __LITTLE_ENDIAN__ ++#if __BYTE_ORDER != __LITTLE_ENDIAN + pta/l shortstring2,tr1 + byterev r4,r4 + #endif +Index: uclibc/libc/string/sh64/memset.S +=================================================================== +--- uclibc/libc/string/sh64/memset.S (revision 12879) ++++ uclibc/libc/string/sh64/memset.S (working copy) +@@ -9,7 +9,9 @@ + ! Copyright 2002 SuperH Ltd. + ! + +-#ifdef __LITTLE_ENDIAN__ ++#include ++ ++#if __BYTE_ORDER == __LITTLE_ENDIAN + #define SHHI shlld + #define SHLO shlrd + #else +Index: uclibc/libc/sysdeps/linux/sh/bits/kernel_stat.h +=================================================================== +--- uclibc/libc/sysdeps/linux/sh/bits/kernel_stat.h (revision 12879) ++++ uclibc/libc/sysdeps/linux/sh/bits/kernel_stat.h (working copy) +@@ -30,10 +30,10 @@ + }; + + struct kernel_stat64 { +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned char __pad0b[6]; + unsigned short st_dev; +-#elif defined(__LITTLE_ENDIAN__) ++#elif (__BYTE_ORDER == __LITTLE_ENDIAN) + unsigned short st_dev; + unsigned char __pad0b[6]; + #else +@@ -48,7 +48,7 @@ + unsigned long st_uid; + unsigned long st_gid; + +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned char __pad3b[6]; + unsigned short st_rdev; + #else /* Must be little */ +@@ -60,7 +60,7 @@ + long long st_size; + unsigned long st_blksize; + +-#if defined(__BIG_ENDIAN__) ++#if (__BYTE_ORDER == __BIG_ENDIAN) + unsigned long __pad4; /* Future possible st_blocks hi bits */ + unsigned long st_blocks; /* Number 512-byte blocks allocated. */ + #else /* Must be little */ -- cgit v1.2.3