From: Ulrich Drepper Date: Tue, 17 Mar 2009 00:35:38 +0000 (+0000) Subject: Yet more changes to match sort function type change. X-Git-Tag: upstream/2.30~13746 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3fb8a93ae97838eaa51cc043678c9d7c2c9bc027;p=external%2Fglibc.git Yet more changes to match sort function type change. --- diff --git a/include/dirent.h b/include/dirent.h index 8f23aee..3f6c4b9 100644 --- a/include/dirent.h +++ b/include/dirent.h @@ -17,14 +17,16 @@ extern int __readdir64_r (DIR *__dirp, struct dirent64 *__entry, extern int __scandir64 (__const char * __dir, struct dirent64 *** __namelist, int (*__selector) (__const struct dirent64 *), - int (*__cmp) (__const void *, __const void *)); + int (*__cmp) (__const struct dirent64 **, + __const struct dirent64 **)); extern __ssize_t __getdents (int __fd, char *__buf, size_t __nbytes) internal_function; extern __ssize_t __getdents64 (int __fd, char *__buf, size_t __nbytes) internal_function; -extern int __alphasort64 (const void *a, const void *b) +extern int __alphasort64 (const struct dirent64 **a, const struct dirent64 **b) __attribute_pure__; -extern int __versionsort64 (const void *a, const void *b) +extern int __versionsort64 (const struct dirent64 **a, + const struct dirent64 **b) __attribute_pure__; extern DIR *__alloc_dir (int fd, bool close_fd, const struct stat64 *statp) internal_function; diff --git a/sysdeps/unix/sysv/linux/i386/alphasort64.c b/sysdeps/unix/sysv/linux/i386/alphasort64.c index 221aedc..33e2fcd 100644 --- a/sysdeps/unix/sysv/linux/i386/alphasort64.c +++ b/sysdeps/unix/sysv/linux/i386/alphasort64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1997, 1998, 2000, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1997,1998,2000,2004,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,10 +20,9 @@ #include int -__alphasort64 (const void *a, const void *b) +__alphasort64 (const struct dirent64 **a, const struct dirent64 **b) { - return strcoll ((*(const struct dirent64 **) a)->d_name, - (*(const struct dirent64 **) b)->d_name); + return strcoll ((*a)->d_name, (*b)->d_name); } #include @@ -35,14 +34,15 @@ versioned_symbol (libc, __alphasort64, alphasort64, GLIBC_2_2); #include int -__old_alphasort64 (const void *a, const void *b); +__old_alphasort64 (const struct __old_dirent64 **a, + const struct __old_dirent64 **b); int attribute_compat_text_section -__old_alphasort64 (const void *a, const void *b) +__old_alphasort64 (const struct __old_dirent64 **a, + const struct __old_dirent64 **b) { - return strcoll ((*(const struct __old_dirent64 **) a)->d_name, - (*(const struct __old_dirent64 **) b)->d_name); + return strcoll ((*a)->d_name, (*b)->d_name); } compat_symbol (libc, __old_alphasort64, alphasort64, GLIBC_2_1); diff --git a/sysdeps/unix/sysv/linux/i386/olddirent.h b/sysdeps/unix/sysv/linux/i386/olddirent.h index f9a79b2..4f73197 100644 --- a/sysdeps/unix/sysv/linux/i386/olddirent.h +++ b/sysdeps/unix/sysv/linux/i386/olddirent.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -39,6 +39,7 @@ extern __ssize_t __old_getdents64 (int __fd, char *__buf, size_t __nbytes) int __old_scandir64 (__const char * __dir, struct __old_dirent64 *** __namelist, int (*__selector) (__const struct __old_dirent64 *), - int (*__cmp) (__const void *, __const void *)); + int (*__cmp) (__const struct __old_dirent64 **, + __const struct __old_dirent64 **)); #endif diff --git a/sysdeps/unix/sysv/linux/i386/versionsort64.c b/sysdeps/unix/sysv/linux/i386/versionsort64.c index 3efce69..be635f9 100644 --- a/sysdeps/unix/sysv/linux/i386/versionsort64.c +++ b/sysdeps/unix/sysv/linux/i386/versionsort64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1997, 1998, 2000, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1992,1997,1998,2000,2004,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,10 +20,9 @@ #include int -__versionsort64 (const void *a, const void *b) +__versionsort64 (const struct dirent64 **a, const struct dirent64 **b) { - return __strverscmp ((*(const struct dirent64 **) a)->d_name, - (*(const struct dirent64 **) b)->d_name); + return __strverscmp ((*a)->d_name, (*b)->d_name); } #include @@ -35,14 +34,15 @@ versioned_symbol (libc, __versionsort64, versionsort64, GLIBC_2_2); #include int -__old_versionsort64 (const void *a, const void *b); +__old_versionsort64 (const struct __old_dirent64 **a, + const struct __old_dirent64 **b); int attribute_compat_text_section -__old_versionsort64 (const void *a, const void *b) +__old_versionsort64 (const struct __old_dirent64 **a, + const struct __old_dirent64 **b) { - return __strverscmp ((*(const struct __old_dirent64 **) a)->d_name, - (*(const struct __old_dirent64 **) b)->d_name); + return __strverscmp ((*a)->d_name, (*b)->d_name); } compat_symbol (libc, __old_versionsort64, versionsort64, GLIBC_2_1);