```
$ 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.
}
void V1TransportSerializer::prepareForTransport(CSerializedNetMsg& msg, std::vector<unsigned char>& header) {
    
    uint256 hash = Hash(msg.data);
    
    CMessageHeader hdr(Params().MessageStart(), msg.m_type.c_str(), msg.data.size());
    memcpy(hdr.pchChecksum, hash.begin(), CMessageHeader::CHECKSUM_SIZE);
    
    header.reserve(CMessageHeader::HEADER_SIZE);
    CVectorWriter{SER_NETWORK, INIT_PROTO_VERSION, header, 0, hdr};
}
size_t CConnman::SocketSendData(CNode& node) const
{
    auto it = node.vSendMsg.begin();
    size_t nSentSize = 0;
    while (it != node.vSendMsg.end()) {
        const auto& data = *it;
        assert(data.size() > node.nSendOffset);
        int nBytes = 0;
        {
            LOCK(node.cs_hSocket);
            if (node.hSocket == INVALID_SOCKET)
                break;
            nBytes = send(node.hSocket, reinterpret_cast<const char*>(data.data()) + node.nSendOffset, data.size() - node.nSendOffset, MSG_NOSIGNAL | MSG_DONTWAIT);
        }
        if (nBytes > 0) {
            node.nLastSend = GetSystemTimeInSeconds();
            node.nSendBytes += nBytes;
            node.nSendOffset += nBytes;
            nSentSize += nBytes;