summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/lib/tdb/aclocal.m412
-rw-r--r--source4/lib/tdb/common/tdb_private.h8
-rw-r--r--source4/lib/tdb/config.m43
3 files changed, 23 insertions, 0 deletions
diff --git a/source4/lib/tdb/aclocal.m4 b/source4/lib/tdb/aclocal.m4
new file mode 100644
index 0000000000..cdc2a2fa52
--- /dev/null
+++ b/source4/lib/tdb/aclocal.m4
@@ -0,0 +1,12 @@
+dnl see if a declaration exists for a function or variable
+dnl defines HAVE_function_DECL if it exists
+dnl AC_HAVE_DECL(var, includes)
+AC_DEFUN(AC_HAVE_DECL,
+[
+ AC_CACHE_CHECK([for $1 declaration],ac_cv_have_$1_decl,[
+ AC_TRY_COMPILE([$2],[int i = (int)$1],
+ ac_cv_have_$1_decl=yes,ac_cv_have_$1_decl=no)])
+ if test x"$ac_cv_have_$1_decl" = x"yes"; then
+ AC_DEFINE([HAVE_]translit([$1], [a-z], [A-Z])[_DECL],1,[Whether $1() is available])
+ fi
+])
diff --git a/source4/lib/tdb/common/tdb_private.h b/source4/lib/tdb/common/tdb_private.h
index 2b2d6de411..a451dff0af 100644
--- a/source4/lib/tdb/common/tdb_private.h
+++ b/source4/lib/tdb/common/tdb_private.h
@@ -45,6 +45,14 @@
#include <sys/stat.h>
#include "config.h"
#include "tdb.h"
+
+#ifndef HAVE_PREAD_DECL
+ssize_t pread(int fd, void *buf, size_t count, off_t offset);
+#endif
+#ifndef HAVE_PWRITE_DECL
+ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
+#endif
+
#else
#include "includes.h"
#include "lib/tdb/include/tdb.h"
diff --git a/source4/lib/tdb/config.m4 b/source4/lib/tdb/config.m4
index 2ebd29993d..31c33552ea 100644
--- a/source4/lib/tdb/config.m4
+++ b/source4/lib/tdb/config.m4
@@ -1,6 +1,9 @@
AC_CHECK_FUNCS(mmap pread pwrite)
AC_CHECK_HEADERS(getopt.h)
+AC_HAVE_DECL(pread, [#include <unistd.h>])
+AC_HAVE_DECL(pwrite, [#include <unistd.h>])
+
if test x"$experimental" = x"yes"; then
SMB_LIBRARY_ENABLE(libtdb,YES)
fi