--- compat_glibc/Makefile.inc.orig Tue Sep 12 15:00:02 2006 +++ compat_glibc/Makefile.inc Tue Sep 12 15:00:24 2006 @@ -58,5 +58,6 @@ compat_glibc/linux_locale.o \ compat_glibc/linux_misc.o \ compat_glibc/linux_pthread.o \ + compat_glibc/linux_signal.o \ compat_glibc/linux_stdio.o \ compat_glibc/linux_string.o --- compat_glibc/linux_locale.c.orig Tue Sep 12 14:46:51 2006 +++ compat_glibc/linux_locale.c Tue Sep 12 14:53:07 2006 @@ -55,5 +55,9 @@ }; const unsigned short int *__ctype_b; +const unsigned short int *__ctype_b_loc; +const size_t *__ctype_get_mb_cur_max; const int32_t *__ctype_tolower = _nl_C_LC_CTYPE_toupper; const int32_t *__ctype_toupper = _nl_C_LC_CTYPE_tolower; +const int32_t *__ctype_tolower_loc = _nl_C_LC_CTYPE_tolower; +const int32_t *__ctype_toupper_loc = _nl_C_LC_CTYPE_toupper; --- compat_glibc/linux_stdio.c.orig Tue Sep 12 15:01:19 2006 +++ compat_glibc/linux_stdio.c Tue Sep 12 15:02:32 2006 @@ -47,3 +47,12 @@ { return getc(stream); } + + +/* + * + */ +FILE *fopen64(const char *filename, const char *type) +{ + return fopen(filename, type); +} --- compat_glibc/linux_string.c.orig Tue Sep 12 15:02:46 2006 +++ compat_glibc/linux_string.c Tue Sep 12 15:08:36 2006 @@ -57,3 +57,53 @@ { return strdup(str); } + + +/* + * + */ +double +__strtod_internal(const char *nptr, char **endptr, int base, int group) +{ + return strtod(nptr, endptr, base); +} + + +/* + * + */ +long long +__strtoll_internal(const char *nptr, char **endptr, int base, int group) +{ + return strtoll(nptr, endptr, base); +} + + +/* + * + */ +unsigned long long +__strtoull_internal(const char *nptr, char **endptr, int base, int group) +{ + return strtoull(nptr, endptr, base); +} + + +/* + * + */ +float +__strtof_internal(const char *nptr, char **endptr, int base, int group) +{ + return strtof(nptr, endptr, base); +} + + +/* + * + */ +long double +__strtold_internal(const char *nptr, char **endptr, int base, int group) +{ + return strtold(nptr, endptr, base); +} --- compat_linux/linux_file.c.orig Tue Sep 12 15:19:30 2006 +++ compat_linux/linux_file.c Tue Sep 12 15:18:10 2006 @@ -35,6 +35,8 @@ #include #include #include +#include +#include /* @@ -295,3 +297,13 @@ return ret; } #endif + + +/* + * + */ +int +readdir64_r(DIR* dirp, struct dirent *entry, struct dirent64 **result) +{ + return readdir_r(dirp, entry, result); +} --- compat_linux/linux_stat.c.orig Tue Sep 12 15:20:16 2006 +++ compat_linux/linux_stat.c Tue Sep 12 15:22:30 2006 @@ -132,3 +132,27 @@ return ret; } + + +/* + * + */ +int +__xstat64(int vers, const char *file, struct linux_stat *buf) +{ + int ret; + struct stat sb; + + if( vers != _STAT_VER || file == NULL || buf == NULL ) { + errno = EINVAL; + ret = -1; + } else { + CLEAR_ERRNO; + if( (ret = stat(file, &sb)) == 0 ) + __stat_copyout__(buf, &sb); + } + + dprintf("__xstat64(vers=%d, file=%s, buf=0x%08x) = %d / ERRNO = %d", vers, file, buf, ret, errno); + + return ret; +}