mirror of
https://github.com/curl/curl.git
synced 2025-03-07 15:27:17 +08:00
1. Re-enable `HAVE_GETADDRINFO` detection on Windows Commitd08ee3c83d
(in 2013) added logic that automatically assumed `getaddrinfo()` to be present for builds with IPv6 enabled. As it turns out, certain toolchains (e.g. original MinGW) by default target older Windows versions, and thus do not support `getaddrinfo()` out of the box. The issue was masked for a while by CMake builds forcing a newer Windows version, but that logic got deleted in commit8ba22ffb20
. Since then, some CI builds started failing due to IPv6 enabled, `HAVE_GETADDRINFO` set, but `getaddrinfo()` in fact missing. It also turns out that IPv6 works without `getaddrinfo()` since commit67a08dca27
(from 2019, via #4662). So, to resolve all this, we can now revert the initial commit, thus restoring `getaddrinfo()` detection and support IPv6 regardless of its outcome. Reported-by: Daniel Stenberg 2. Omit `bcrypt` with original MinGW Original (aka legacy/old) MinGW versions do not support `bcrypt` (introduced with Vista). We already have logic to handle that in `lib/rand.c` and autotools builds, where we do not call the unsupported API and do not link `bcrypt`, respectively, when using original MinGW. This patch ports that logic to CMake, fixing the link error: `c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -lbcrypt` Ref: https://ci.appveyor.com/project/curlorg/curl/builds/44624888/job/40vle84cn4vle7s0#L508 Regression since76172511e7
Fixes #9214 Fixes #9393 Fixes #9395 Closes #9396
99 lines
2.8 KiB
CMake
99 lines
2.8 KiB
CMake
#***************************************************************************
|
|
# _ _ ____ _
|
|
# Project ___| | | | _ \| |
|
|
# / __| | | | |_) | |
|
|
# | (__| |_| | _ <| |___
|
|
# \___|\___/|_| \_\_____|
|
|
#
|
|
# Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
#
|
|
# This software is licensed as described in the file COPYING, which
|
|
# you should have received as part of this distribution. The terms
|
|
# are also available at https://curl.se/docs/copyright.html.
|
|
#
|
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
# copies of the Software, and permit persons to whom the Software is
|
|
# furnished to do so, under the terms of the COPYING file.
|
|
#
|
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
# KIND, either express or implied.
|
|
#
|
|
# SPDX-License-Identifier: curl
|
|
#
|
|
###########################################################################
|
|
if(NOT UNIX)
|
|
if(WIN32)
|
|
set(HAVE_LIBSOCKET 0)
|
|
set(HAVE_GETHOSTNAME 1)
|
|
set(HAVE_LIBZ 0)
|
|
|
|
set(HAVE_ARPA_INET_H 0)
|
|
set(HAVE_FCNTL_H 1)
|
|
set(HAVE_INTTYPES_H 0)
|
|
set(HAVE_IO_H 1)
|
|
set(HAVE_NETDB_H 0)
|
|
set(HAVE_NETINET_IN_H 0)
|
|
set(HAVE_NET_IF_H 0)
|
|
set(HAVE_PROCESS_H 1)
|
|
set(HAVE_PWD_H 0)
|
|
set(HAVE_SETJMP_H 1)
|
|
set(HAVE_SIGNAL_H 1)
|
|
set(HAVE_STDINT_H 0)
|
|
set(HAVE_STDLIB_H 1)
|
|
set(HAVE_STRINGS_H 0)
|
|
set(HAVE_STRING_H 1)
|
|
set(HAVE_SYS_PARAM_H 0)
|
|
set(HAVE_SYS_POLL_H 0)
|
|
set(HAVE_SYS_SELECT_H 0)
|
|
set(HAVE_SYS_SOCKET_H 0)
|
|
set(HAVE_SYS_SOCKIO_H 0)
|
|
set(HAVE_SYS_STAT_H 1)
|
|
set(HAVE_SYS_TIME_H 0)
|
|
set(HAVE_SYS_TYPES_H 1)
|
|
set(HAVE_SYS_UTIME_H 1)
|
|
set(HAVE_TERMIOS_H 0)
|
|
set(HAVE_TERMIO_H 0)
|
|
set(HAVE_TIME_H 1)
|
|
set(HAVE_UNISTD_H 0)
|
|
set(HAVE_UTIME_H 0)
|
|
set(HAVE_ZLIB_H 0)
|
|
|
|
set(HAVE_SOCKET 1)
|
|
set(HAVE_SELECT 1)
|
|
set(HAVE_STRDUP 1)
|
|
set(HAVE_STRTOK_R 0)
|
|
set(HAVE_STRCASECMP 0)
|
|
set(HAVE_STRICMP 1)
|
|
set(HAVE_STRCMPI 1)
|
|
set(HAVE_GETTIMEOFDAY 0)
|
|
set(HAVE_CLOSESOCKET 1)
|
|
set(HAVE_SIGSETJMP 0)
|
|
set(HAVE_GETPASS_R 0)
|
|
set(HAVE_GETPWUID 0)
|
|
set(HAVE_GETEUID 0)
|
|
set(HAVE_UTIME 1)
|
|
set(HAVE_RAND_EGD 0)
|
|
set(HAVE_GMTIME_R 0)
|
|
set(HAVE_GETHOSTBYNAME_R 0)
|
|
set(HAVE_SIGNAL_FUNC 1)
|
|
set(HAVE_SIGNAL_MACRO 0)
|
|
|
|
set(HAVE_GETHOSTBYNAME_R_3 0)
|
|
set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0)
|
|
set(HAVE_GETHOSTBYNAME_R_5 0)
|
|
set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0)
|
|
set(HAVE_GETHOSTBYNAME_R_6 0)
|
|
set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0)
|
|
|
|
set(TIME_WITH_SYS_TIME 0)
|
|
set(HAVE_O_NONBLOCK 0)
|
|
set(HAVE_IN_ADDR_T 0)
|
|
set(STDC_HEADERS 1)
|
|
|
|
set(HAVE_SIGACTION 0)
|
|
set(HAVE_MACRO_SIGSETJMP 0)
|
|
else()
|
|
message("This file should be included on Windows platform only")
|
|
endif()
|
|
endif()
|