Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

submodule changed: Bugfix/issue 94 upgrade c ares #186

Merged
merged 15 commits into from
Oct 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,6 @@
[submodule "contrib/liburing"]
path = contrib/liburing
url = https://github.com/axboe/liburing.git
[submodule "contrib/c-ares"]
path = contrib/c-ares
url = https://github.com/ClickHouse/c-ares.git
[submodule "contrib/morton-nd"]
path = contrib/morton-nd
url = https://github.com/morton-nd/morton-nd
Expand Down Expand Up @@ -282,3 +279,6 @@
[submodule "contrib/google-benchmark"]
path = contrib/google-benchmark
url = https://github.com/google/benchmark.git
[submodule "contrib/c-ares"]
path = contrib/c-ares
url = https://github.com/c-ares/c-ares.git
2 changes: 1 addition & 1 deletion contrib/c-ares
Submodule c-ares updated 84 files
+4 −4 .cirrus.yml
+12 −0 .gitignore
+6 −6 CMakeLists.txt
+14 −0 INSTALL.md
+29 −21 Makefile.Watcom
+45 −73 RELEASE-NOTES
+4 −13 configure.ac
+1 −1 docs/acountry.1
+15 −9 docs/adig.1
+1 −1 docs/ahost.1
+3 −3 docs/ares_destroy_options.3
+3 −3 docs/ares_dup.3
+5 −5 docs/ares_expand_name.3
+5 −5 docs/ares_expand_string.3
+3 −5 docs/ares_free_data.3
+3 −3 docs/ares_free_hostent.3
+3 −3 docs/ares_free_string.3
+7 −4 docs/ares_get_servers.3
+10 −8 docs/ares_getaddrinfo.3
+9 −8 docs/ares_gethostbyaddr.3
+9 −7 docs/ares_gethostbyname.3
+4 −4 docs/ares_gethostbyname_file.3
+9 −8 docs/ares_getnameinfo.3
+4 −4 docs/ares_getsock.3
+4 −4 docs/ares_inet_ntop.3
+3 −3 docs/ares_inet_pton.3
+5 −7 docs/ares_init_options.3
+5 −5 docs/ares_mkquery.3
+5 −5 docs/ares_parse_a_reply.3
+5 −5 docs/ares_parse_aaaa_reply.3
+4 −5 docs/ares_parse_mx_reply.3
+4 −4 docs/ares_parse_naptr_reply.3
+4 −4 docs/ares_parse_ns_reply.3
+5 −5 docs/ares_parse_ptr_reply.3
+4 −4 docs/ares_parse_soa_reply.3
+4 −4 docs/ares_parse_srv_reply.3
+7 −7 docs/ares_parse_txt_reply.3
+4 −4 docs/ares_parse_uri_reply.3
+1 −1 docs/ares_process.3
+9 −8 docs/ares_query.3
+4 −3 docs/ares_save_options.3
+9 −8 docs/ares_search.3
+8 −7 docs/ares_send.3
+3 −3 docs/ares_set_local_dev.3
+3 −3 docs/ares_set_local_ip4.3
+7 −7 docs/ares_set_local_ip6.3
+7 −4 docs/ares_set_servers.3
+5 −4 docs/ares_set_servers_csv.3
+7 −7 docs/ares_set_socket_callback.3
+7 −9 docs/ares_set_socket_configure_callback.3
+12 −13 docs/ares_set_socket_functions.3
+3 −3 docs/ares_set_sortlist.3
+3 −3 docs/ares_strerror.3
+3 −3 include/ares_version.h
+3 −4 libcares.pc.cmake
+1,009 −0 m4/ax_cxx_compile_stdcxx.m4
+17 −141 m4/ax_cxx_compile_stdcxx_11.m4
+317 −127 m4/ax_pthread.m4
+2 −2 m4/cares-compilers.m4
+85 −0 m4/cares-functions.m4
+2 −1 src/lib/Makefile.inc
+1 −1 src/lib/ares__addrinfo_localhost.c
+3 −0 src/lib/ares_config.h.cmake
+5 −0 src/lib/ares_data.h
+3 −0 src/lib/ares_destroy.c
+3 −3 src/lib/ares_expand_name.c
+44 −12 src/lib/ares_getaddrinfo.c
+28 −83 src/lib/ares_init.c
+8 −11 src/lib/ares_private.h
+55 −16 src/lib/ares_process.c
+1 −35 src/lib/ares_query.c
+279 −0 src/lib/ares_rand.c
+5 −7 src/lib/ares_send.c
+44 −128 src/lib/ares_strsplit.c
+9 −10 src/lib/ares_strsplit.h
+78 −116 src/lib/inet_net_pton.c
+7 −4 src/tools/acountry.c
+22 −17 src/tools/adig.c
+10 −13 src/tools/ahost.c
+2 −1 test/.gitignore
+2 −0 test/ares-test-init.cc
+45 −4 test/ares-test-internal.cc
+29 −0 test/ares-test-live.cc
+1 −1 test/ares-test-misc.cc
120 changes: 90 additions & 30 deletions contrib/c-ares-cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,36 +1,96 @@
# Choose to build static or shared library for c-ares.
if (USE_STATIC_LIBRARIES)
set(CARES_STATIC ON CACHE BOOL "" FORCE)
set(CARES_SHARED OFF CACHE BOOL "" FORCE)
else ()
set(CARES_STATIC OFF CACHE BOOL "" FORCE)
set(CARES_SHARED ON CACHE BOOL "" FORCE)
endif ()
set(LIBRARY_DIR "${proton_SOURCE_DIR}/contrib/c-ares")

