Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build fails on Solaris #1877

Open
psumbera opened this issue May 22, 2024 · 1 comment
Open

build fails on Solaris #1877

psumbera opened this issue May 22, 2024 · 1 comment

Comments

@psumbera
Copy link

   Compiling quinn-udp v0.5.1 (/home/psumbera/quinn/quinn-udp)
error[E0425]: cannot find value `IPV6_DONTFRAG` in crate `libc`
  --> quinn-udp/src/unix.rs:27:42
   |
27 | const IPV6_DONTFRAG: libc::c_int = libc::IPV6_DONTFRAG;
   |                                          ^^^^^^^^^^^^^ not found in `libc`

error[E0412]: cannot find type `in6_pktinfo` in crate `libc`
  --> quinn-udp/src/unix.rs:65:64
   |
65 |                 unsafe { libc::CMSG_SPACE(mem::size_of::<libc::in6_pktinfo>() as _) as usize };
   |                                                                ^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `IP_RECVTOS` in crate `libc`
  --> quinn-udp/src/unix.rs:87:79
   |
87 |             if let Err(err) = set_socket_option(&*io, libc::IPPROTO_IP, libc::IP_RECVTOS, OPTION_ON)
   |                                                                               ^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `IPV6_RECVTCLASS` in crate `libc`
   --> quinn-udp/src/unix.rs:156:63
    |
156 |             set_socket_option(&*io, libc::IPPROTO_IPV6, libc::IPV6_RECVTCLASS, OPTION_ON)?;
    |                                                               ^^^^^^^^^^^^^^^ not found in `libc`

error[E0412]: cannot find type `mmsghdr` in crate `libc`
   --> quinn-udp/src/unix.rs:358:50
    |
358 |       let mut hdrs = unsafe { mem::zeroed::<[libc::mmsghdr; BATCH_SIZE]>() };
    |                                                    ^^^^^^^ help: a struct with a similar name exists: `cmsghdr`
    |
   ::: /builds/psumbera/HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.155/src/unix/solarish/mod.rs:76:1
    |
76  | / s! {
77  | |     pub struct in_addr {
78  | |         pub s_addr: ::in_addr_t,
79  | |     }
...   |
475 | |     }
476 | | }
    | |_- similarly named struct `cmsghdr` defined here

error[E0412]: cannot find type `mmsghdr` in crate `libc`
   --> quinn-udp/src/unix.rs:423:24
    |
423 |       msgvec: *mut libc::mmsghdr,
    |                          ^^^^^^^ help: a struct with a similar name exists: `cmsghdr`
    |
   ::: /builds/psumbera/HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.155/src/unix/solarish/mod.rs:76:1
    |
76  | / s! {
77  | |     pub struct in_addr {
78  | |         pub s_addr: ::in_addr_t,
79  | |     }
...   |
475 | |     }
476 | | }
    | |_- similarly named struct `cmsghdr` defined here

error[E0425]: cannot find function `syscall` in crate `libc`
   --> quinn-udp/src/unix.rs:432:19
    |
432 |             libc::syscall(libc::SYS_recvmmsg, sockfd, msgvec, vlen, flags, timeout) as libc::c_int;
    |                   ^^^^^^^ not found in `libc`

error[E0425]: cannot find value `SYS_recvmmsg` in crate `libc`
   --> quinn-udp/src/unix.rs:432:33
    |
432 |             libc::syscall(libc::SYS_recvmmsg, sockfd, msgvec, vlen, flags, timeout) as libc::c_int;
    |                                 ^^^^^^^^^^^^ not found in `libc`

error[E0412]: cannot find type `mmsghdr` in crate `libc`
   --> quinn-udp/src/unix.rs:464:24
    |
464 |       msgvec: *mut libc::mmsghdr,
    |                          ^^^^^^^ help: a struct with a similar name exists: `cmsghdr`
    |
   ::: /builds/psumbera/HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.155/src/unix/solarish/mod.rs:76:1
    |
76  | / s! {
77  | |     pub struct in_addr {
78  | |         pub s_addr: ::in_addr_t,
79  | |     }
...   |
475 | |     }
476 | | }
    | |_- similarly named struct `cmsghdr` defined here

error[E0425]: cannot find value `IP_TOS` in crate `libc`
    --> quinn-udp/src/unix.rs:519:50
     |
519  |             encoder.push(libc::IPPROTO_IP, libc::IP_TOS, ecn as IpTosTy);
     |                                                  ^^^^^^ help: a constant with a similar name exists: `IP_TTL`
     |
    ::: /builds/psumbera/HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.155/src/unix/solarish/mod.rs:1777:1
     |
