From: Andrew Deason Date: Mon, 14 Feb 2011 19:53:11 +0000 (-0600) Subject: HPUX: Disable positional I/O X-Git-Tag: upstream/1.8.0_pre1^2~4191 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=11b2c6d6fe4dbbf5a54ae1e08e979c35ab6b7fa0;p=packages%2Fo%2Fopenafs.git HPUX: Disable positional I/O Some versions of HP-UX have the pread() and pwrite() functions, but they behave in odd ways; most notably, ignoring the offset argument when _FILE_OFFSET_BITS is defined to 64. This is noted in recent gnulib documentation , and slightly less clear references to pread() being broken can be found on the development mailing list for git itself. It is not completely clear what specific HP-UX versions are affected by this. An autoconf run-time test may also be insufficient, because the same binaries should be usable on machines with broken and non-broken pread() implementations. So, to be safe, disable positional I/O on HP-UX unconditionally. Change-Id: I09b8d9c441622c961d1df90fe27eeccaa948f5c4 Reviewed-on: http://gerrit.openafs.org/3949 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/acinclude.m4 b/acinclude.m4 index 510338816..2fa43b8c9 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1449,22 +1449,29 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([#ifdef HAVE_SYS_TYPES_H ], [AC_MSG_RESULT(no)]) -AC_MSG_CHECKING([for positional I/O]) -if test "$ac_cv_func_pread" = "yes" && \ - test "$ac_cv_func_pwrite" = "yes"; then - AC_DEFINE(HAVE_PIO, 1, [define if you have pread() and pwrite()]) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi -AC_MSG_CHECKING([for vectored positional I/O]) -if test "$ac_cv_func_preadv" = "yes" && \ - test "$ac_cv_func_pwritev" = "yes"; then - AC_DEFINE(HAVE_PIOV, 1, [define if you have preadv() and pwritev()]) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi +case $AFS_SYSNAME in +*hp_ux* | *hpux*) + AC_MSG_WARN([Some versions of HP-UX have a buggy positional I/O implementation. Forcing no positional I/O.]) + ;; +*) + AC_MSG_CHECKING([for positional I/O]) + if test "$ac_cv_func_pread" = "yes" && \ + test "$ac_cv_func_pwrite" = "yes"; then + AC_DEFINE(HAVE_PIO, 1, [define if you have pread() and pwrite()]) + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi + AC_MSG_CHECKING([for vectored positional I/O]) + if test "$ac_cv_func_preadv" = "yes" && \ + test "$ac_cv_func_pwritev" = "yes"; then + AC_DEFINE(HAVE_PIOV, 1, [define if you have preadv() and pwritev()]) + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi + ;; +esac AC_MSG_CHECKING([for POSIX regex library]) if test "$ac_cv_header_regex_h" = "yes" && \