diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-04-17 09:59:51 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-10-02 10:40:33 -0300 |
commit | 10b45ae4ca822a7964e893d029d1a558ae533d87 (patch) | |
tree | c99737be6e512187d81cfaab8cad851386903b2c | |
parent | e9c542898335ba982c9ffcf0bf3fb7fe3953c523 (diff) | |
download | glibc-azanella/bz23960.tar.gz |
dirent: Deprecate getdirentriesazanella/bz23960
The interface has some issues:
1. It is build on top getdents on Linux and requires handling
non-LFS call using LFS getdents.
2. It is not wildly used and the non-LFS support is as problematic
as non-LFS readdir. glibc only exports the LFS getdents.
3. It is not a direct replacement over BSD since on some plataform
its signature has changed (FreeBSD 11, for instance, used to
set the offset as a 'long' and changed to 'off_t' on version 12).
The idea is to eventually move the symbols to compat ones.
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | dirent/dirent.h | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Makefile | 3 |
3 files changed, 10 insertions, 3 deletions
@@ -33,6 +33,9 @@ Deprecated and removed features, and other changes affecting compatibility: * The mallinfo function is marked deprecated. Callers should call mallinfo2 instead. +* The function getdirentries is now deprecated, applications should use + either getdents or POSIX readdir instead. + Changes to build and runtime requirements: [Add changes to build and runtime requirements here] diff --git a/dirent/dirent.h b/dirent/dirent.h index 92d0925047..4ee60471f7 100644 --- a/dirent/dirent.h +++ b/dirent/dirent.h @@ -353,14 +353,15 @@ extern int alphasort64 (const struct dirent64 **__e1, extern __ssize_t getdirentries (int __fd, char *__restrict __buf, size_t __nbytes, __off_t *__restrict __basep) - __THROW __nonnull ((2, 4)); + __THROW __nonnull ((2, 4)) __attribute_deprecated__; # else # ifdef __REDIRECT extern __ssize_t __REDIRECT_NTH (getdirentries, (int __fd, char *__restrict __buf, size_t __nbytes, __off64_t *__restrict __basep), - getdirentries64) __nonnull ((2, 4)); + getdirentries64) + __THROW __nonnull ((2, 4)) __attribute_deprecated__; # else # define getdirentries getdirentries64 # endif @@ -370,7 +371,7 @@ extern __ssize_t __REDIRECT_NTH (getdirentries, extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf, size_t __nbytes, __off64_t *__restrict __basep) - __THROW __nonnull ((2, 4)); + __THROW __nonnull ((2, 4)) __attribute_deprecated__; # endif #endif /* Use misc. */ diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 3bd3106ef9..55b8df59c5 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -260,6 +260,9 @@ ifeq ($(subdir),dirent) sysdep_routines += getdirentries getdirentries64 tests += tst-getdents64 tests-internal += tst-readdir64-compat + +# Avoid the warning for the weak_alias for _DIRENT_MATCHES_DIRENT64 +CFLAGS-getdirentries64.c = -Wno-deprecated-declarations endif ifeq ($(subdir),nis) |