# Generated from contrib/c-ares/src/lib/Makefile.inc
SET(SRCS
"${LIBRARY_DIR}/src/lib/ares__addrinfo2hostent.c"
"${LIBRARY_DIR}/src/lib/ares__addrinfo_localhost.c"
"${LIBRARY_DIR}/src/lib/ares__close_sockets.c"
"${LIBRARY_DIR}/src/lib/ares__get_hostent.c"
"${LIBRARY_DIR}/src/lib/ares__parse_into_addrinfo.c"
"${LIBRARY_DIR}/src/lib/ares__readaddrinfo.c"
"${LIBRARY_DIR}/src/lib/ares__sortaddrinfo.c"
"${LIBRARY_DIR}/src/lib/ares__read_line.c"
"${LIBRARY_DIR}/src/lib/ares__timeval.c"
"${LIBRARY_DIR}/src/lib/ares_android.c"
"${LIBRARY_DIR}/src/lib/ares_cancel.c"
"${LIBRARY_DIR}/src/lib/ares_data.c"
"${LIBRARY_DIR}/src/lib/ares_destroy.c"
"${LIBRARY_DIR}/src/lib/ares_expand_name.c"
"${LIBRARY_DIR}/src/lib/ares_expand_string.c"
"${LIBRARY_DIR}/src/lib/ares_fds.c"
"${LIBRARY_DIR}/src/lib/ares_free_hostent.c"
"${LIBRARY_DIR}/src/lib/ares_free_string.c"
"${LIBRARY_DIR}/src/lib/ares_freeaddrinfo.c"
"${LIBRARY_DIR}/src/lib/ares_getaddrinfo.c"
"${LIBRARY_DIR}/src/lib/ares_getenv.c"
"${LIBRARY_DIR}/src/lib/ares_gethostbyaddr.c"
"${LIBRARY_DIR}/src/lib/ares_gethostbyname.c"
"${LIBRARY_DIR}/src/lib/ares_getnameinfo.c"
"${LIBRARY_DIR}/src/lib/ares_getsock.c"
"${LIBRARY_DIR}/src/lib/ares_init.c"
"${LIBRARY_DIR}/src/lib/ares_library_init.c"
"${LIBRARY_DIR}/src/lib/ares_llist.c"
"${LIBRARY_DIR}/src/lib/ares_mkquery.c"
"${LIBRARY_DIR}/src/lib/ares_create_query.c"
"${LIBRARY_DIR}/src/lib/ares_nowarn.c"
"${LIBRARY_DIR}/src/lib/ares_options.c"
"${LIBRARY_DIR}/src/lib/ares_parse_a_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_aaaa_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_caa_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_mx_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_naptr_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_ns_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_ptr_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_soa_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_srv_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_txt_reply.c"
"${LIBRARY_DIR}/src/lib/ares_parse_uri_reply.c"
"${LIBRARY_DIR}/src/lib/ares_platform.c"
"${LIBRARY_DIR}/src/lib/ares_process.c"
"${LIBRARY_DIR}/src/lib/ares_query.c"
"${LIBRARY_DIR}/src/lib/ares_rand.c"
"${LIBRARY_DIR}/src/lib/ares_search.c"
"${LIBRARY_DIR}/src/lib/ares_send.c"
"${LIBRARY_DIR}/src/lib/ares_strcasecmp.c"
"${LIBRARY_DIR}/src/lib/ares_strdup.c"
"${LIBRARY_DIR}/src/lib/ares_strerror.c"
"${LIBRARY_DIR}/src/lib/ares_strsplit.c"
"${LIBRARY_DIR}/src/lib/ares_timeout.c"
"${LIBRARY_DIR}/src/lib/ares_version.c"
"${LIBRARY_DIR}/src/lib/ares_writev.c"
"${LIBRARY_DIR}/src/lib/bitncmp.c"
"${LIBRARY_DIR}/src/lib/inet_net_pton.c"
"${LIBRARY_DIR}/src/lib/inet_ntop.c"
"${LIBRARY_DIR}/src/lib/windows_port.c"
)

