mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 03:33:33 +08:00
Clean up {alphasort,versionsort,scandir,scandirat}{,64} for struct dirent == struct dirent64.
This commit is contained in:
parent
03af952060
commit
8e49df1d65
43
ChangeLog
43
ChangeLog
@ -1,5 +1,48 @@
|
||||
2012-08-06 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* dirent/alphasort.c [_DIRENT_MATCHES_DIRENT64]:
|
||||
Define alphasort64 as an alias.
|
||||
* dirent/versionsort.c [_DIRENT_MATCHES_DIRENT64]:
|
||||
Define versionsort64 as an alias.
|
||||
* dirent/scandir.c [_DIRENT_MATCHES_DIRENT64]:
|
||||
Define scandir64 as an alias.
|
||||
* dirent/scandirat.c [_DIRENT_MATCHES_DIRENT64]:
|
||||
Define scandirat64 as an alias.
|
||||
* dirent/alphasort64.c (alphasort64):
|
||||
Conditionalize on [!_DIRENT_MATCHES_DIRENT64].
|
||||
* dirent/versionsort64.c: Likewise.
|
||||
* dirent/scandir64.c: Likewise.
|
||||
* dirent/scandirat64.c: Likewise.
|
||||
* sysdeps/wordsize-64/alphasort.c: File removed.
|
||||
* sysdeps/wordsize-64/alphasort64.c: File removed.
|
||||
* sysdeps/wordsize-64/scandir.c: File removed.
|
||||
* sysdeps/wordsize-64/scandir64.c: File removed.
|
||||
* sysdeps/wordsize-64/scandirat.c: File removed.
|
||||
* sysdeps/wordsize-64/scandirat64.c: File removed.
|
||||
* sysdeps/wordsize-64/versionsort.c: File removed.
|
||||
* sysdeps/wordsize-64/versionsort64.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/alphasort.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/alphasort64.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/scandir.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/scandir64.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/scandirat.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/scandirat64.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/versionsort.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/versionsort64.c: File removed.
|
||||
|
||||
* bits/typesizes.h [__LP64__] (__INO_T_MATCHES_INO64_T): New macros.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/typesizes.h:
|
||||
[__s390x__] (__INO_T_MATCHES_INO64_T): New macro.
|
||||
* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
|
||||
[defined __arch64__ || defined __sparcv9]
|
||||
(__INO_T_MATCHES_INO64_T): New macro.
|
||||
* sysdeps/unix/sysv/linux/x86/bits/typesizes.h
|
||||
[__x86_64__] (__INO_T_MATCHES_INO64_T): New macro.
|
||||
* bits/dirent.h (_DIRENT_MATCHES_DIRENT64): New macro.
|
||||
* sysdeps/unix/sysv/linux/bits/dirent.h
|
||||
[defined __OFF_T_MATCHES_OFF64_T && defined __INO_T_MATCHES_INO64_T]
|
||||
(_DIRENT_MATCHES_DIRENT64): New macro.
|
||||
|
||||
* io/lockf.c [__OFF_T_MATCHES_OFF64_T]:
|
||||
Define lockf64 as an alias.
|
||||
* libio/fseeko.c [__OFF_T_MATCHES_OFF64_T]:
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Directory entry structure `struct dirent'. Stub version.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996-2012 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
|
||||
@ -33,3 +33,6 @@ struct dirent64
|
||||
int d_fileno;
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Inform libc code that these two types are identical. */
|
||||
#define _DIRENT_MATCHES_DIRENT64 1
|
||||
|
@ -66,6 +66,9 @@
|
||||
for all ABI purposes, even if possibly expressed as different base types
|
||||
for C type-checking purposes. */
|
||||
# define __OFF_T_MATCHES_OFF64_T 1
|
||||
|
||||
/* Same for ino_t and ino64_t. */
|
||||
# define __INO_T_MATCHES_INO64_T 1
|
||||
#endif
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1992, 1997, 1998, 2009 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992-2012 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
|
||||
@ -15,7 +15,15 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* We need to avoid the header declaration of alphasort64, because
|
||||
the types don't match alphasort and then the compiler will
|
||||
complain about the mismatch when we do the alias below. */
|
||||
#define alphasort64 __renamed_alphasort64
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
#undef alphasort64
|
||||
|
||||
#include <string.h>
|
||||
|
||||
int
|
||||
@ -23,3 +31,7 @@ alphasort (const struct dirent **a, const struct dirent **b)
|
||||
{
|
||||
return strcoll ((*a)->d_name, (*b)->d_name);
|
||||
}
|
||||
|
||||
#ifdef _DIRENT_MATCHES_DIRENT64
|
||||
weak_alias (alphasort, alphasort64)
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1992, 1997, 1998, 2000, 2009 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992-2012 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
|
||||
@ -18,8 +18,13 @@
|
||||
#include <dirent.h>
|
||||
#include <string.h>
|
||||
|
||||
/* alphasort.c defines alphasort64 as an alias if _DIRENT_MATCHES_DIRENT64. */
|
||||
#ifndef _DIRENT_MATCHES_DIRENT64
|
||||
|
||||
int
|
||||
alphasort64 (const struct dirent64 **a, const struct dirent64 **b)
|
||||
{
|
||||
return strcoll ((*a)->d_name, (*b)->d_name);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,5 +1,4 @@
|
||||
/* Copyright (C) 1992-1998,2000,2002,2003,2009,2011
|
||||
Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992-2012 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
|
||||
@ -16,7 +15,15 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* We need to avoid the header declaration of scandir64, because
|
||||
the types don't match scandir and then the compiler will
|
||||
complain about the mismatch when we do the alias below. */
|
||||
#define scandir64 __renamed_scandir64
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
#undef scandir64
|
||||
|
||||
#include <fcntl.h>
|
||||
|
||||
#ifndef SCANDIR
|
||||
@ -35,3 +42,7 @@ SCANDIR (dir, namelist, select, cmp)
|
||||
{
|
||||
return SCANDIRAT (AT_FDCWD, dir, namelist, select, cmp);
|
||||
}
|
||||
|
||||
#ifdef _DIRENT_MATCHES_DIRENT64
|
||||
weak_alias (scandir, scandir64)
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000, 2009, 2011 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2000-2012 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
|
||||
@ -17,8 +17,13 @@
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
/* scandir.c defines scandir64 as an alias if _DIRENT_MATCHES_DIRENT64. */
|
||||
#ifndef _DIRENT_MATCHES_DIRENT64
|
||||
|
||||
#define SCANDIR scandir64
|
||||
#define SCANDIRAT scandirat64
|
||||
#define DIRENT_TYPE struct dirent64
|
||||
|
||||
#include <dirent/scandir.c>
|
||||
|
||||
#endif
|
||||
|
@ -1,5 +1,4 @@
|
||||
/* Copyright (C) 1992-1998,2000,2002,2003,2009,2011
|
||||
Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992-2012 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
|
||||
@ -16,7 +15,15 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* We need to avoid the header declaration of scandir64, because
|
||||
the types don't match scandir and then the compiler will
|
||||
complain about the mismatch when we do the alias below. */
|
||||
#define scandirat64 __renamed_scandirat64
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
#undef scandirat64
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
@ -141,3 +148,7 @@ SCANDIRAT (dfd, dir, namelist, select, cmp)
|
||||
return c.cnt;
|
||||
}
|
||||
libc_hidden_def (SCANDIRAT)
|
||||
|
||||
#ifdef _DIRENT_MATCHES_DIRENT64
|
||||
weak_alias (scandirat, scandirat64)
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000, 2009, 2011 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2000-2012 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
|
||||
@ -17,9 +17,14 @@
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
/* scandirat.c defines scandirat64 as an alias if _DIRENT_MATCHES_DIRENT64. */
|
||||
#ifndef _DIRENT_MATCHES_DIRENT64
|
||||
|
||||
#define SCANDIRAT scandirat64
|
||||
#define READDIR __readdir64
|
||||
#define DIRENT_TYPE struct dirent64
|
||||
#define SKIP_SCANDIR_CANCEL 1
|
||||
|
||||
#include "scandirat.c"
|
||||
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1992, 1997, 1998, 2009 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992-2012 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
|
||||
@ -15,7 +15,15 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* We need to avoid the header declaration of versionsort64, because
|
||||
the types don't match versionsort and then the compiler will
|
||||
complain about the mismatch when we do the alias below. */
|
||||
#define versionsort64 __renamed_versionsort64
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
#undef versionsort64
|
||||
|
||||
#include <string.h>
|
||||
|
||||
int
|
||||
@ -23,3 +31,7 @@ versionsort (const struct dirent **a, const struct dirent **b)
|
||||
{
|
||||
return __strverscmp ((*a)->d_name, (*b)->d_name);
|
||||
}
|
||||
|
||||
#ifdef _DIRENT_MATCHES_DIRENT64
|
||||
weak_alias (versionsort, versionsort64)
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1992, 1997, 1998, 2000, 2009 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992-2012 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
|
||||
@ -18,8 +18,13 @@
|
||||
#include <dirent.h>
|
||||
#include <string.h>
|
||||
|
||||
/* versionsort.c defines a versionsort64 alias if _DIRENT_MATCHES_DIRENT64. */
|
||||
#ifndef _DIRENT_MATCHES_DIRENT64
|
||||
|
||||
int
|
||||
versionsort64 (const struct dirent64 **a, const struct dirent64 **b)
|
||||
{
|
||||
return __strverscmp ((*a)->d_name, (*b)->d_name);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-08-02 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/bits/dirent.h
|
||||
(_DIRENT_MATCHES_DIRENT64): New macro.
|
||||
|
||||
2012-08-02 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996-2012 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
|
||||
@ -51,4 +51,7 @@ struct dirent64
|
||||
#define _DIRENT_HAVE_D_OFF
|
||||
#define _DIRENT_HAVE_D_TYPE
|
||||
|
||||
/* Inform libc code that these two types are effectively identical. */
|
||||
#define _DIRENT_MATCHES_DIRENT64 1
|
||||
|
||||
#endif /* bits/dirent.h */
|
||||
|
@ -67,6 +67,9 @@
|
||||
for all ABI purposes, even if possibly expressed as different base types
|
||||
for C type-checking purposes. */
|
||||
# define __OFF_T_MATCHES_OFF64_T 1
|
||||
|
||||
/* Same for ino_t and ino64_t. */
|
||||
# define __INO_T_MATCHES_INO64_T 1
|
||||
#endif
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996-2012 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
|
||||
@ -50,3 +50,8 @@ struct dirent64
|
||||
#define _DIRENT_HAVE_D_RECLEN
|
||||
#define _DIRENT_HAVE_D_OFF
|
||||
#define _DIRENT_HAVE_D_TYPE
|
||||
|
||||
#if defined __OFF_T_MATCHES_OFF64_T && defined __INO_T_MATCHES_INO64_T
|
||||
/* Inform libc code that these two types are effectively identical. */
|
||||
# define _DIRENT_MATCHES_DIRENT64 1
|
||||
#endif
|
||||
|
@ -72,6 +72,9 @@
|
||||
for all ABI purposes, even if possibly expressed as different base types
|
||||
for C type-checking purposes. */
|
||||
# define __OFF_T_MATCHES_OFF64_T 1
|
||||
|
||||
/* Same for ino_t and ino64_t. */
|
||||
# define __INO_T_MATCHES_INO64_T 1
|
||||
#endif
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
|
@ -66,6 +66,9 @@
|
||||
for all ABI purposes, even if possibly expressed as different base types
|
||||
for C type-checking purposes. */
|
||||
# define __OFF_T_MATCHES_OFF64_T 1
|
||||
|
||||
/* Same for ino_t and ino64_t. */
|
||||
# define __INO_T_MATCHES_INO64_T 1
|
||||
#endif
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
|
@ -78,6 +78,9 @@
|
||||
for all ABI purposes, even if possibly expressed as different base types
|
||||
for C type-checking purposes. */
|
||||
# define __OFF_T_MATCHES_OFF64_T 1
|
||||
|
||||
/* Same for ino_t and ino64_t. */
|
||||
# define __INO_T_MATCHES_INO64_T 1
|
||||
#endif
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/wordsize-64/alphasort.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/wordsize-64/alphasort64.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/wordsize-64/scandir.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/wordsize-64/scandir64.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/wordsize-64/scandirat.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/wordsize-64/scandirat64.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/wordsize-64/versionsort.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/wordsize-64/versionsort64.c>
|
@ -1,7 +0,0 @@
|
||||
#define alphasort64 rename_alphasort64
|
||||
|
||||
#include "../../dirent/alphasort.c"
|
||||
|
||||
#undef alphasort64
|
||||
|
||||
weak_alias (alphasort, alphasort64)
|
@ -1 +0,0 @@
|
||||
/* Defined in alphasort.c. */
|
@ -1,6 +0,0 @@
|
||||
#define scandir64 scandir64_renamed
|
||||
|
||||
#include "../../dirent/scandir.c"
|
||||
|
||||
#undef scandir64
|
||||
weak_alias (scandir, scandir64)
|
@ -1 +0,0 @@
|
||||
/* Defined in scandir.c. */
|
@ -1,6 +0,0 @@
|
||||
#define scandirat64 scandirat64_renamed
|
||||
|
||||
#include "../../dirent/scandirat.c"
|
||||
|
||||
#undef scandirat64
|
||||
weak_alias (scandirat, scandirat64)
|
@ -1 +0,0 @@
|
||||
/* Defined in scandirat.c. */
|
@ -1,7 +0,0 @@
|
||||
#define versionsort64 rename_versionsort64
|
||||
|
||||
#include "../../dirent/versionsort.c"
|
||||
|
||||
#undef versionsort64
|
||||
|
||||
weak_alias (versionsort, versionsort64)
|
@ -1 +0,0 @@
|
||||
/* Defined in versionsort.c. */
|
Loading…
Reference in New Issue
Block a user