diff options
Diffstat (limited to 'mdk-stage1/dietlibc/lib/__lstat64.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/__lstat64.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/__lstat64.c b/mdk-stage1/dietlibc/lib/__lstat64.c new file mode 100644 index 000000000..a871f3917 --- /dev/null +++ b/mdk-stage1/dietlibc/lib/__lstat64.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_lstat64(const char *__file, struct stat64 *__buf); +extern void __stat64_cvt(const struct stat *src,struct stat64 *dest); + +int lstat64(const char *__file, struct stat64 *__buf) { + if (__dietlibc_lstat64(__file,__buf)) { + struct stat temp; +#ifdef WANT_THREAD_SAFE + if (*__errno_location()!=ENOSYS) return -1; +#else + if (errno!=ENOSYS) return -1; +#endif + if (lstat(__file,&temp)) return -1; + __stat64_cvt(&temp,__buf); + } + return 0; +} +#endif +#endif |