mirror of
https://github.com/sudo-project/sudo.git
synced 2025-08-28 21:07:55 +00:00
We still need the pread/pwrite hack for HP-UX 11.11 at least.
This time around, avoid defining _LARGEFILE64_SOURCE and just declare pread64/pwrite64 ourselves.
This commit is contained in:
parent
23e5304b78
commit
ad28b90c4d
14
config.h.in
14
config.h.in
@ -153,6 +153,14 @@
|
|||||||
don't. */
|
don't. */
|
||||||
#undef HAVE_DECL_PATH_MAX
|
#undef HAVE_DECL_PATH_MAX
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `pread64', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#undef HAVE_DECL_PREAD64
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `pwrite64', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#undef HAVE_DECL_PWRITE64
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `QUAD_MAX', and to 0 if you
|
/* Define to 1 if you have the declaration of `QUAD_MAX', and to 0 if you
|
||||||
don't. */
|
don't. */
|
||||||
#undef HAVE_DECL_QUAD_MAX
|
#undef HAVE_DECL_QUAD_MAX
|
||||||
@ -651,6 +659,9 @@
|
|||||||
/* Define to 1 if you have the `pread' function. */
|
/* Define to 1 if you have the `pread' function. */
|
||||||
#undef HAVE_PREAD
|
#undef HAVE_PREAD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `pread64' function. */
|
||||||
|
#undef HAVE_PREAD64
|
||||||
|
|
||||||
/* Define to 1 if you have the `priv_set' function. */
|
/* Define to 1 if you have the `priv_set' function. */
|
||||||
#undef HAVE_PRIV_SET
|
#undef HAVE_PRIV_SET
|
||||||
|
|
||||||
@ -678,6 +689,9 @@
|
|||||||
/* Define to 1 if you have the `pwrite' function. */
|
/* Define to 1 if you have the `pwrite' function. */
|
||||||
#undef HAVE_PWRITE
|
#undef HAVE_PWRITE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `pwrite64' function. */
|
||||||
|
#undef HAVE_PWRITE64
|
||||||
|
|
||||||
/* Define to 1 if you have the `pw_dup' function. */
|
/* Define to 1 if you have the `pw_dup' function. */
|
||||||
#undef HAVE_PW_DUP
|
#undef HAVE_PW_DUP
|
||||||
|
|
||||||
|
38
configure
vendored
38
configure
vendored
@ -20904,6 +20904,44 @@ if test "x$ac_cv_func_pread" = xyes
|
|||||||
then :
|
then :
|
||||||
printf "%s\n" "#define HAVE_PREAD 1" >>confdefs.h
|
printf "%s\n" "#define HAVE_PREAD 1" >>confdefs.h
|
||||||
|
|
||||||
|
# pread/pwrite on 32-bit HP-UX 11.x may not support large files
|
||||||
|
case "$host_os" in
|
||||||
|
hpux*|hiuxmpp*)
|
||||||
|
|
||||||
|
for ac_func in pread64 pwrite64
|
||||||
|
do :
|
||||||
|
as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||||
|
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||||
|
if eval test \"x\$"$as_ac_var"\" = x"yes"
|
||||||
|
then :
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
ac_fn_check_decl "$LINENO" "pread64" "ac_cv_have_decl_pread64" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
|
||||||
|
if test "x$ac_cv_have_decl_pread64" = xyes
|
||||||
|
then :
|
||||||
|
ac_have_decl=1
|
||||||
|
else $as_nop
|
||||||
|
ac_have_decl=0
|
||||||
|
fi
|
||||||
|
printf "%s\n" "#define HAVE_DECL_PREAD64 $ac_have_decl" >>confdefs.h
|
||||||
|
ac_fn_check_decl "$LINENO" "pwrite64" "ac_cv_have_decl_pwrite64" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
|
||||||
|
if test "x$ac_cv_have_decl_pwrite64" = xyes
|
||||||
|
then :
|
||||||
|
ac_have_decl=1
|
||||||
|
else $as_nop
|
||||||
|
ac_have_decl=0
|
||||||
|
fi
|
||||||
|
printf "%s\n" "#define HAVE_DECL_PWRITE64 $ac_have_decl" >>confdefs.h
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
else $as_nop
|
else $as_nop
|
||||||
|
|
||||||
case " $LIBOBJS " in
|
case " $LIBOBJS " in
|
||||||
|
11
configure.ac
11
configure.ac
@ -2542,7 +2542,16 @@ dnl Function checks
|
|||||||
dnl
|
dnl
|
||||||
AC_FUNC_GETGROUPS
|
AC_FUNC_GETGROUPS
|
||||||
AC_CHECK_FUNCS_ONCE([fexecve fmemopen killpg nl_langinfo faccessat wordexp getauxval fseeko])
|
AC_CHECK_FUNCS_ONCE([fexecve fmemopen killpg nl_langinfo faccessat wordexp getauxval fseeko])
|
||||||
AC_CHECK_FUNCS([pread], [], [
|
AC_CHECK_FUNCS([pread], [
|
||||||
|
# pread/pwrite on 32-bit HP-UX 11.x may not support large files
|
||||||
|
case "$host_os" in
|
||||||
|
hpux*|hiuxmpp*)
|
||||||
|
AC_CHECK_FUNCS([pread64 pwrite64], [
|
||||||
|
AC_CHECK_DECLS([pread64, pwrite64])
|
||||||
|
])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
], [
|
||||||
AC_LIBOBJ(pread)
|
AC_LIBOBJ(pread)
|
||||||
SUDO_APPEND_COMPAT_EXP(sudo_pread)
|
SUDO_APPEND_COMPAT_EXP(sudo_pread)
|
||||||
])
|
])
|
||||||
|
@ -347,17 +347,23 @@ int getdomainname(char *, size_t);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HP-UX 11.00 has broken pread/pwrite that can't handle a 64-bit off_t
|
* HP-UX 11.00 has broken pread/pwrite on 32-bit machines when
|
||||||
* on 32-bit machines.
|
* _FILE_OFFSET_BITS == 64. Use pread64/pwrite64 instead.
|
||||||
*/
|
*/
|
||||||
#if defined(__hpux) && !defined(__LP64__)
|
#if defined(__hpux) && !defined(__LP64__)
|
||||||
# ifdef HAVE_PREAD64
|
# ifdef HAVE_PREAD64
|
||||||
# undef pread
|
# undef pread
|
||||||
# define pread(_a, _b, _c, _d) pread64((_a), (_b), (_c), (_d))
|
# define pread(_a, _b, _c, _d) pread64((_a), (_b), (_c), (_d))
|
||||||
|
# if defined(HAVE_DECL_PREAD64) && !HAVE_DECL_PREAD64
|
||||||
|
ssize_t pread64(int fd, void *buf, size_t nbytes, off64_t offset);
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
# ifdef HAVE_PWRITE64
|
# ifdef HAVE_PWRITE64
|
||||||
# undef pwrite
|
# undef pwrite
|
||||||
# define pwrite(_a, _b, _c, _d) pwrite64((_a), (_b), (_c), (_d))
|
# define pwrite(_a, _b, _c, _d) pwrite64((_a), (_b), (_c), (_d))
|
||||||
|
# if defined(HAVE_DECL_PWRITE64) && !HAVE_DECL_PWRITE64
|
||||||
|
ssize_t pwrite64(int fd, const void *buf, size_t nbytes, off64_t offset);
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#endif /* __hpux && !__LP64__ */
|
#endif /* __hpux && !__LP64__ */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user