Skip to content

Can't build Tokio crate, on Haiku #7002

@vmlemon

Description

@vmlemon

Version
List the versions of all tokio crates you are using. The easiest way to get
this information is using cargo tree subcommand:

  Downloaded tokio v1.41.1
  Downloaded tokio-util v0.7.12
  Downloaded tokio-tungstenite v0.21.0
  Downloaded tokio-rustls v0.26.0
  Downloaded tokio-macros v2.4.0
  Downloaded tokio-io-utility v0.7.6
   Compiling tokio-macros v2.4.0

Platform
The output of uname -a (UNIX), or version and 32 or 64-bit (Windows)
Haiku shredder 1 hrev57937+125 Oct 26 2024 21:25 x86_64 x86_64 Haiku

Description
After installing Rust 1.83.0, on Haiku, along with OpenSSL 1.1.1w-2, and attempting to build the "rustic-rs" project, using Cargo, I encountered a failure to build the Tokio crate:

   Compiling tokio v1.41.1
error[E0425]: cannot find function `get_peer_cred` in module `ucred`
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/stream.rs:932:16
    |
932 |         ucred::get_peer_cred(self)
    |                ^^^^^^^^^^^^^ not found in `ucred`
    |
note: found an item that was configured out
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:40:34
    |
40  | pub(crate) use self::impl_linux::get_peer_cred;
    |                                  ^^^^^^^^^^^^^
note: the item is gated here
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:34:1
    |
34  | / #[cfg(any(
35  | |     target_os = "linux",
36  | |     target_os = "redox",
37  | |     target_os = "android",
38  | |     target_os = "openbsd"
39  | | ))]
    | |___^
note: found an item that was configured out
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:43:35
    |
43  | pub(crate) use self::impl_netbsd::get_peer_cred;
    |                                   ^^^^^^^^^^^^^
note: the item is gated here
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:42:1
    |
42  | #[cfg(any(target_os = "netbsd", target_os = "nto"))]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: found an item that was configured out
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:46:32
    |
46  | pub(crate) use self::impl_bsd::get_peer_cred;
    |                                ^^^^^^^^^^^^^
note: the item is gated here
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:45:1
    |
45  | #[cfg(any(target_os = "dragonfly", target_os = "freebsd"))]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: found an item that was configured out
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:55:34
    |
55  | pub(crate) use self::impl_macos::get_peer_cred;
    |                                  ^^^^^^^^^^^^^
note: the item is gated here
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:48:1
    |
48  | / #[cfg(any(
49  | |     target_os = "macos",
50  | |     target_os = "ios",
51  | |     target_os = "tvos",
52  | |     target_os = "watchos",
53  | |     target_os = "visionos"
54  | | ))]
    | |___^
note: found an item that was configured out
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:58:36
    |
58  | pub(crate) use self::impl_solaris::get_peer_cred;
    |                                    ^^^^^^^^^^^^^
note: the item is gated here
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:57:1
    |
57  | #[cfg(any(target_os = "solaris", target_os = "illumos"))]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: found an item that was configured out
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:61:32
    |
61  | pub(crate) use self::impl_aix::get_peer_cred;
    |                                ^^^^^^^^^^^^^
note: the item is gated behind the `aix` feature
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:60:7
    |
60  | #[cfg(target_os = "aix")]
    |       ^^^^^^^^^^^^^^^^^
note: found an item that was configured out
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:64:35
    |
64  | pub(crate) use self::impl_noproc::get_peer_cred;
    |                                   ^^^^^^^^^^^^^
note: the item is gated here
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/unix/ucred.rs:63:1
    |
63  | #[cfg(any(target_os = "espidf", target_os = "vita"))]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0425]: cannot find value `SIGIO` in crate `libc`
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/signal/unix.rs:152:20
    |
152 |         Self(libc::SIGIO)
    |                    ^^^^^ help: a constant with a similar name exists: `SIGIOT`
    |
   ::: /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.167/src/unix/mod.rs:247:1
    |
247 | pub const SIGIOT: c_int = 6;
    | ----------------------- similarly named constant `SIGIOT` defined here

   Compiling zerofrom-derive v0.1.5
error[E0599]: no method named `tos` found for struct `Socket` in the current scope
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/tcp/socket.rs:483:20
    |
483 |         self.inner.tos()
    |                    ^^^ method not found in `Socket`

error[E0599]: no method named `set_tos` found for struct `Socket` in the current scope
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/tcp/socket.rs:510:20
    |
510 |         self.inner.set_tos(tos)
    |                    ^^^^^^^
    |
help: there is a method `set_mss` with a similar name
    |
510 |         self.inner.set_mss(tos)
    |                    ~~~~~~~

error[E0599]: no method named `tos` found for struct `SockRef<'_>` in the current scope
    --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/udp.rs:1878:26
     |
1878 |         self.as_socket().tos()
     |         ----             ^^^ method not found in `SockRef<'_>`
     |         |
     |         method `tos` is available on `&udp::UdpSocket`

error[E0599]: no method named `set_tos` found for struct `SockRef<'_>` in the current scope
    --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/net/udp.rs:1905:26
     |
1905 |         self.as_socket().set_tos(tos)
     |         ----             ^^^^^^^
     |         |
     |         method `set_tos` is available on `&udp::UdpSocket`
     |
help: there is a method `set_mss` with a similar name
     |
1905 |         self.as_socket().set_mss(tos)
     |                          ~~~~~~~

As I am unfamiliar with the Rust ecosystem, and the Rust language, I figured that it'd make sense, to report this as a Tokio bug, to get the most "bang for the buck", in terms of enabling stuff to build. (There's a sibling bug, at haikuports/haikuports#11407, that bundles together issues related to this, on the Haiku side).

Unfortunately, I don't have an example of code that triggers this error, as it applies during the process of building the crate, itself, as a prerequisite.

Apologies, if this has already been reported, or if I'm better off, reporting it elsewhere...

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-tokioArea: The main tokio crateC-bugCategory: This is a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions