```
$ bmake
=> Bootstrap dependency digest>=20010302: found digest-20190127
===> Building for bitcoin-0.20.1nb3
Making all in src
gmake[1]: Entering directory '/home/pbulk/build/finance/bitcoin/work/bitcoin-0.20.1/src'
gmake[2]: Entering directory '/home/pbulk/build/finance/bitcoin/work/bitcoin-0.20.1/src'
gmake[3]: Entering directory '/home/pbulk/build/finance/bitcoin/work/bitcoin-0.20.1'
gmake[3]: Leaving directory '/home/pbulk/build/finance/bitcoin/work/bitcoin-0.20.1'
  CXXLD    bitcoin-tx
Undefined                       first referenced
 symbol                             in file
freeifaddrs                         libbitcoin_util.a(libbitcoin_util_a-randomenv.o)
getifaddrs                          libbitcoin_util.a(libbitcoin_util_a-randomenv.o)
ld: fatal: symbol referencing errors. No output written to .libs/bitcoin-tx
collect2: error: ld returned 1 exit status
gmake[2]: *** [Makefile:7355: bitcoin-tx] Error 1
gmake[2]: Leaving directory '/home/pbulk/build/finance/bitcoin/work/bitcoin-0.20.1/src'
gmake[1]: *** [Makefile:17263: all-recursive] Error 1
gmake[1]: Leaving directory '/home/pbulk/build/finance/bitcoin/work/bitcoin-0.20.1/src'
gmake: *** [Makefile:782: all-recursive] Error 1
*** Error code 2

Stop.
bmake[1]: stopped in /data/pkgsrc/finance/bitcoin
*** Error code 1
```

I found [this](https://github.com/pydron/ifaddr/issues/23), which seems to be the same issue, but on a Python context.

Previous issues with compiling on Illumos seem to have been sorted out (#15708 & more), but now it's stuck here.
pollfds[socket_id].fd = socket_id;
        pollfds[socket_id].events |= POLLIN;
    }
    for (SOCKET socket_id : send_select_set) {
        pollfds[socket_id].fd = socket_id;
        pollfds[socket_id].events |= POLLOUT;
    }
    for (SOCKET socket_id : error_select_set) {
        pollfds[socket_id].fd = socket_id;
        
        pollfds[socket_id].events |= POLLERR|POLLHUP;
    }
    std::vector<struct pollfd> vpollfds;
    vpollfds.reserve(pollfds.size());
    for (auto it : pollfds) {
        vpollfds.push_back(std::move(it.second));
    }
    if (poll(vpollfds.data(), vpollfds.size(), SELECT_TIMEOUT_MILLISECONDS) < 0) return;
    if (interruptNet) return;
    for (struct pollfd pollfd_entry : vpollfds) {
        if (pollfd_entry.revents & POLLIN)            recv_set.insert(pollfd_entry.fd);
        if (pollfd_entry.revents & POLLOUT)           send_set.insert(pollfd_entry.fd);
        if (pollfd_entry.revents & (POLLERR|POLLHUP)) error_set.insert(pollfd_entry.fd);
    }
}
#else
void CConnman::SocketEvents(std::set<SOCKET> &recv_set, std::set<SOCKET> &send_set, std::set<SOCKET> &error_set)
{
    std::set<SOCKET> recv_select_set, send_select_set, error_select_set;
    if (!GenerateSelectSet(recv_select_set, send_select_set, error_select_set)) {