Skip to content

Commit 0090c10

Browse files
nodejs-github-botmhdawson
authored andcommittedJan 8, 2024
deps: update c-ares to 1.25.0
PR-URL: #51385 Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com>
1 parent 718e4e6 commit 0090c10

File tree

301 files changed

+73593
-63783
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

301 files changed

+73593
-63783
lines changed
 

‎deps/cares/CHANGES

+4,222-3,852
Large diffs are not rendered by default.

‎deps/cares/CMakeLists.txt

+95-30
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright (C) The c-ares project and its contributors
22
# SPDX-License-Identifier: MIT
3-
CMAKE_MINIMUM_REQUIRED (VERSION 3.1.0)
3+
CMAKE_MINIMUM_REQUIRED (VERSION 3.5.0)
4+
5+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
46

57
INCLUDE (CheckIncludeFiles)
68
INCLUDE (CheckTypeSize)
@@ -10,10 +12,10 @@ INCLUDE (CheckCSourceCompiles)
1012
INCLUDE (CheckStructHasMember)
1113
INCLUDE (CheckLibraryExists)
1214

13-
PROJECT (c-ares LANGUAGES C VERSION "1.20.1" )
15+
PROJECT (c-ares LANGUAGES C VERSION "1.25.0" )
1416

1517
# Set this version before release
16-
SET (CARES_VERSION "1.20.1")
18+
SET (CARES_VERSION "1.25.0")
1719

1820
INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are wrong.
1921

@@ -28,26 +30,38 @@ INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are w
2830
# For example, a version of 4:0:2 would generate output such as:
2931
# libname.so -> libname.so.2
3032
# libname.so.2 -> libname.so.2.2.0
31-
SET (CARES_LIB_VERSIONINFO "9:1:7")
33+
SET (CARES_LIB_VERSIONINFO "12:1:10")
3234

3335

34-
OPTION (CARES_STATIC "Build as a static library" OFF)
35-
OPTION (CARES_SHARED "Build as a shared library" ON)
36-
OPTION (CARES_INSTALL "Create installation targets (chain builders may want to disable this)" ON)
37-
OPTION (CARES_STATIC_PIC "Build the static library as PIC (position independent)" OFF)
38-
OPTION (CARES_BUILD_TESTS "Build and run tests" OFF)
36+
OPTION (CARES_STATIC "Build as a static library" OFF)
37+
OPTION (CARES_SHARED "Build as a shared library" ON)
38+
OPTION (CARES_INSTALL "Create installation targets (chain builders may want to disable this)" ON)
39+
OPTION (CARES_STATIC_PIC "Build the static library as PIC (position independent)" OFF)
40+
OPTION (CARES_BUILD_TESTS "Build and run tests" OFF)
3941
OPTION (CARES_BUILD_CONTAINER_TESTS "Build and run container tests (implies CARES_BUILD_TESTS, Linux only)" OFF)
40-
OPTION (CARES_BUILD_TOOLS "Build tools" ON)
42+
OPTION (CARES_BUILD_TOOLS "Build tools" ON)
43+
OPTION (CARES_SYMBOL_HIDING "Hide private symbols in shared libraries" OFF)
44+
OPTION (CARES_THREADS "Build with thread-safety support" ON)
4145
SET (CARES_RANDOM_FILE "/dev/urandom" CACHE STRING "Suitable File / Device Path for entropy, such as /dev/urandom")
4246

4347

48+
# Tests require a C++14 compiler
49+
IF (CARES_BUILD_TESTS OR CARES_BUILD_CONTAINER_TESTS)
50+
set(CMAKE_CXX_STANDARD 14)
51+
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
52+
set(CMAKE_CXX_EXTENSIONS FALSE)
53+
enable_language(CXX)
54+
ENDIF ()
55+
4456
# Tests require static to be enabled on Windows to be able to access otherwise hidden symbols
45-
IF (CARES_BUILD_TESTS AND (NOT CARES_STATIC) AND WIN32)
57+
IF ((CARES_BUILD_TESTS OR CARES_BUILD_CONTAINER_TESTS) AND (NOT CARES_STATIC) AND WIN32)
4658
SET (CARES_STATIC ON)
4759
SET (CARES_STATIC_PIC ON)
48-
MESSAGE (WARNING "Static building was requested be disabled, but reenabled to support tests")
60+
MESSAGE (WARNING "Static building was requested be disabled, but re-enabled to support tests")
4961
ENDIF ()
5062

