From d7579fb95808bd0da7af8b3575e71c943397ab12 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Wed, 1 Aug 2018 00:58:02 +0300 Subject: [PATCH] autotools: include win32 specific headers for socklen_t detection on win32/mingw The [1] removes EVENT__ prefix, and now if we will incorrectly detect that "foobar" (or socklen_t in our case) type is not available, but somewhere later it will be available then we will get next error [2]: error: two or more data types in declaration specifiers According to [3]: - Compile something in Cygwin and you are compiling it for Cygwin. - Compile something in MinGW and you are compiling it for Windows. And I can confirm this, since there is _WIN32 defined (according to [4]) And since according to [5] our image in appveyour (Visual Studion 2015) has mingw (and we use it, not cygwin) we need ws2tcpip.h (over sys/socket.h -- which does not exist in win32) header to detect socklen_t existence. [1]: 587e9f5828c4eb3c6e79e9eb29f174e4ae0c05bd ("config.h can't be prefixed unconditionally") [2]: https://ci.appveyor.com/project/nmathewson/libevent/build/job/yonukoc5q3tr3e5e#L372 [3]: https://stackoverflow.com/questions/771756/what-is-the-difference-between-cygwin-and-mingw [4]: https://www.appveyor.com/docs/build-environment/#mingw-msys-cygwin [5]: https://ci.appveyor.com/project/nmathewson/libevent/build/job/yonukoc5q3tr3e5e#L164 Fixes: #649 (cherry picked from commit 4728ffed865985ab663b2e067afb904d124fc1db) --- configure.ac | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index a3b7fd41..d28c5918 100644 --- a/configure.ac +++ b/configure.ac @@ -727,7 +727,11 @@ AC_CHECK_TYPES([struct linger],,, AC_MSG_CHECKING([for socklen_t]) AC_TRY_COMPILE([ #include - #include ], + #ifdef _WIN32 + #include + #else + #include + #endif], [socklen_t x;], AC_MSG_RESULT([yes]), [AC_MSG_RESULT([no]) -- 2.40.0