# Disable looking for libnsl on a platforms that has gethostbyname in glibc
#
# c-ares searching for gethostbyname in the libnsl library, however in the
# version that shipped with gRPC it doing it wrong [1], since it uses
# CHECK_LIBRARY_EXISTS(), which will return TRUE even if the function exists in
# another dependent library. The upstream already contains correct macro [2],
# but it is not included in gRPC (even upstream gRPC, not the one that is
# shipped with clickhousee).
#
# [1]: https://github.com/c-ares/c-ares/blob/e982924acee7f7313b4baa4ee5ec000c5e373c30/CMakeLists.txt#L125
# [2]: https://github.com/c-ares/c-ares/blob/44fbc813685a1fa8aa3f27fcd7544faf612d376a/CMakeLists.txt#L146
#
# And because if you by some reason have libnsl [3] installed, clickhouse will
# reject to start w/o it. While this is completelly different library.
#
# [3]: https://packages.debian.org/bullseye/libnsl2
if (NOT CMAKE_SYSTEM_NAME STREQUAL "SunOS")
set(HAVE_LIBNSL OFF CACHE BOOL "" FORCE)
if (USE_STATIC_LIBRARIES)
add_library(_c-ares STATIC ${SRCS})
target_compile_definitions(_c-ares PUBLIC CARES_STATICLIB)
else()
add_library(_c-ares SHARED ${SRCS})
target_compile_definitions(_c-ares PUBLIC CARES_BUILDING_LIBRARY)
endif()

# Force use of c-ares inet_net_pton instead of libresolv one
set(HAVE_INET_NET_PTON OFF CACHE BOOL "" FORCE)
target_compile_definitions(_c-ares PRIVATE HAVE_CONFIG_H=1)

add_subdirectory("../c-ares/" "../c-ares/")
target_include_directories(_c-ares SYSTEM PUBLIC
"${LIBRARY_DIR}/src/lib"
"${LIBRARY_DIR}/include"
)

add_library(ch_contrib::c-ares ALIAS c-ares)
# Platform-specific include directories. The original build system does a lot of checks to eventually generate two header files with defines:
# ares_build.h and ares_config.h. To update, run the original CMake build in c-ares for each platform and copy the headers into the
# platform-specific folder.
# For the platform-specific compile definitions, see c-ares top-level CMakeLists.txt.
if (OS_LINUX)
target_include_directories(_c-ares SYSTEM PUBLIC "${proton_SOURCE_DIR}/contrib/c-ares-cmake/linux")
target_compile_definitions(_c-ares PRIVATE -D_GNU_SOURCE -D_POSIX_C_SOURCE=199309L -D_XOPEN_SOURCE=600)
elseif (OS_DARWIN)
target_include_directories(_c-ares SYSTEM PUBLIC "${proton_SOURCE_DIR}/contrib/c-ares-cmake/darwin")
target_compile_definitions(_c-ares PRIVATE -D_DARWIN_C_SOURCE)
elseif (OS_FREEBSD)
target_include_directories(_c-ares SYSTEM PUBLIC "${proton_SOURCE_DIR}/contrib/c-ares-cmake/freebsd")
endif()

add_library(ch_contrib::c-ares ALIAS _c-ares)
43 changes: 43 additions & 0 deletions contrib/c-ares-cmake/darwin/ares_build.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#ifndef __CARES_BUILD_H
#define __CARES_BUILD_H

#define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
#define CARES_TYPEOF_ARES_SSIZE_T ssize_t

/* Prefix names with CARES_ to make sure they don't conflict with other config.h
* files. We need to include some dependent headers that may be system specific
* for C-Ares */
#define CARES_HAVE_SYS_TYPES_H
#define CARES_HAVE_SYS_SOCKET_H
/* #undef CARES_HAVE_WINDOWS_H */
/* #undef CARES_HAVE_WS2TCPIP_H */
/* #undef CARES_HAVE_WINSOCK2_H */
/* #undef CARES_HAVE_WINDOWS_H */
#define CARES_HAVE_ARPA_NAMESER_H
#define CARES_HAVE_ARPA_NAMESER_COMPAT_H

#ifdef CARES_HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif

#ifdef CARES_HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif

#ifdef CARES_HAVE_WINSOCK2_H
# include <winsock2.h>
#endif

#ifdef CARES_HAVE_WS2TCPIP_H
# include <ws2tcpip.h>
#endif

#ifdef CARES_HAVE_WINDOWS_H
# include <windows.h>
#endif


typedef CARES_TYPEOF_ARES_SOCKLEN_T ares_socklen_t;
typedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t;

#endif /* __CARES_BUILD_H */
Loading