63+
INCLUDE (EnableWarnings)
64+
5165
# allow linking against the static runtime library in msvc
5266
IF (MSVC)
5367
OPTION (CARES_MSVC_STATIC_RUNTIME "Link against the static runtime library" OFF)
@@ -70,6 +84,13 @@ IF (MSVC)
7084
ENDIF ()
7185
ENDIF ()
7286

87+
IF (CARES_SYMBOL_HIDING)
88+
IF (CMAKE_VERSION VERSION_LESS 3.12)
89+
MESSAGE (FATAL_ERROR "Hiding symbols requires CMake 3.12")
90+
ENDIF ()
91+
CMAKE_POLICY (SET CMP0063 NEW)
92+
ENDIF ()
93+
7394
# Keep build organized.
7495
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}")
7596
SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}")
@@ -181,7 +202,12 @@ CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H)
181202
CHECK_INCLUDE_FILES (memory.h HAVE_MEMORY_H)
182203
CHECK_INCLUDE_FILES (netdb.h HAVE_NETDB_H)
183204
CHECK_INCLUDE_FILES (netinet/in.h HAVE_NETINET_IN_H)
184-
CHECK_INCLUDE_FILES (net/if.h HAVE_NET_IF_H)
205+
# On old MacOS SDK versions, you must include sys/socket.h before net/if.h
206+
IF (HAVE_SYS_SOCKET_H)
207+
CHECK_INCLUDE_FILES ("sys/socket.h;net/if.h" HAVE_NET_IF_H)
208+
ELSE ()
209+
CHECK_INCLUDE_FILES (net/if.h HAVE_NET_IF_H)
210+
ENDIF ()
185211
CHECK_INCLUDE_FILES (signal.h HAVE_SIGNAL_H)
186212
CHECK_INCLUDE_FILES (socket.h HAVE_SOCKET_H)
187213
CHECK_INCLUDE_FILES (stdbool.h HAVE_STDBOOL_H)
@@ -196,10 +222,11 @@ CHECK_INCLUDE_FILES (sys/select.h HAVE_SYS_SELECT_H)
196222
CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
197223
CHECK_INCLUDE_FILES (sys/time.h HAVE_SYS_TIME_H)
198224
CHECK_INCLUDE_FILES (sys/uio.h HAVE_SYS_UIO_H)
225+
CHECK_INCLUDE_FILES (sys/random.h HAVE_SYS_RANDOM_H)
226+
CHECK_INCLUDE_FILES (ifaddrs.h HAVE_IFADDRS_H)
199227
CHECK_INCLUDE_FILES (time.h HAVE_TIME_H)
200228
CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H)
201229
CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
202-
203230
# On OpenBSD, you must include sys/types.h before netinet/tcp.h
204231
IF (HAVE_SYS_TYPES_H)
205232
CHECK_INCLUDE_FILES ("sys/types.h;netinet/tcp.h" HAVE_NETINET_TCP_H)
@@ -213,6 +240,8 @@ ENDIF ()
213240
IF (WIN32)
214241
CHECK_INCLUDE_FILES ("winsock2.h;windows.h" HAVE_WINSOCK2_H)
215242
CHECK_INCLUDE_FILES ("winsock2.h;ws2tcpip.h;windows.h" HAVE_WS2TCPIP_H)
243+
CHECK_INCLUDE_FILES ("winsock2.h;iphlpapi.h;windows.h" HAVE_IPHLPAPI_H)
244+
CHECK_INCLUDE_FILES ("winsock2.h;netioapi.h;windows.h" HAVE_NETIOAPI_H)
216245
CHECK_INCLUDE_FILES ("winsock.h;windows.h" HAVE_WINSOCK_H)
217246
CHECK_INCLUDE_FILES (windows.h HAVE_WINDOWS_H)
218247
ENDIF ()
@@ -221,15 +250,15 @@ ENDIF ()
221250
IF (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
222251
LIST (APPEND SYSFLAGS -D_DARWIN_C_SOURCE)
223252
ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "Linux")
224-
LIST (APPEND SYSFLAGS -D_GNU_SOURCE -D_POSIX_C_SOURCE=199309L -D_XOPEN_SOURCE=600)
253+
LIST (APPEND SYSFLAGS -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700)
225254
ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "SunOS")
226-
LIST (APPEND SYSFLAGS -D__EXTENSIONS__ -D_REENTRANT -D_XOPEN_SOURCE=600)
255+
LIST (APPEND SYSFLAGS -D__EXTENSIONS__ -D_REENTRANT -D_XOPEN_SOURCE=700)
227256
ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "AIX")
228-
LIST (APPEND SYSFLAGS -D_ALL_SOURCE -D_XOPEN_SOURCE=600 -D_USE_IRS)
257+
LIST (APPEND SYSFLAGS -D_ALL_SOURCE -D_XOPEN_SOURCE=700 -D_USE_IRS)
229258
ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
230259
# Don't define _XOPEN_SOURCE on FreeBSD, it actually reduces visibility instead of increasing it
231260
ELSEIF (WIN32)
232-
LIST (APPEND SYSFLAGS -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WIN32_WINNT=0x0600)
261+
LIST (APPEND SYSFLAGS -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WIN32_WINNT=0x0602)
233262
ENDIF ()
234263
ADD_DEFINITIONS(${SYSFLAGS})
235264