1777 | pub const IP_TTL: ::c_int = 4;
     | ------------------------- similarly named constant `IP_TTL` defined here

error[E0425]: cannot find value `IPV6_TCLASS` in crate `libc`
   --> quinn-udp/src/unix.rs:522:48
    |
522 |         encoder.push(libc::IPPROTO_IPV6, libc::IPV6_TCLASS, ecn);
    |                                                ^^^^^^^^^^^ not found in `libc`

error[E0422]: cannot find struct, variant or union type `in6_pktinfo` in crate `libc`
   --> quinn-udp/src/unix.rs:559:37
    |
559 |                 let pktinfo = libc::in6_pktinfo {
    |                                     ^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `IPV6_PKTINFO` in crate `libc`
    --> quinn-udp/src/unix.rs:565:56
     |
565  |                 encoder.push(libc::IPPROTO_IPV6, libc::IPV6_PKTINFO, pktinfo);
     |                                                        ^^^^^^^^^^^^ help: a constant with a similar name exists: `IPV6_RECVPKTINFO`
     |
    ::: /builds/psumbera/HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.155/src/unix/solarish/mod.rs:1247:1
     |
1247 | pub const IPV6_RECVPKTINFO: ::c_int = 0x12;
     | ----------------------------------- similarly named constant `IPV6_RECVPKTINFO` defined here

error[E0531]: cannot find unit struct, unit variant or constant `IP_TOS` in crate `libc`
    --> quinn-udp/src/unix.rs:602:38
     |
602  |             (libc::IPPROTO_IP, libc::IP_TOS) => unsafe {
     |                                      ^^^^^^ help: a constant with a similar name exists: `IP_TTL`
     |
    ::: /builds/psumbera/HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.155/src/unix/solarish/mod.rs:1777:1
     |
1777 | pub const IP_TTL: ::c_int = 4;
     | ------------------------- similarly named constant `IP_TTL` defined here

error[E0531]: cannot find unit struct, unit variant or constant `IP_RECVTOS` in crate `libc`
   --> quinn-udp/src/unix.rs:607:38
    |
607 |             (libc::IPPROTO_IP, libc::IP_RECVTOS) => unsafe {
    |                                      ^^^^^^^^^^ not found in `libc`

error[E0531]: cannot find unit struct, unit variant or constant `IPV6_TCLASS` in crate `libc`
   --> quinn-udp/src/unix.rs:610:40
    |
610 |             (libc::IPPROTO_IPV6, libc::IPV6_TCLASS) => unsafe {
    |                                        ^^^^^^^^^^^ not found in `libc`

error[E0531]: cannot find unit struct, unit variant or constant `IPV6_PKTINFO` in crate `libc`
    --> quinn-udp/src/unix.rs:639:40
     |
639  |             (libc::IPPROTO_IPV6, libc::IPV6_PKTINFO) => {
     |                                        ^^^^^^^^^^^^ help: a constant with a similar name exists: `IPV6_RECVPKTINFO`
     |
    ::: /builds/psumbera/HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.155/src/unix/solarish/mod.rs:1247:1
     |
1247 | pub const IPV6_RECVPKTINFO: ::c_int = 0x12;
     | ----------------------------------- similarly named constant `IPV6_RECVPKTINFO` defined here

error[E0412]: cannot find type `in6_pktinfo` in crate `libc`
   --> quinn-udp/src/unix.rs:640:61
    |
640 |                 let pktinfo = unsafe { cmsg::decode::<libc::in6_pktinfo, libc::cmsghdr>(cmsg) };
    |                                                             ^^^^^^^^^^^ not found in `libc`

error[E0699]: cannot call a method on a raw pointer with an unknown pointee type
   --> quinn-udp/src/unix.rs:472:50
    |
472 |     let n = libc::recvmsg(sockfd, &mut (*msgvec).msg_hdr, flags);
    |                                                  ^^^^^^^

error[E0699]: cannot call a method on a raw pointer with an unknown pointee type
   --> quinn-udp/src/unix.rs:478:19
    |
478 |         (*msgvec).msg_len = n as _;
    |                   ^^^^^^^
@djc
Copy link
Collaborator

djc commented May 22, 2024

Thanks for the report! Would you be able to submit a PR addressing these issues in quinn-udp? #1863 might serve as an example of another recent PR adding platform support. It would be great if there would be a way to test that this doesn't regress in CI, if you know of a way doing that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants