summaryrefslogtreecommitdiff
path: root/net-dns/c-ares
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-12-20 13:50:54 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-12-20 13:50:54 +0000
commitaec6329fe6b56821fd643ccaacb4d5d61f4eaad6 (patch)
tree8c6e7db4b9a4a624121681a167e21bda8e3cfeec /net-dns/c-ares
parent0c8ede87a5d0aa1ec25364a435296ec7aa8b9634 (diff)
gentoo auto-resync : 20:12:2023 - 13:50:54
Diffstat (limited to 'net-dns/c-ares')
-rw-r--r--net-dns/c-ares/Manifest6
-rw-r--r--net-dns/c-ares/c-ares-1.24.0.ebuild115
-rw-r--r--net-dns/c-ares/files/c-ares-1.24.0-ares__iface_ips_enumerate-stub.patch34
-rw-r--r--net-dns/c-ares/files/c-ares-1.24.0-getrandom.patch80
-rw-r--r--net-dns/c-ares/files/c-ares-1.24.0-tests-symbol-hiding.patch109
5 files changed, 344 insertions, 0 deletions
diff --git a/net-dns/c-ares/Manifest b/net-dns/c-ares/Manifest
index bcdafe35e54c..71eff7008993 100644
--- a/net-dns/c-ares/Manifest
+++ b/net-dns/c-ares/Manifest
@@ -1,3 +1,6 @@
+AUX c-ares-1.24.0-ares__iface_ips_enumerate-stub.patch 1133 BLAKE2B c9b4aedb0a9c826dbf79647f2f135668b5667d4801eada9f293e9250109cba2d6e15b2cdc48f9a85041f4cc29e827255f7cd338d395cc4bd311d8c1a2df4d8c7 SHA512 70bf56876051feb49324c64cad80a595cf5f69d3085e2019a83e9282470da7f930f9d9bf04f75efc31ec6e0554e64ed20276084960cab0208839b9a8a48d71fc
+AUX c-ares-1.24.0-getrandom.patch 2879 BLAKE2B 6683dcca5ebc5c8eaf7da37c08e883fd510d4170a14911d77e6f6fa598e6a79bfcdbe2a14324b05e1ed90bd42a6c46f255eaa622f76cd264346c0fe99222b8fc SHA512 3f998443c2953d0fd5fcc9aceffd6ccfa48c3deae1619901dd696f908cda322fcdfde6c934c8ee36f56df0d708c7255979fa4c9990071c5885048006e183c8b2
+AUX c-ares-1.24.0-tests-symbol-hiding.patch 3362 BLAKE2B 029cc9b2422658cd265fc505a821e6371f94b42587022d8680275d8692f11e9444aef07d3db44f001876388d9bfe6f92de251f3177e03d0c0c51039176470268 SHA512 120d3abf30707fd943a56009bcd851d10ea2baa708ab0d1aaf45a782f13e0775e79801c971013968d8f46b37d78f3cad100da48de5f5786a74a7b88970b5fd3c
DIST c-ares-1.19.1.tar.gz 1579100 BLAKE2B 4b6c9593edb1a91ab76d54ddacb1cd5d67006d5e628ea1f3289f54e9360be32abeb5d8fc7d23e193feab3e7928e8efde82757eb12fe217dc92ed0d9132bedf5d SHA512 466a94efda626e815a6ef7a890637056339f883d549ea6055e289fd8cd2391130e5682c905c0fb3bd7e955af7f6deb793562c170eb0ee066a4a62085a82ba470
DIST c-ares-1.19.1.tar.gz.asc 488 BLAKE2B 9c47d7b3e67d9a2bd1e332912d21d20ca591fc34f81707c18a4615ea14ba2da00146d1998250a5f4dd2a0b1c04f9bd2013d4940ac734674c0bdff6815985e19d SHA512 1b204ab1a667af1326be4b7c62c0919aacd447a2e00efea4b8ef2ec9f2b13ffb236a836ff8953b0b3359727faf3fb8cfcd71d0b06a0e533a09f9e9ea66024f4e
DIST c-ares-1.21.0.tar.gz 1623742 BLAKE2B 708933603dfc6c0286e798b3244eb9d8bce500acb915a255b82e00133509e5c2ceaad6b9b4cd081fcd9193b64fdb72e4e7ff6deeca8eb1744124ab9239cacac0 SHA512 c526b0a28d8ea1c6a53215dfd52e8250c968513a667c5414459d97d46288da7e7a2193d757fc78225e56c6684b3d30e756dd3e5a31917e996c871773a34892ea
@@ -6,8 +9,11 @@ DIST c-ares-1.22.1.tar.gz 1665059 BLAKE2B 720d0efdbcb591cf9a8b99a60f24c9c720eee4
DIST c-ares-1.22.1.tar.gz.asc 488 BLAKE2B a3723365cd733ca4551b039038baeb94b4e53dda3dac1c479606c07fbc09b8ea0ebbd83b26ede8e0a1782ac06dfb62b53472e0024239175d763fb1f3e6834b50 SHA512 37ad0a9c72e7a98bf83e4be107040c3223880a784e01a917dbe72861e2f4ca692100d2b8543be3c960d21fc8d3d57a7075f99ba6de61366a93783cea07cc9f76
DIST c-ares-1.23.0.tar.gz 1681336 BLAKE2B 0bbac0afed8c2853d3b9e95db0e9b1d170480471720ce9260d212c4da50311ba21f45a68e4737d23a22f3ebaef005055c227f9be1c07cc9e1d66a93af76af276 SHA512 0302fe809118bc81310c4f5ca4bbea3e2aee262da2c44ad6266d9da05e9326452f274508685974ff8aa6fce8332a2862008c12fbbc2917af258daa90b69567f0
DIST c-ares-1.23.0.tar.gz.asc 488 BLAKE2B 0db7e4af81c00e1d5a3db38a19686c23dd2dd61717c5767506a94e6e1c171cf33be4c49afabeb738e9f16d1b9c083b9b7b2ae66f9c91a6086fe296a7dfd262c4 SHA512 89e3523d6168672a85f14867cd6e29994b9dd54c6950e47d973d4d05ecaa76ce81813521bd7b748e4f7c2f34972cdd980dcecefe2832d1c6cad56065697a5216
+DIST c-ares-1.24.0.tar.gz 1368749 BLAKE2B aae99e1b5715ae4c68b84e3ceedf3e9758cf0f961bb85bfe870def2bd0342ac26d71a3a784708050c7a339360962567031e83c6b9a61a163ecaba0def6ceb24d SHA512 3701853e263de94daf19734185ad913848c19b825e0738926b418a54b0628ee1ac95a49ebfaa2ddf3eed74a7ef209e1a0a8f573df3e507ef1f11fcc53fc5eb68
+DIST c-ares-1.24.0.tar.gz.asc 488 BLAKE2B 965dc1ec04aae5ec4fb5e3cee6dfe99c102112d12498f841377d901e87d8b13e17a48ba8393054849206a21333173bd3ab1d7c61cf76b6c7415f5bf99a7ada1c SHA512 dda1b8d3e715b5ba117542cab31826faf821061ea6ceefa77c0452f1d17d0c84a0cc5891722eb8e7f54da087c352409197d1e1a06420035a62c391e8e93cb8dd
EBUILD c-ares-1.19.1.ebuild 1953 BLAKE2B 1ded6481a7ebecae276cf0be56591051b72ba20469590e1231b8c873cc9d3869fda7a36cc79f3cadf14f4fef27e05e68dadf683fe9a23b5884c6562f7f3db8c9 SHA512 cf383c805ba7f878afa5c1e75144fca115ee60f420fb257e42badd9d31eaefcb21e2ec9eccdce72d061287e67aa3fe38cfa4ad7168064b8e95318e041e651aa7
EBUILD c-ares-1.21.0.ebuild 2320 BLAKE2B 0bf5577ca5af7eaaa7a0b1adb0acdc63b4a7c2a6be151c39742c6168ee8c44331f6918919d536967a34f527a3ee7b435979b5f4de27203b990a311d079731579 SHA512 fc5446f9b664a5fb93366877f86f029605842850a4aefc73d2c0138f7e5a4c7e61d2429e8c9be1256552805fce7220e26b3e9671dcaa1e561a465ddeceb96fdc
EBUILD c-ares-1.22.1.ebuild 3004 BLAKE2B 54969e3ba5a0ae50507c72053c68e4cef46b5bcfb17a13a8da74787b7e9df95eb6991b72accc08e1cd668fb2f32a40b64531cb55599b017f8d9fe6e2410777ff SHA512 d887752df57e10a49959d18e1768cf0445771fbdc763c8867ec8dabf37e1baf0bddb1ec8676a5951ab408041fac5db34812165091d60e0c2740cec262466e9e3
EBUILD c-ares-1.23.0.ebuild 3004 BLAKE2B 54969e3ba5a0ae50507c72053c68e4cef46b5bcfb17a13a8da74787b7e9df95eb6991b72accc08e1cd668fb2f32a40b64531cb55599b017f8d9fe6e2410777ff SHA512 d887752df57e10a49959d18e1768cf0445771fbdc763c8867ec8dabf37e1baf0bddb1ec8676a5951ab408041fac5db34812165091d60e0c2740cec262466e9e3
+EBUILD c-ares-1.24.0.ebuild 3242 BLAKE2B d0e98bad28950c4835670021048a10eea25998ecb2e67fbf078d0106d6509f750f4ceb4f39b45e719e8fbb05ab6ecda792b9d8e040681b3f64fb910e53234ede SHA512 af5de4f8ee25ad76516928d45c524d053c1621aebb852adf1fed3537266a72ee51441fddcdbfc407be94a6f2cd5b84ebf5239585a21feb7deec81461aea7d4e8
MISC metadata.xml 402 BLAKE2B ab03bca92ec4073f5a877993558552136f0ae673f98619aa1f30eb94b6d8f2103b1cf77d23a9f2b3d56ee33af23d626ee230e480a3e3e0bc174df879082466bd SHA512 e02d13db5d10b1aaaae5680247a6b47610dda28a13b7754d2b97f08a760ce732957c96fb6e88ce7fd2076bfec275e72bfbb3dec802940f0159122364ab21acda
diff --git a/net-dns/c-ares/c-ares-1.24.0.ebuild b/net-dns/c-ares/c-ares-1.24.0.ebuild
new file mode 100644
index 000000000000..a212ebd74cef
--- /dev/null
+++ b/net-dns/c-ares/c-ares-1.24.0.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/danielstenberg.asc
+inherit edo multilib-minimal verify-sig
+
+DESCRIPTION="C library that resolves names asynchronously"
+HOMEPAGE="https://c-ares.org/"
+SRC_URI="
+ https://c-ares.org/download/${P}.tar.gz
+ verify-sig? ( https://c-ares.org/download/${P}.tar.gz.asc )
+"
+
+# ISC for lib/{bitncmp.c,inet_ntop.c,inet_net_pton.c} (bug #912405)
+LICENSE="MIT ISC"
+# Subslot = SONAME of libcares.so.2
+SLOT="0/2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="static-libs test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? ( dev-cpp/gtest )
+ verify-sig? ( sec-keys/openpgp-keys-danielstenberg )
+"
+
+DOCS=( AUTHORS CHANGES NEWS README.md RELEASE-NOTES TODO )
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/ares_build.h
+)
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # Checking for obsolete headers
+ malloc
+ calloc
+ free
+
+ # Non-existent on Linux
+ closesocket
+ CloseSocket
+ ioctlsocket
+ bitncmp
+ ConvertInterfaceIndexToLuid
+ ConvertInterfaceLuidToNameA
+)
+
+PATCHES=(
+ "${FILESDIR}"/${P}-tests-symbol-hiding.patch
+ "${FILESDIR}"/${P}-getrandom.patch
+ "${FILESDIR}"/${P}-ares__iface_ips_enumerate-stub.patch
+)
+
+multilib_src_configure() {
+ # These configure tests take a long time to run. The args one runs in O(n^4).
+ export ac_cv_func_getnameinfo='yes'
+ export ac_cv_func_recvfrom='yes'
+ export ac_cv_func_recv='yes'
+ export ac_cv_func_send='yes'
+ export curl_cv_func_getnameinfo_args='const struct sockaddr *,socklen_t,size_t,int'
+ export curl_cv_func_recv_args='int,void *,size_t,int,int'
+ export curl_cv_func_recvfrom_args='int,void *,size_t,int,struct sockaddr *,socklen_t *,int'
+ export curl_cv_func_send_args='int,const void *,size_t,int,int'
+ export curl_cv_getnameinfo='yes'
+ export curl_cv_recv='yes'
+ export curl_cv_recvfrom='yes'
+ export curl_cv_send='yes'
+
+ local myeconfargs=(
+ --cache-file="${BUILD_DIR}"/config.cache
+
+ --enable-nonblocking
+ --enable-symbol-hiding
+ $(use_enable static-libs static)
+ $(use_enable test tests)
+ )
+
+ # Needed for running unit tests only
+ # Violates sandbox and tests pass fine without
+ export ax_cv_uts_namespace=no
+ export ax_cv_user_namespace=no
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_test() {
+ cd "${BUILD_DIR}"/test || die
+
+ # We're skipping the "real" network tests with the filter
+ # see https://github.com/c-ares/c-ares/tree/main/test
+ local network_tests=(
+ # Most live tests have Live in the name
+ *Live*
+ # These don't but are still in ares-test-live.cc => live
+ *GetTCPSock*
+ *TimeoutValue*
+ *GetSock*
+ *GetSock_virtualized*
+ *VerifySocketFunctionCallback*
+ # Seems flaky, even run manually
+ # https://github.com/c-ares/c-ares/commit/9e542a8839f81c990bb0dff14beeaf9aa6bcc18d
+ *MockUDPMaxQueriesTest.GetHostByNameParallelLookups*
+ )
+
+ # The format for disabling test1, test2, and test3 looks like:
+ # -test1:test2:test3
+ edo ./arestest --gtest_filter=-$(echo $(IFS=:; echo "${network_tests[*]}"))
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ find "${ED}" -name "*.la" -delete || die
+}
diff --git a/net-dns/c-ares/files/c-ares-1.24.0-ares__iface_ips_enumerate-stub.patch b/net-dns/c-ares/files/c-ares-1.24.0-ares__iface_ips_enumerate-stub.patch
new file mode 100644
index 000000000000..12252cb1741b
--- /dev/null
+++ b/net-dns/c-ares/files/c-ares-1.24.0-ares__iface_ips_enumerate-stub.patch
@@ -0,0 +1,34 @@
+https://github.com/c-ares/c-ares/commit/eebfe0c15e1cc231500dfd79c730788790ec5251
+
+From eebfe0c15e1cc231500dfd79c730788790ec5251 Mon Sep 17 00:00:00 2001
+From: Brad House <brad@brad-house.com>
+Date: Sun, 17 Dec 2023 19:03:33 -0500
+Subject: [PATCH] Fix bad stub for ares__iface_ips_enumerate()
+
+If the ability to enumerate interface ip addresses does not exist
+on a system, the stub function contained the wrong prototype.
+
+Fixes Bug: #668
+Fix By: Brad House (@bradh352)
+---
+ src/lib/ares__iface_ips.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/lib/ares__iface_ips.c b/src/lib/ares__iface_ips.c
+index e10a0d80c..7cd12a605 100644
+--- a/src/lib/ares__iface_ips.c
++++ b/src/lib/ares__iface_ips.c
+@@ -510,11 +510,10 @@ static ares_status_t ares__iface_ips_enumerate(ares__iface_ips_t *ips,
+ #else
+
+ static ares_status_t ares__iface_ips_enumerate(ares__iface_ips_t *ips,
+- ares__iface_ip_flags_t flags,
+ const char *name)
+ {
+ (void)ips;
+- (void)flags;
++ (void)name;
+ return ARES_ENOTIMP;
+ }
+
+
diff --git a/net-dns/c-ares/files/c-ares-1.24.0-getrandom.patch b/net-dns/c-ares/files/c-ares-1.24.0-getrandom.patch
new file mode 100644
index 000000000000..090690213e22
--- /dev/null
+++ b/net-dns/c-ares/files/c-ares-1.24.0-getrandom.patch
@@ -0,0 +1,80 @@
+https://github.com/c-ares/c-ares/commit/d8edb76bece36267c4c55355ae9c7009e131a0e0
+
+From d8edb76bece36267c4c55355ae9c7009e131a0e0 Mon Sep 17 00:00:00 2001
+From: Brad House <brad@brad-house.com>
+Date: Sun, 17 Dec 2023 11:08:21 -0500
+Subject: [PATCH] getrandom() may require sys/random.h on some systems
+
+There is a reported build issue where getrandom() is detected
+but compile fails due to a missing prototype. This commit attempts
+to resolve that issue.
+
+Fixes Bug: #665
+Fix By: Brad House (@bradh352)
+---
+ CMakeLists.txt | 2 ++
+ configure.ac | 1 +
+ src/lib/ares_config.h.cmake | 3 +++
+ src/lib/ares_rand.c | 3 +++
+ 4 files changed, 9 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a8d3eed06..29f5d7ed3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -225,6 +225,7 @@ CHECK_INCLUDE_FILES (sys/select.h HAVE_SYS_SELECT_H)
+ CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
+ CHECK_INCLUDE_FILES (sys/time.h HAVE_SYS_TIME_H)
+ CHECK_INCLUDE_FILES (sys/uio.h HAVE_SYS_UIO_H)
++CHECK_INCLUDE_FILES (sys/random.h HAVE_SYS_RANDOM_H)
+ CHECK_INCLUDE_FILES (ifaddrs.h HAVE_IFADDRS_H)
+ CHECK_INCLUDE_FILES (time.h HAVE_TIME_H)
+ CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H)
+@@ -323,6 +324,7 @@ CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SOCKIO_H sys/sockio.h)
+ CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_TIME_H sys/time.h)
+ CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_STAT_H sys/stat.h)
+ CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_UIO_H sys/uio.h)
++CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_RANDOM_H sys/random.h)
+ CARES_EXTRAINCLUDE_IFSET (HAVE_TIME_H time.h)
+ CARES_EXTRAINCLUDE_IFSET (HAVE_FCNTL_H fcntl.h)
+ CARES_EXTRAINCLUDE_IFSET (HAVE_UNISTD_H unistd.h)
+diff --git a/configure.ac b/configure.ac
+index 7a6b14092..e9c2534cd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -574,6 +574,7 @@ AC_CHECK_HEADERS(
+ sys/ioctl.h \
+ sys/param.h \
+ sys/uio.h \
++ sys/random.h \
+ assert.h \
+ iphlpapi.h \
+ netioapi.h \
+diff --git a/src/lib/ares_config.h.cmake b/src/lib/ares_config.h.cmake
+index c2974dced..3fb85d54f 100644
+--- a/src/lib/ares_config.h.cmake
++++ b/src/lib/ares_config.h.cmake
+@@ -320,6 +320,9 @@
+ /* Define to 1 if you have the <sys/param.h> header file. */
+ #cmakedefine HAVE_SYS_PARAM_H
+
++/* Define to 1 if you have the <sys/random.h> header file. */
++#cmakedefine HAVE_SYS_RANDOM_H
++
+ /* Define to 1 if you have the <sys/select.h> header file. */
+ #cmakedefine HAVE_SYS_SELECT_H
+
+diff --git a/src/lib/ares_rand.c b/src/lib/ares_rand.c
+index e6e35ef61..867ca3340 100644
+--- a/src/lib/ares_rand.c
++++ b/src/lib/ares_rand.c
+@@ -28,6 +28,9 @@
+ #include "ares.h"
+ #include "ares_private.h"
+ #include <stdlib.h>
++#ifdef HAVE_SYS_RANDOM_H
++# include <sys/random.h>
++#endif
+
+
+ typedef enum {
diff --git a/net-dns/c-ares/files/c-ares-1.24.0-tests-symbol-hiding.patch b/net-dns/c-ares/files/c-ares-1.24.0-tests-symbol-hiding.patch
new file mode 100644
index 000000000000..901966330d1c
--- /dev/null
+++ b/net-dns/c-ares/files/c-ares-1.24.0-tests-symbol-hiding.patch
@@ -0,0 +1,109 @@
+https://github.com/c-ares/c-ares/commit/7dd384a99cc385e408e64c3e0af4e0e2136ed034
+
+From 7dd384a99cc385e408e64c3e0af4e0e2136ed034 Mon Sep 17 00:00:00 2001
+From: Brad House <brad@brad-house.com>
+Date: Sun, 17 Dec 2023 08:16:24 -0500
+Subject: [PATCH] fix test building with symbol hiding
+
+New test cases depend on internal symbols for calculating timeouts.
+Disable those test features if symbol hiding is enabled.
+
+Fixes Bug: #664
+Fix By: Brad House (@bradh352)
+---
+ test/ares-test-mock-ai.cc | 2 ++
+ test/ares-test-mock.cc | 4 ++--
+ test/ares-test.cc | 12 ++++++++++++
+ 3 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/test/ares-test-mock-ai.cc b/test/ares-test-mock-ai.cc
+index c55676f6c..57b9d5ee2 100644
+--- a/test/ares-test-mock-ai.cc
++++ b/test/ares-test-mock-ai.cc
+@@ -442,6 +442,7 @@ TEST_P(MockChannelTestAI, FamilyV6) {
+ EXPECT_THAT(result.ai_, IncludesV6Address("2121:0000:0000:0000:0000:0000:0000:0303"));
+ }
+
++#ifndef CARES_SYMBOL_HIDING
+ // Test case for Issue #662
+ TEST_P(MockChannelTestAI, PartialQueryCancel) {
+ std::vector<byte> nothing;
+@@ -469,6 +470,7 @@ TEST_P(MockChannelTestAI, PartialQueryCancel) {
+ EXPECT_TRUE(result.done_);
+ EXPECT_EQ(ARES_ECANCELLED, result.status_);
+ }
++#endif
+
+ TEST_P(MockChannelTestAI, FamilyV4) {
+ DNSPacket rsp4;
+diff --git a/test/ares-test-mock.cc b/test/ares-test-mock.cc
+index 6afa8f989..849eb6980 100644
+--- a/test/ares-test-mock.cc
++++ b/test/ares-test-mock.cc
+@@ -826,7 +826,7 @@ TEST_P(MockChannelTest, V4WorksV6Timeout) {
+ EXPECT_EQ("{'www.google.com' aliases=[] addrs=[1.2.3.4]}", ss.str());
+ }
+
+-
++#ifndef CARES_SYMBOL_HIDING
+ // Test case for Issue #662
+ TEST_P(MockChannelTest, PartialQueryCancel) {
+ std::vector<byte> nothing;
+@@ -849,7 +849,7 @@ TEST_P(MockChannelTest, PartialQueryCancel) {
+ EXPECT_TRUE(result.done_);
+ EXPECT_EQ(ARES_ECANCELLED, result.status_);
+ }
+-
++#endif
+
+ TEST_P(MockChannelTest, UnspecifiedFamilyV6) {
+ DNSPacket rsp6;
+diff --git a/test/ares-test.cc b/test/ares-test.cc
+index faad01486..3a55b73d3 100644
+--- a/test/ares-test.cc
++++ b/test/ares-test.cc
+@@ -105,6 +105,8 @@ void ProcessWork(ares_channel_t *channel,
+ unsigned int cancel_ms) {
+ int nfds, count;
+ fd_set readers, writers;
++
++#ifndef CARES_SYMBOL_HIDING
+ struct timeval tv_begin = ares__tvnow();
+ struct timeval tv_cancel = tv_begin;
+
+@@ -113,10 +115,18 @@ void ProcessWork(ares_channel_t *channel,
+ tv_cancel.tv_sec += (cancel_ms / 1000);
+ tv_cancel.tv_usec += ((cancel_ms % 1000) * 1000);
+ }
++#else
++ if (cancel_ms) {
++ std::cerr << "library built with symbol hiding, can't test with cancel support" << std::endl;
++ return;
++ }
++#endif
+
+ while (true) {
++#ifndef CARES_SYMBOL_HIDING
+ struct timeval tv_now = ares__tvnow();
+ struct timeval tv_remaining;
++#endif
+ struct timeval tv;
+ struct timeval *tv_select;
+
+@@ -142,6 +152,7 @@ void ProcessWork(ares_channel_t *channel,
+ if (tv_select == NULL)
+ return;
+
++#ifndef CARES_SYMBOL_HIDING
+ if (cancel_ms) {
+ unsigned int remaining_ms;
+ ares__timeval_remaining(&tv_remaining,
+@@ -157,6 +168,7 @@ void ProcessWork(ares_channel_t *channel,
+ tv_select = ares_timeout(channel, &tv_remaining, &tv);
+ }
+ }
++#endif
+
+ count = select(nfds, &readers, &writers, nullptr, tv_select);
+ if (count < 0) {
+