forked from aniani/vim
patch 8.1.0371: argument types for select() may be wrong
Problem: Argument types for select() may be wrong. Solution: Use a configure macro. (Tobias Ulmer)
This commit is contained in:
75
src/auto/configure
vendored
75
src/auto/configure
vendored
@@ -12630,6 +12630,81 @@ _ACEOF
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
for ac_header in sys/select.h sys/socket.h
|
||||||
|
do :
|
||||||
|
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||||
|
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
|
||||||
|
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for select" >&5
|
||||||
|
$as_echo_n "checking types of arguments for select... " >&6; }
|
||||||
|
if ${ac_cv_func_select_args+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
for ac_arg234 in 'fd_set *' 'int *' 'void *'; do
|
||||||
|
for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do
|
||||||
|
for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
$ac_includes_default
|
||||||
|
#ifdef HAVE_SYS_SELECT_H
|
||||||
|
# include <sys/select.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_SOCKET_H
|
||||||
|
# include <sys/socket.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
extern int select ($ac_arg1,
|
||||||
|
$ac_arg234, $ac_arg234, $ac_arg234,
|
||||||
|
$ac_arg5);
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
done
|
||||||
|
done
|
||||||
|
done
|
||||||
|
# Provide a safe default value.
|
||||||
|
: "${ac_cv_func_select_args=int,int *,struct timeval *}"
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_select_args" >&5
|
||||||
|
$as_echo "$ac_cv_func_select_args" >&6; }
|
||||||
|
ac_save_IFS=$IFS; IFS=','
|
||||||
|
set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'`
|
||||||
|
IFS=$ac_save_IFS
|
||||||
|
shift
|
||||||
|
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define SELECT_TYPE_ARG1 $1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define SELECT_TYPE_ARG234 ($2)
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define SELECT_TYPE_ARG5 ($3)
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
|
||||||
$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
|
$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
|
||||||
if ${ac_cv_sys_largefile_source+:} false; then :
|
if ${ac_cv_sys_largefile_source+:} false; then :
|
||||||
|
@@ -113,6 +113,9 @@
|
|||||||
/* Define if you can safely include both <sys/time.h> and <sys/select.h>. */
|
/* Define if you can safely include both <sys/time.h> and <sys/select.h>. */
|
||||||
#undef SYS_SELECT_WITH_SYS_TIME
|
#undef SYS_SELECT_WITH_SYS_TIME
|
||||||
|
|
||||||
|
/* Define to a typecast for select() arguments 2, 3 and 4. */
|
||||||
|
#undef SELECT_TYPE_ARG234
|
||||||
|
|
||||||
/* Define if you have /dev/ptc */
|
/* Define if you have /dev/ptc */
|
||||||
#undef HAVE_DEV_PTC
|
#undef HAVE_DEV_PTC
|
||||||
|
|
||||||
|
@@ -3721,6 +3721,7 @@ AC_CHECK_FUNCS(fchdir fchown fchmod fsync getcwd getpseudotty \
|
|||||||
sigprocmask sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
sigprocmask sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||||
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
||||||
usleep utime utimes mblen ftruncate unsetenv)
|
usleep utime utimes mblen ftruncate unsetenv)
|
||||||
|
AC_FUNC_SELECT_ARGTYPES
|
||||||
AC_FUNC_FSEEKO
|
AC_FUNC_FSEEKO
|
||||||
|
|
||||||
dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
|
dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
|
||||||
|
@@ -18,17 +18,6 @@
|
|||||||
* changed beyond recognition.
|
* changed beyond recognition.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* Some systems have a prototype for select() that has (int *) instead of
|
|
||||||
* (fd_set *), which is wrong. This define removes that prototype. We define
|
|
||||||
* our own prototype below.
|
|
||||||
* Don't use it for the Mac, it causes a warning for precompiled headers.
|
|
||||||
* TODO: use a configure check for precompiled headers?
|
|
||||||
*/
|
|
||||||
#if !defined(__APPLE__) && !defined(__TANDEM)
|
|
||||||
# define select select_declared_wrong
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "vim.h"
|
#include "vim.h"
|
||||||
|
|
||||||
#ifdef FEAT_MZSCHEME
|
#ifdef FEAT_MZSCHEME
|
||||||
@@ -54,14 +43,9 @@ static int selinux_enabled = -1;
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
#ifdef __BEOS__
|
||||||
* Use this prototype for select, some include files have a wrong prototype
|
|
||||||
*/
|
|
||||||
#ifndef __TANDEM
|
|
||||||
# undef select
|
# undef select
|
||||||
# ifdef __BEOS__
|
|
||||||
# define select beos_select
|
# define select beos_select
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __CYGWIN__
|
#ifdef __CYGWIN__
|
||||||
@@ -77,10 +61,6 @@ static int selinux_enabled = -1;
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_SELECT)
|
|
||||||
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_MOUSE_GPM
|
#ifdef FEAT_MOUSE_GPM
|
||||||
# include <gpm.h>
|
# include <gpm.h>
|
||||||
/* <linux/keyboard.h> contains defines conflicting with "keymap.h",
|
/* <linux/keyboard.h> contains defines conflicting with "keymap.h",
|
||||||
@@ -6316,7 +6296,8 @@ select_eintr:
|
|||||||
if (interrupted != NULL)
|
if (interrupted != NULL)
|
||||||
*interrupted = FALSE;
|
*interrupted = FALSE;
|
||||||
|
|
||||||
ret = select(maxfd + 1, &rfds, &wfds, &efds, tvp);
|
ret = select(maxfd + 1, SELECT_TYPE_ARG234 &rfds,
|
||||||
|
SELECT_TYPE_ARG234 &wfds, SELECT_TYPE_ARG234 &efds, tvp);
|
||||||
result = ret > 0 && FD_ISSET(fd, &rfds);
|
result = ret > 0 && FD_ISSET(fd, &rfds);
|
||||||
if (result)
|
if (result)
|
||||||
--ret;
|
--ret;
|
||||||
|
@@ -794,6 +794,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
371,
|
||||||
/**/
|
/**/
|
||||||
370,
|
370,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user