r22772: - Still working on the fact that readahead() is not declared (on at least one
authorDerrell Lipman <derrell@samba.org>
Thu, 10 May 2007 01:27:18 +0000 (01:27 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:21:56 +0000 (12:21 -0500)
  OS) but is available for linking.  Instead of running configure tests with
  -Werror-implicit-function-declaration in developer mode (which may lead to
  different library functions being used in developer mode than when not in
  developer mode), add tests for whether readahead is declared.  If not,
  provide a replacement declaration in lib/replace.

source/configure.in
source/lib/replace/README
source/lib/replace/libreplace.m4
source/lib/replace/replace.h

index 497c4ac62400ac6573de99664d0f7cb4c357c712..8c728deea2c261045f9aa5d91c9d4d1e056129b9 100644 (file)
@@ -1337,19 +1337,6 @@ AC_CHECK_LIB(exc, trace_back_stack)
 # implicit declaration warnings without failing the test (in developer mode)
 ac_no_error_on_warning_CFLAGS="${CFLAGS}"
 
-# Since --enable-developer causes warnings to be treated as errors during
-# compilation, we should avoid using features that will fail to compile.
-#
-# We don't want to enable this earlier because the built-in functions such as
-# memset fail to configure properly.
-
-if test x"$samba_cv_HAVE_Werror_implicit_function_declaration" = x"yes" -a \
-        x"$developer" = xyes; then
-  CFLAGS="${CFLAGS} -Werror-implicit-function-declaration"
-  ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-  ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-fi
-
 echo -n "checking for GPFS GPL libs... "
 save_LIBS="$LIBS"
 LIBS="$LIBS -lgpfs_gpl"
index 77558b2ca96718f95c3e58a950b0697f1c685e70..a2f9e2fa29637870a4e7ab3681775b89cf693c2b 100644 (file)
@@ -55,6 +55,11 @@ strtoull
 socketpair
 strptime
 
+These external declarations are provided for those systems which lack the
+declaration but provide the function:
+
+readahead
+
 Types:
 bool
 socklen_t
index e9b19b7cf51b45bdf38ba81941de5a8c806a346c..a030ce2e909c2b51eb6c3ea1d53aeb27494f488e 100644 (file)
@@ -155,6 +155,7 @@ AC_CHECK_FUNCS(pread pwrite strndup strcasestr strtok_r mkdtemp socketpair)
 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
 AC_HAVE_DECL(errno, [#include <errno.h>])
+AC_HAVE_DECL(readahead, [#include <fcntl.h>])
 
 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
 AC_TRY_RUN([#include <stdlib.h>
index b96356ac4670c2e4b76e0458986f8fdf50629a30..916d5a55e69cad497b6236b0032e9037c343107a 100644 (file)
@@ -111,6 +111,11 @@ extern char *sys_errlist[];
 extern int errno;
 #endif
 
+#if defined(HAVE_LINUX_READAHEAD) && ! defined(HAVE_READAHEAD_DECL)
+ssize_t readahead(int fd, off64_t offset, size_t count);
+#endif
+
+
 #ifndef HAVE_STRDUP
 #define strdup rep_strdup
 char *rep_strdup(const char *s);