[INFO] cloning repository https://github.com/lkitching/rlpi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lkitching/rlpi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flkitching%2Frlpi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flkitching%2Frlpi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 572ab7ab702e3d756ffca048a8449c85c217e17d
[INFO] checking lkitching/rlpi against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flkitching%2Frlpi" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lkitching/rlpi
[INFO] finished tweaking git repo https://github.com/lkitching/rlpi
[INFO] tweaked toml for git repo https://github.com/lkitching/rlpi written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lkitching/rlpi on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lkitching/rlpi already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bbd77786a087b4522b5b8d3a47c253893846ac184f59711326a666ae4b49e12e
[INFO] running `Command { std: "docker" "start" "-a" "bbd77786a087b4522b5b8d3a47c253893846ac184f59711326a666ae4b49e12e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bbd77786a087b4522b5b8d3a47c253893846ac184f59711326a666ae4b49e12e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bbd77786a087b4522b5b8d3a47c253893846ac184f59711326a666ae4b49e12e", kill_on_drop: false }`
[INFO] [stdout] bbd77786a087b4522b5b8d3a47c253893846ac184f59711326a666ae4b49e12e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 33a199776e4cecf1424df56810dcdb63c6dbeb65bfeb80756a3bf1b13f03655f
[INFO] running `Command { std: "docker" "start" "-a" "33a199776e4cecf1424df56810dcdb63c6dbeb65bfeb80756a3bf1b13f03655f", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.102
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking rlpi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/ctype.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/fcntl.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/sys/time.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/unistd.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/time.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/libgen.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdio.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdlib.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/mqueue.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/inet.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/mod.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/sig_receiver.rs:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let cb = sig_handler as extern fn(c_int) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/nonreentrant.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/ctype.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/fcntl.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/sys/time.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/unistd.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/time.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/libgen.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdio.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdlib.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/mqueue.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/inet.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/mod.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/sig_receiver.rs:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let cb = sig_handler as extern fn(c_int) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/nonreentrant.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_util.rs:40:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |     unsafe {
[INFO] [stdout]    |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 40 |         to_result(s, || unsafe { result.assume_init() }, "pthread_join")
[INFO] [stdout]    |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]   --> src/sockets/inet_sockets.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct PassiveSocket {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 91 |     socket_desc: c_int,
[INFO] [stdout] 92 |     address: addrinfo
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             MSG_BUF.clear();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             MSG_BUF.insert_str(0, err_msg);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &MSG_BUF }
[INFO] [stdout]    |              ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &raw const MSG_BUF }
[INFO] [stdout]    |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_util.rs:40:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |     unsafe {
[INFO] [stdout]    |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 40 |         to_result(s, || unsafe { result.assume_init() }, "pthread_join")
[INFO] [stdout]    |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]   --> src/sockets/inet_sockets.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct PassiveSocket {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 91 |     socket_desc: c_int,
[INFO] [stdout] 92 |     address: addrinfo
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             MSG_BUF.clear();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             MSG_BUF.insert_str(0, err_msg);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &MSG_BUF }
[INFO] [stdout]    |              ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &raw const MSG_BUF }
[INFO] [stdout]    |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `close`
[INFO] [stdout]  --> src/sockets/us_xfr_cl.rs:6:41
[INFO] [stdout]   |
[INFO] [stdout] 6 |            STDIN_FILENO, write, size_t, close, exit, EXIT_SUCCESS};
[INFO] [stdout]   |                                         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fatal`
[INFO] [stdout]  --> src/sockets/i6d_ucase_sv.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rlpi::error_functions::{err_exit, fatal};
[INFO] [stdout]   |                                       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `sockaddr_in6` does not permit being left uninitialized
[INFO] [stdout]   --> src/sockets/i6d_ucase_sv.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut sv_addr = unsafe { MaybeUninit::<sockaddr_in6>::uninit().assume_init() };
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    this code causes undefined behavior when executed
[INFO] [stdout]    |                                    help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout]    = note: integers must be initialized
[INFO] [stdout]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/psem/thread_incr_psem.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut td = &mut(*tdp);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `read`
[INFO] [stdout]  --> src/sockets/is_seqnum_sv.rs:9:54
[INFO] [stdout]   |
[INFO] [stdout] 9 |            NI_MAXHOST, getnameinfo, sockaddr, write, read};
[INFO] [stdout]   |                                                      ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &mut MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &raw mut MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &mut MUTEX }))
[INFO] [stdout]    |                                      ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &raw mut MUTEX }))
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_cancel.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     if result == unsafe { PTHREAD_CANCELED } {
[INFO] [stdout]    |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/t_sigsuspend.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |         sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                                  ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/t_sigsuspend.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |         sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                                  ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/t_sigaltstack.rs:52:34
[INFO] [stdout]    |
[INFO] [stdout] 52 |         sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                                  ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]   --> src/signals/t_sigaltstack.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn overflow_stack(call_num: u32) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] ...
[INFO] [stdout] 25 |     overflow_stack(call_num + 1);
[INFO] [stdout]    |     ---------------------------- recursive call site
[INFO] [stdout]    |
[INFO] [stdout]    = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]    = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/intquit.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let cb = (sig_handler as extern fn(c_int)) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `close`
[INFO] [stdout]  --> src/sockets/us_xfr_cl.rs:6:41
[INFO] [stdout]   |
[INFO] [stdout] 6 |            STDIN_FILENO, write, size_t, close, exit, EXIT_SUCCESS};
[INFO] [stdout]   |                                         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_cancel.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     if result == unsafe { PTHREAD_CANCELED } {
[INFO] [stdout]    |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &mut MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &raw mut MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &mut MUTEX }))
[INFO] [stdout]    |                                      ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &raw mut MUTEX }))
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:37:32
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:42:34
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &mut THREAD_DIED }));
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &raw mut THREAD_DIED }));
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         unsafe { THREADS.push(info); }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:77:36
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:39
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &raw mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:68
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/intquit.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let cb = (sig_handler as extern fn(c_int)) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fatal`
[INFO] [stdout]  --> src/sockets/i6d_ucase_sv.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rlpi::error_functions::{err_exit, fatal};
[INFO] [stdout]   |                                       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `sockaddr_in6` does not permit being left uninitialized
[INFO] [stdout]   --> src/sockets/i6d_ucase_sv.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut sv_addr = unsafe { MaybeUninit::<sockaddr_in6>::uninit().assume_init() };
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    this code causes undefined behavior when executed
[INFO] [stdout]    |                                    help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout]    = note: integers must be initialized
[INFO] [stdout]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:37:32
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:42:34
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &mut THREAD_DIED }));
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &raw mut THREAD_DIED }));
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         unsafe { THREADS.push(info); }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:77:36
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:39
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &raw mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:68
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/ouch.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let cb = (sig_handler as extern fn(c_int)) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `read`
[INFO] [stdout]  --> src/sockets/is_seqnum_sv.rs:9:54
[INFO] [stdout]   |
[INFO] [stdout] 9 |            NI_MAXHOST, getnameinfo, sockaddr, write, read};
[INFO] [stdout]   |                                                      ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/ouch.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let cb = (sig_handler as extern fn(c_int)) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/t_sigaltstack.rs:52:34
[INFO] [stdout]    |
[INFO] [stdout] 52 |         sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                                  ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]   --> src/signals/t_sigaltstack.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn overflow_stack(call_num: u32) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] ...
[INFO] [stdout] 25 |     overflow_stack(call_num + 1);
[INFO] [stdout]    |     ---------------------------- recursive call site
[INFO] [stdout]    |
[INFO] [stdout]    = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]    = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/psem/thread_incr_psem.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut td = &mut(*tdp);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.81s
[INFO] running `Command { std: "docker" "inspect" "33a199776e4cecf1424df56810dcdb63c6dbeb65bfeb80756a3bf1b13f03655f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33a199776e4cecf1424df56810dcdb63c6dbeb65bfeb80756a3bf1b13f03655f", kill_on_drop: false }`
[INFO] [stdout] 33a199776e4cecf1424df56810dcdb63c6dbeb65bfeb80756a3bf1b13f03655f
