From 7635b30f9d62e33b057d830780a937c6c1d140f5 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Wed, 14 Dec 2005 02:33:36 +0000 Subject: Fixup byte order handling. Not all architectures define __BIG_ENDIAN__ so i.e. on big endian mips the code is compiled as little-endian and the wrong half of the 64-bit point value is examined to check for NaN, etc. This bug also broke fpclassify(), isfinite(), isnormal(), isinf(), finite(), and signbit(). --- libc/sysdeps/linux/sh/bits/kernel_stat.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libc/sysdeps/linux/sh/bits/kernel_stat.h') diff --git a/libc/sysdeps/linux/sh/bits/kernel_stat.h b/libc/sysdeps/linux/sh/bits/kernel_stat.h index cd818464d..c841b0cee 100644 --- a/libc/sysdeps/linux/sh/bits/kernel_stat.h +++ b/libc/sysdeps/linux/sh/bits/kernel_stat.h @@ -30,10 +30,10 @@ struct kernel_stat { }; 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 @@ struct kernel_stat64 { 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 @@ struct kernel_stat64 { 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