From dfef2dc22fd8188b5ac577c7c87ab6f58ebb6440 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 13 Sep 2006 10:00:45 +0000 Subject: r18452: add configure test for a getdirentries() based replacement for broken readdir() Tru64 need this, linux also has getdirentries() but the native readdir() works but it means we can write the code on linux and when it works it may work on Tru64 too. tridge: can you try to implement this? metze (This used to be commit dd791d255ca61159b38a59b89f954a61fc5e9cf6) --- source4/lib/replace/repdir.m4 | 25 +++++++++++++++++++++++++ source4/lib/replace/repdir_getdirentries.c | 1 + 2 files changed, 26 insertions(+) create mode 100644 source4/lib/replace/repdir_getdirentries.c (limited to 'source4') diff --git a/source4/lib/replace/repdir.m4 b/source4/lib/replace/repdir.m4 index d15e4cb7af..a2f7bfa009 100644 --- a/source4/lib/replace/repdir.m4 +++ b/source4/lib/replace/repdir.m4 @@ -28,3 +28,28 @@ if test x"$libreplace_READDIR_GETDENTS" = x"yes"; then LIBREPLACEOBJ="${LIBREPLACEOBJ} repdir_getdents.o" libreplace_READDIR_NEEDED=no fi + +# +# try to replace with getdirentries() if needed +# +if test x"$libreplace_READDIR_NEEDED" = x"yes"; then +AC_CACHE_CHECK([for replacing readdir using getdirentries()],libreplace_READDIR_GETDIRENTRIES,[ + AC_TRY_RUN([ +#include "confdefs.h" +#include "$libreplacedir/repdir_getdirentries.c" +#define test_readdir_os2_delete main +#include "$libreplacedir/test/os2_delete.c"], + [libreplace_READDIR_GETDIRENTRIES=yes], + [libreplace_READDIR_GETDIRENTRIES=no]) +]) +fi +if test x"$libreplace_READDIR_GETDIRENTRIES" = x"yes"; then + AC_DEFINE(REPLACE_READDIR,1,[replace readdir]) + AC_DEFINE(REPLACE_READDIR_GETDIRENTRIES,1,[replace readdir using getdirentries()]) + LIBREPLACEOBJ="${LIBREPLACEOBJ} repdir_getdirentries.o" + libreplace_READDIR_NEEDED=no +fi + +if test x"$libreplace_READDIR_NEEDED" = x"yes"; then + AC_MSG_WARN([the provides readdir() is broken]) +fi diff --git a/source4/lib/replace/repdir_getdirentries.c b/source4/lib/replace/repdir_getdirentries.c new file mode 100644 index 0000000000..ff93ed4ea3 --- /dev/null +++ b/source4/lib/replace/repdir_getdirentries.c @@ -0,0 +1 @@ +#error "the readdir() replacement using getdirentried() isn't implemented yet" -- cgit