The patch below may fix it, but I can’t confirm because on my machine contrib/devtools/symbol-check.py is happy with src/test/test_bitcoin which contains:
0nm src/test/test_bitcoin |grep in6addr_loopback
1                 U in6addr_loopback
 0diff --git i/src/test/netbase_tests.cpp w/src/test/netbase_tests.cpp
 1index eb0d95a37..f473c092a 100644
 2--- i/src/test/netbase_tests.cpp
 3+++ w/src/test/netbase_tests.cpp
 4@@ -447,25 +447,27 @@ BOOST_AUTO_TEST_CASE(netbase_dont_resolve_strings_with_embedded_nul_characters)
 5     BOOST_CHECK(!LookupSubNet(std::string("5wyqrzbvrdsumnok.onion\0example.com\0", 35), ret));
 6 }
 7 
 8 // Since CNetAddr (un)ser is tested separately in net_tests.cpp here we only
 9 // try a few edge cases for port, service flags and time.
10 
11+static const struct in6_addr in6addr_loopback_ = IN6ADDR_LOOPBACK_INIT;
12+
13 static const std::vector<CAddress> fixture_addresses({
14     CAddress(
15-        CService(CNetAddr(in6addr_loopback), 0 /* port */),
16+        CService(CNetAddr(in6addr_loopback_), 0 /* port */),
17         NODE_NONE,
18         0x4966bc61U /* Fri Jan  9 02:54:25 UTC 2009 */
19     ),
20     CAddress(
21-        CService(CNetAddr(in6addr_loopback), 0x00f1 /* port */),
22+        CService(CNetAddr(in6addr_loopback_), 0x00f1 /* port */),
23         NODE_NETWORK,
24         0x83766279U /* Tue Nov 22 11:22:33 UTC 2039 */
25     ),
26     CAddress(
27-        CService(CNetAddr(in6addr_loopback), 0xf1f2 /* port */),
28+        CService(CNetAddr(in6addr_loopback_), 0xf1f2 /* port */),
29         static_cast<ServiceFlags>(NODE_WITNESS | NODE_COMPACT_FILTERS | NODE_NETWORK_LIMITED),
30         0xffffffffU /* Sun Feb  7 06:28:15 UTC 2106 */
31     )
32 });
33 
34 // fixture_addresses should equal to this when serialized in V1 format.