@@ -277,6 +306,7 @@ CARES_EXTRAINCLUDE_IFSET (HAVE_ARPA_INET_H arpa/inet.h)
277306
CARES_EXTRAINCLUDE_IFSET (HAVE_ARPA_NAMESER_H arpa/nameser.h)
278307
CARES_EXTRAINCLUDE_IFSET (HAVE_NETDB_H netdb.h)
279308
CARES_EXTRAINCLUDE_IFSET (HAVE_NET_IF_H net/if.h)
309+
CARES_EXTRAINCLUDE_IFSET (HAVE_IFADDRS_H ifaddrs.h)
280310
CARES_EXTRAINCLUDE_IFSET (HAVE_NETINET_IN_H netinet/in.h)
281311
CARES_EXTRAINCLUDE_IFSET (HAVE_NETINET_TCP_H netinet/tcp.h)
282312
CARES_EXTRAINCLUDE_IFSET (HAVE_SIGNAL_H signal.h)
@@ -289,12 +319,15 @@ CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SELECT_H sys/select.h)
289319
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SOCKET_H sys/socket.h)
290320
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SOCKIO_H sys/sockio.h)
291321
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_TIME_H sys/time.h)
322+
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_STAT_H sys/stat.h)
292323
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_UIO_H sys/uio.h)
324+
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_RANDOM_H sys/random.h)
293325
CARES_EXTRAINCLUDE_IFSET (HAVE_TIME_H time.h)
294326
CARES_EXTRAINCLUDE_IFSET (HAVE_FCNTL_H fcntl.h)
295327
CARES_EXTRAINCLUDE_IFSET (HAVE_UNISTD_H unistd.h)
296328
CARES_EXTRAINCLUDE_IFSET (HAVE_WINSOCK2_H winsock2.h)
297329
CARES_EXTRAINCLUDE_IFSET (HAVE_WS2TCPIP_H ws2tcpip.h)
330+
CARES_EXTRAINCLUDE_IFSET (HAVE_IPHLPAPI_H iphlpapi.h)
298331
CARES_EXTRAINCLUDE_IFSET (HAVE_WINDOWS_H windows.h)
299332

300333
# Check Types
@@ -323,10 +356,8 @@ ENDMACRO ()
323356

