ngtcp2: Build error in examples on 10.6: error: 'IP_RECVTOS' was not declared in this scope; did you mean 'IP_RECVTTL'?

/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_ngtcp2/ngtcp2/work/ngtcp2-0.15.0/examples/shared.cc: In function 'void ngtcp2::fd_set_recv_ecn(int, int)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_ngtcp2/ngtcp2/work/ngtcp2-0.15.0/examples/shared.cc:95:36: error: 'IP_RECVTOS' was not declared in this scope; did you mean 'IP_RECVTTL'?
   95 |     if (setsockopt(fd, IPPROTO_IP, IP_RECVTOS, &tos,
      |                                    ^~~~~~~~~~
      |                                    IP_RECVTTL
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_ngtcp2/ngtcp2/work/ngtcp2-0.15.0/examples/shared.cc: In function 'std::optional<ngtcp2::Address> ngtcp2::msghdr_get_local_addr(msghdr*, int)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_ngtcp2/ngtcp2/work/ngtcp2-0.15.0/examples/shared.cc:160:64: error: 'IP_PKTINFO' was not declared in this scope; did you mean 'IPV6_PKTINFO'?
  160 |       if (cmsg->cmsg_level == IPPROTO_IP && cmsg->cmsg_type == IP_PKTINFO) {
      |                                                                ^~~~~~~~~~
      |                                                                IPV6_PKTINFO
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_ngtcp2/ngtcp2/work/ngtcp2-0.15.0/examples/shared.cc:161:41: error: 'in_pktinfo' does not name a type; did you mean 'in6_pktinfo'?
  161 |         auto pktinfo = reinterpret_cast<in_pktinfo *>(CMSG_DATA(cmsg));
      |                                         ^~~~~~~~~~
      |                                         in6_pktinfo
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_ngtcp2/ngtcp2/work/ngtcp2-0.15.0/examples/shared.cc:161:52: error: expected '>' before '*' token
  161 |         auto pktinfo = reinterpret_cast<in_pktinfo *>(CMSG_DATA(cmsg));
      |                                                    ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_ngtcp2/ngtcp2/work/ngtcp2-0.15.0/examples/shared.cc:161:52: error: expected '(' before '*' token
  161 |         auto pktinfo = reinterpret_cast<in_pktinfo *>(CMSG_DATA(cmsg));
      |                                                    ^
      |                                                    (
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_ngtcp2/ngtcp2/work/ngtcp2-0.15.0/examples/shared.cc:161:53: error: expected primary-expression before '>' token
  161 |         auto pktinfo = reinterpret_cast<in_pktinfo *>(CMSG_DATA(cmsg));
      |                                                     ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_ngtcp2/ngtcp2/work/ngtcp2-0.15.0/examples/shared.cc:161:71: error: expected ')' before ';' token
  161 |         auto pktinfo = reinterpret_cast<in_pktinfo *>(CMSG_DATA(cmsg));
      |                                                                       ^
      |                                                                       )
make[2]: *** [examples/CMakeFiles/gtlsserver.dir/shared.cc.o] Error 1

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 21 (6 by maintainers)

Most upvoted comments

With autotools, you can achieve it with configure --enable-lib-only. Would you mind submitting PR for this?

Sure. Let me first look for a solution to IPV6_RECVPKTINFO etc. though.

Thank you. https://github.com/ngtcp2/ngtcp2/pull/814 fixes missing cstring.