diff options
Diffstat (limited to 'mdk-stage1/dietlibc/lib/__stat64.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/__stat64.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/__stat64.c b/mdk-stage1/dietlibc/lib/__stat64.c new file mode 100644 index 000000000..dfb0d4315 --- /dev/null +++ b/mdk-stage1/dietlibc/lib/__stat64.c @@ -0,0 +1,25 @@ +#include "dietfeatures.h" + +#ifdef WANT_LARGEFILE_BACKCOMPAT +#include <sys/stat.h> +#ifndef __NO_STAT64 +#include <errno.h> + +extern int __dietlibc_stat64(const char *__file, struct stat64 *__buf); +extern void __stat64_cvt(const struct stat *src,struct stat64 *dest); + +int stat64(const char *__file, struct stat64 *__buf) { + if (__dietlibc_stat64(__file,__buf)) { + struct stat temp; +#ifdef WANT_THREAD_SAFE + if (*__errno_location()!=ENOSYS) return -1; +#else + if (errno!=ENOSYS) return -1; +#endif + if (stat(__file,&temp)) return -1; + __stat64_cvt(&temp,__buf); + } + return 0; +} +#endif +#endif |