324357
CARES_TYPE_EXISTS (socklen_t HAVE_SOCKLEN_T)
325358
CARES_TYPE_EXISTS (SOCKET HAVE_TYPE_SOCKET)
326-
CARES_TYPE_EXISTS (bool HAVE_BOOL_T)
327359
CARES_TYPE_EXISTS (ssize_t HAVE_SSIZE_T)
328360
CARES_TYPE_EXISTS ("long long" HAVE_LONGLONG)
329-
CARES_TYPE_EXISTS (sig_atomic_t HAVE_SIG_ATOMIC_T)
330361
CARES_TYPE_EXISTS ("struct addrinfo" HAVE_STRUCT_ADDRINFO)
331362
CARES_TYPE_EXISTS ("struct in6_addr" HAVE_STRUCT_IN6_ADDR)
332363
CARES_TYPE_EXISTS ("struct sockaddr_in6" HAVE_STRUCT_SOCKADDR_IN6)
@@ -351,29 +382,26 @@ IF ((NOT APPLE) OR IOS_V10 OR MACOS_V1012)
351382
CHECK_SYMBOL_EXISTS (CLOCK_MONOTONIC "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOCK_GETTIME_MONOTONIC)
352383
ENDIF ()
353384

354-
CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_scope_id "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID LANGUAGE C)
355-
356-
# Check for "LL" numeric suffix support
357-
CHECK_C_SOURCE_COMPILES ("int main() { int n=1234LL; return 0; }" HAVE_LL)
385+
CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_scope_id "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID LANGUAGE C)
358386

359387

360-
CHECK_SYMBOL_EXISTS (bitncmp "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_BITNCMP)
361388
CHECK_SYMBOL_EXISTS (closesocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOSESOCKET)
362389
CHECK_SYMBOL_EXISTS (CloseSocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOSESOCKET_CAMEL)
363390
CHECK_SYMBOL_EXISTS (connect "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONNECT)
364391
CHECK_SYMBOL_EXISTS (fcntl "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_FCNTL)
365392
CHECK_SYMBOL_EXISTS (freeaddrinfo "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_FREEADDRINFO)
366393
CHECK_SYMBOL_EXISTS (getaddrinfo "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETADDRINFO)
367394
CHECK_SYMBOL_EXISTS (getenv "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETENV)
368-
CHECK_SYMBOL_EXISTS (gethostbyaddr "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETHOSTBYADDR)
369-
CHECK_SYMBOL_EXISTS (gethostbyname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETHOSTBYNAME)
370395
CHECK_SYMBOL_EXISTS (gethostname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETHOSTNAME)
371396
CHECK_SYMBOL_EXISTS (getnameinfo "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETNAMEINFO)
372397
CHECK_SYMBOL_EXISTS (getrandom "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETRANDOM)
373398
CHECK_SYMBOL_EXISTS (getservbyport_r "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETSERVBYPORT_R)
374399
CHECK_SYMBOL_EXISTS (getservbyname_r "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETSERVBYNAME_R)
375400
CHECK_SYMBOL_EXISTS (gettimeofday "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETTIMEOFDAY)
376401
CHECK_SYMBOL_EXISTS (if_indextoname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IF_INDEXTONAME)
402+
CHECK_SYMBOL_EXISTS (if_nametoindex "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IF_NAMETOINDEX)
403+
CHECK_SYMBOL_EXISTS (ConvertInterfaceIndexToLuid "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONVERTINTERFACEINDEXTOLUID)
404+
CHECK_SYMBOL_EXISTS (ConvertInterfaceLuidToNameA "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONVERTINTERFACELUIDTONAMEA)
377405
CHECK_SYMBOL_EXISTS (inet_net_pton "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_INET_NET_PTON)
378406
IF (NOT WIN32)
379407
# Disabled on Windows, because these functions are only really supported on Windows
@@ -399,7 +427,8 @@ CHECK_SYMBOL_EXISTS (strncmpi "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRNCMP
399427
CHECK_SYMBOL_EXISTS (strnicmp "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRNICMP)
400428
CHECK_SYMBOL_EXISTS (writev "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_WRITEV)
401429
CHECK_SYMBOL_EXISTS (arc4random_buf "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_ARC4RANDOM_BUF)
402-
430+
CHECK_SYMBOL_EXISTS (stat "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STAT)
431+
CHECK_SYMBOL_EXISTS (getifaddrs "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETIFADDRS)
403432

404433
# On Android, the system headers may define __system_property_get(), but excluded
405434
# from libc. We need to perform a link test instead of a header/symbol test.
@@ -411,6 +440,43 @@ SET (CMAKE_REQUIRED_DEFINITIONS)
411440
SET (CMAKE_REQUIRED_LIBRARIES)
412441

413442

443+
################################################################################
444+
# Threading Support
445+
#
446+
IF (CARES_THREADS)
447+
IF (WIN32)
448+
# Do nothing, always has threads
449+
ELSE ()
450+
# Need to prefer pthreads on platforms that may have more threading choices
451+
# (e.g. Solaris)
452+
SET (CMAKE_THREAD_PREFER_PTHREAD TRUE)
453+
FIND_PACKAGE (Threads)
454+
455+
IF (Threads_FOUND)
456+
# Fix solaris9 bug due to libc having pthread_create() stubs that always fail. CMake
457+
# doesn't realize that the real pthread functions aren't in libc, so sets the pthread
458+
# library CAKE_THREAD_LIBS_INIT variable to blank instead of to the correct "-lpthread".
459+
IF (CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND NOT CMAKE_THREAD_LIBS_INIT)
460+
SET (CMAKE_THREAD_LIBS_INIT "-lpthread")
461+
ENDIF ()
462+
463+
# PThread functions.
464+
CHECK_INCLUDE_FILES (pthread.h HAVE_PTHREAD_H)
465+
CHECK_INCLUDE_FILES (pthread_np.h HAVE_PTHREAD_NP_H)
466+
CARES_EXTRAINCLUDE_IFSET (HAVE_PTHREAD_H pthread.h)
467+
CARES_EXTRAINCLUDE_IFSET (HAVE_PTHREAD_NP_H pthread_np.h)
468+
CHECK_SYMBOL_EXISTS (pthread_init "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_PTHREAD_INIT)
469+
# Make sure libcares.pc.cmake knows about thread libraries on static builds
470+
LIST (APPEND CARES_DEPENDENT_LIBS ${CMAKE_THREAD_LIBS_INIT})
471+
ELSE ()
472+
MESSAGE (WARNING "Threading support not found, disabling...")
473+
SET (CARES_THREADS OFF)
474+
ENDIF ()
475+
ENDIF ()
476+
ENDIF ()
477+
478+
479+
414480
################################################################################
415481
# recv, recvfrom, send, getnameinfo, gethostname
416482
# ARGUMENTS AND RETURN VALUES
@@ -421,7 +487,7 @@ SET (CMAKE_REQUIRED_LIBRARIES)
421487
# defaults. This should be much quicker and nearly as accurate ... and even
422488
# if not, it probably won't matter in the least.
423489

424-
IF (HAVE_SSIZE_T AND HAVE_SOCKLEN_T)
490+
IF (HAVE_SSIZE_T AND HAVE_SOCKLEN_T AND NOT WIN32)
425491
# If we have ssize_t and socklen_t, the API is usually sane and uses ssize_t and size_t for lengths
426492
SET (RECVFROM_TYPE_RETV ssize_t)
427493
SET (RECVFROM_TYPE_ARG3 size_t)
@@ -656,7 +722,6 @@ IF (CARES_INSTALL)
656722

657723
# pkgconfig support
658724
IF (NOT CARES_SHARED)
659-
SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB")
660725
FOREACH (LIB ${CARES_DEPENDENT_LIBS})
661726
SET (CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS} -l${LIB}")
662727
ENDFOREACH ()

0 commit comments

Comments
 (0)