]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
HP-UX: pread() and pwrite() are broken, use our own implementation.
authorTimo Sirainen <tss@iki.fi>
Wed, 11 Jun 2008 21:01:21 +0000 (00:01 +0300)
committerTimo Sirainen <tss@iki.fi>
Wed, 11 Jun 2008 21:01:21 +0000 (00:01 +0300)
--HG--
branch : HEAD

configure.in
src/lib/compat.c
src/lib/compat.h

index 23fa3a42f232c86f2a4a29d399ea0ff733b85667..a03fdfc2de2689ba89045b769cf976ca7d61a995 100644 (file)
@@ -613,6 +613,7 @@ dnl * OS specific options
 case "$host_os" in
        hpux*)
                CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
+               AC_DEFINE(PREAD_BROKEN,, Defint if pread/pwrite implementation is broken)
                ;;
        *)
                ;;
index e85054264878c1c0dfd430fbe9cf305516dda814..29cfa494d3cf5703647a7c7dc446e5b061862bef 100644 (file)
@@ -107,7 +107,7 @@ ssize_t my_writev(int fd, const struct iovec *iov, int iov_len)
 }
 #endif
 
-#ifndef HAVE_PREAD
+#if !defined(HAVE_PREAD) || defined(PREAD_BROKEN)
 ssize_t my_pread(int fd, void *buf, size_t count, off_t offset)
 {
        ssize_t ret;
@@ -149,9 +149,7 @@ ssize_t my_pwrite(int fd, const void *buf, size_t count, off_t offset)
                return -1;
        return ret;
 }
-#endif
-
-#ifdef PREAD_WRAPPERS
+#elif defined(PREAD_WRAPPERS)
 
 ssize_t my_pread(int fd, void *buf, size_t count, off_t offset)
 {
index 5a934b29f5bc77418ddde3ba75d63da2c95c403a..1e765826793a3127a04bd2acf8fd0af33bd15057 100644 (file)
@@ -160,7 +160,7 @@ struct iovec;
 ssize_t my_writev(int fd, const struct iovec *iov, int iov_len);
 #endif
 
-#if !defined (HAVE_PREAD) || defined (PREAD_WRAPPERS)
+#if !defined(HAVE_PREAD) || defined(PREAD_WRAPPERS) || defined(PREAD_BROKEN)
 #  ifndef IN_COMPAT_C
 #    define pread my_pread
 #    define pwrite my_pwrite