# HG changeset patch # User Bram Moolenaar # Date 1599075003 -7200 # Node ID f55cba26348ff95bb0c5fe3db67f5e6ff4b6392c # Parent 48f41fa3a81917dde379d85ea6c1c2e9c67d3842 patch 8.2.1570: configure check for dirfd() does not work on HPUX Commit: https://github.com/vim/vim/commit/9d8bfae50fdaf5f5ec6307c60ebd1fad0927c6be Author: Bram Moolenaar Date: Wed Sep 2 21:21:35 2020 +0200 patch 8.2.1570: configure check for dirfd() does not work on HPUX Problem: Configure check for dirfd() does not work on HPUX. (Michael Osipov) Solution: Use AC_TRY_LINK instead of AC_TRY_COMPILE. (closes https://github.com/vim/vim/issues/6838) diff --git a/src/auto/configure b/src/auto/configure --- a/src/auto/configure +++ b/src/auto/configure @@ -13771,7 +13771,7 @@ DIR * dir=opendir("dirname"); dirfd(dir) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; }; $as_echo "#define HAVE_DIRFD 1" >>confdefs.h @@ -13779,7 +13779,8 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not usable" >&5 $as_echo "not usable" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock" >&5 $as_echo_n "checking for flock... " >&6; } @@ -13794,7 +13795,7 @@ flock(10, LOCK_SH); return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; }; $as_echo "#define HAVE_FLOCK 1" >>confdefs.h @@ -13802,7 +13803,8 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not usable" >&5 $as_echo "not usable" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysctl" >&5 $as_echo_n "checking for sysctl... " >&6; } diff --git a/src/configure.ac b/src/configure.ac --- a/src/configure.ac +++ b/src/configure.ac @@ -4013,7 +4013,7 @@ AC_TRY_LINK([#include ], [renam dnl check for dirfd() AC_MSG_CHECKING(for dirfd) -AC_TRY_COMPILE( +AC_TRY_LINK( [#include #include ], [DIR * dir=opendir("dirname"); dirfd(dir);], @@ -4021,7 +4021,7 @@ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DIRFD dnl check for flock() AC_MSG_CHECKING(for flock) -AC_TRY_COMPILE( +AC_TRY_LINK( [#include ], [flock(10, LOCK_SH);], AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOCK), AC_MSG_RESULT(not usable)) diff --git a/src/fileio.c b/src/fileio.c --- a/src/fileio.c +++ b/src/fileio.c @@ -24,6 +24,11 @@ // Is there any system that doesn't have access()? #define USE_MCH_ACCESS +#if defined(__hpux) && !defined(HAVE_DIRFD) +# define dirfd(x) ((x)->__dd_fd) +# define HAVE_DIRFD +#endif + static char_u *next_fenc(char_u **pp, int *alloced); #ifdef FEAT_EVAL static char_u *readfile_charconvert(char_u *fname, char_u *fenc, int *fdp); diff --git a/src/globals.h b/src/globals.h --- a/src/globals.h +++ b/src/globals.h @@ -773,7 +773,8 @@ EXTERN int ru_wid; // 'rulerfmt' width EXTERN int sc_col; // column for shown command #ifdef TEMPDIRNAMES -# if defined(UNIX) && defined(HAVE_FLOCK) && defined(HAVE_DIRFD) +# if defined(UNIX) && defined(HAVE_FLOCK) \ + && (defined(HAVE_DIRFD) || defined(__hpux)) EXTERN DIR *vim_tempdir_dp INIT(= NULL); // File descriptor of temp dir # endif EXTERN char_u *vim_tempdir INIT(= NULL); // Name of Vim's own temp dir. diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1570, +/**/ 1569, /**/ 1568,