summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDerrell Lipman <derrell@samba.org>2007-05-10 01:27:18 +0000
committerDerrell Lipman <derrell@samba.org>2007-05-10 01:27:18 +0000
commit44bec8696c2cfcc666cb5ba4e5d70e4dd9dc5159 (patch)
treefaf9b6d3a43e650922982a8afa7e7cd0b4ced0a1
parentc7744fa4d43fb998d0287b78aa1bbc3ede7cd692 (diff)
downloadsamba-44bec8696c2cfcc666cb5ba4e5d70e4dd9dc5159.tar.gz
samba-44bec8696c2cfcc666cb5ba4e5d70e4dd9dc5159.tar.xz
samba-44bec8696c2cfcc666cb5ba4e5d70e4dd9dc5159.zip
r22772: - Still working on the fact that readahead() is not declared (on at least one
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.
-rw-r--r--source/configure.in13
-rw-r--r--source/lib/replace/README5
-rw-r--r--source/lib/replace/libreplace.m41
-rw-r--r--source/lib/replace/replace.h5
4 files changed, 11 insertions, 13 deletions
diff --git a/source/configure.in b/source/configure.in
index 497c4ac6240..8c728deea2c 100644
--- a/source/configure.in
+++ b/source/configure.in
@@ -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"
diff --git a/source/lib/replace/README b/source/lib/replace/README
index 77558b2ca96..a2f9e2fa296 100644
--- a/source/lib/replace/README
+++ b/source/lib/replace/README
@@ -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
diff --git a/source/lib/replace/libreplace.m4 b/source/lib/replace/libreplace.m4
index e9b19b7cf51..a030ce2e909 100644
--- a/source/lib/replace/libreplace.m4
+++ b/source/lib/replace/libreplace.m4
@@ -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>
diff --git a/source/lib/replace/replace.h b/source/lib/replace/replace.h
index b96356ac467..916d5a55e69 100644
--- a/source/lib/replace/replace.h
+++ b/source/lib/replace/replace.h
@@ -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);