From ef2e41138a4c23d6cb02710d091517d4ef33a110 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 30 May 2002 08:51:13 +0000 Subject: Make these properly cope with 64bit systems -Erik --- libc/sysdeps/linux/common/statfix.h | 16 +++++++----- libc/sysdeps/linux/common/statfix64.h | 48 +++++++++++++++++++---------------- 2 files changed, 35 insertions(+), 29 deletions(-) (limited to 'libc') diff --git a/libc/sysdeps/linux/common/statfix.h b/libc/sysdeps/linux/common/statfix.h index 3978c6473..3d18dd408 100644 --- a/libc/sysdeps/linux/common/statfix.h +++ b/libc/sysdeps/linux/common/statfix.h @@ -1,26 +1,28 @@ #ifndef STATFIX_H #define STATFIX_H +#include +#undef __OPTIMIZE__ #include /* Pull in whatever this particular arch's kernel thinks the kernel version of - * struct stat should look like. It turns out that each arch has a different - * opinion on the subject, and different kernel revs use different names... */ + * * struct stat should look like. It turns out that each arch has a different + * * opinion on the subject, and different kernel revs use different names... */ #define stat kernel_stat #define new_stat kernel_stat -#define stat64 kernel_stat64 -#include -#undef stat64 +#include #undef new_stat #undef stat /* Now pull in libc's version of stat */ #define stat libc_stat -#include +#define stat64 libc_stat64 +#define _SYS_STAT_H +#include +#undef stat64 #undef stat extern void statfix(struct libc_stat *libcstat, struct kernel_stat *kstat); extern int __fxstat(int version, int fd, struct libc_stat * statbuf); #endif - diff --git a/libc/sysdeps/linux/common/statfix64.h b/libc/sysdeps/linux/common/statfix64.h index a35ca7ae3..4b6d0c670 100644 --- a/libc/sysdeps/linux/common/statfix64.h +++ b/libc/sysdeps/linux/common/statfix64.h @@ -2,7 +2,9 @@ #define STATFIX_H #include -#include +#undef __OPTIMIZE__ +#include +#include #if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS != 64 #undef _FILE_OFFSET_BITS @@ -12,25 +14,24 @@ # define __USE_LARGEFILE64 1 #endif /* We absolutely do _NOT_ want interfaces silently - * * renamed under us or very bad things will happen... */ + * * * renamed under us or very bad things will happen... */ #ifdef __USE_FILE_OFFSET64 # undef __USE_FILE_OFFSET64 #endif -#ifdef __UCLIBC_HAVE_LFS__ -#if defined __WORDSIZE && __WORDSIZE < 64 +#if defined __UCLIBC_HAVE_LFS__ +#if defined __WORDSIZE && (__WORDSIZE >= 64) -#include +/* 64 bit arch stuff... */ /* Pull in whatever this particular arch's kernel thinks the kernel version of - * struct stat should look like. It turns out that each arch has a different - * opinion on the subject, and different kernel revs use different names... */ -#define stat kernel_stat -#define new_stat kernel_stat + * * struct stat should look like. It turns out that each arch has a different + * * opinion on the subject, and different kernel revs use different names... */ +#define stat kernel_stat64 +#define new_stat kernel_stat64 #define stat64 kernel_stat64 -#define new_stat64 kernel_stat64 +#define kernel_stat kernel_stat64 #include -#undef new_stat64 #undef stat64 #undef new_stat #undef stat @@ -39,40 +40,43 @@ /* Now pull in libc's version of stat */ #define stat libc_stat #define stat64 libc_stat64 -#include +#define _SYS_STAT_H +#include #undef stat64 #undef stat extern void statfix64(struct libc_stat64 *libcstat, struct kernel_stat64 *kstat); extern int __fxstat64(int version, int fd, struct libc_stat64 * statbuf); -#else /* __WORDSIZE */ -#include + +#else + +/* 32 bit arch stuff */ + /* Pull in whatever this particular arch's kernel thinks the kernel version of - * struct stat should look like. It turns out that each arch has a different - * opinion on the subject, and different kernel revs use different names... */ + * * struct stat should look like. It turns out that each arch has a different + * * opinion on the subject, and different kernel revs use different names... */ #define stat kernel_stat #define new_stat kernel_stat -#define kernel_stat64 kernel_stat -#include -#undef new_stat64 +#define stat64 kernel_stat64 +#include #undef stat64 #undef new_stat #undef stat - /* Now pull in libc's version of stat */ #define stat libc_stat #define stat64 libc_stat64 -#include +#define _SYS_STAT_H +#include #undef stat64 #undef stat extern void statfix64(struct libc_stat64 *libcstat, struct kernel_stat64 *kstat); extern int __fxstat64(int version, int fd, struct libc_stat64 * statbuf); + #endif /* __WORDSIZE */ #endif /* __UCLIBC_HAVE_LFS__ */ #endif - -- cgit v1.2.3