From 44970d7331e4f369e160af0135a2d1fc16f27a21 Mon Sep 17 00:00:00 2001 From: jdknight-rockwellcollins Date: Mon, 15 Jan 2018 12:41:25 -0500 Subject: [PATCH] include sys/time.h outside fallback select (#55) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The implementation of 'wait_fd' (inside 'connection_base.cxx') always relies on the existence of the 'timeval' structure. In Linux, this structure is provided by the header 'sys/time.h'. If polling or select capabilities are detected, the structure is never included into the source and will result in a compilation error (GCC 7.x): connection_base.cxx:1153:28: error: ‘{anonymous}::tv_milliseconds’ declared as an ‘inline’ variable inline int tv_milliseconds(timeval *tv = nullptr) ^~~~~~~ ... The following moves the 'HAVE_SYS_TIME_H' check outside the select-fallback case so that the header can be included no matter the event-function feature is used. Signed-off-by: James Knight --- configure | 28 ++++++++++++---------------- configure.ac | 6 +----- src/connection_base.cxx | 2 +- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/configure b/configure index 7d6d96a98e0fcb7dde1e05adf034afe624ada6d6..dd2a33cb54dba5d3223fc2b4c8d03be7c8abde4e 100755 --- a/configure +++ b/configure @@ -17285,22 +17285,6 @@ fi done -if test "$select_h" != "yes" -then -for ac_header in sys/time.h -do : - ac_fn_cxx_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_time_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_TIME_H 1 -_ACEOF - -fi - -done - -fi - # Some systems keep select() in a separate library which is not linked by # default. See if we need one of those. socklibok=no @@ -17419,6 +17403,18 @@ fi fi # No poll() +for ac_header in sys/time.h +do : + ac_fn_cxx_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_time_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_TIME_H 1 +_ACEOF + +fi + +done + # Add options to compiler command line, if compiler accepts them. add_compiler_opts_if_ok() { diff --git a/configure.ac b/configure.ac index 8977c3d3900a5de66b580365d8fe7d133cd1042d..6649f7fa0ed0572489a0db09517c659012ce707c 100644 --- a/configure.ac +++ b/configure.ac @@ -117,11 +117,6 @@ then select_h=no AC_CHECK_HEADERS([sys/select.h], [select_h=yes]) -if test "$select_h" != "yes" -then -AC_CHECK_HEADERS([sys/time.h]) -fi - # Some systems keep select() in a separate library which is not linked by # default. See if we need one of those. socklibok=no @@ -150,6 +145,7 @@ fi fi # No poll() +AC_CHECK_HEADERS([sys/time.h]) # Add options to compiler command line, if compiler accepts them. add_compiler_opts_if_ok() { diff --git a/src/connection_base.cxx b/src/connection_base.cxx index 37ed7728ffd02e1fded3b5d64d6fb2d5fd74d5ed..0ec55bc5bd761690f66b67396cfbf3e3c56ba618 100644 --- a/src/connection_base.cxx +++ b/src/connection_base.cxx @@ -38,10 +38,10 @@ #if defined(HAVE_UNISTD_H) #include #endif +#endif #if defined(HAVE_SYS_TIME_H) #include #endif -#endif #include "libpq-fe.h" -- 1.8.3.msysgit.0