[INFO] fetching crate penguincrab 0.1.63...
[INFO] testing penguincrab-0.1.63 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-8
[INFO] extracting crate penguincrab 0.1.63 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate penguincrab 0.1.63
[INFO] finished tweaking crates.io crate penguincrab 0.1.63
[INFO] tweaked toml for crates.io crate penguincrab 0.1.63 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate penguincrab 0.1.63 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 8 packages to latest compatible versions
[INFO] [stderr]       Adding nix v0.25.1 (available: v0.30.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nix v0.25.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 964b89c46c3b74be3e21e2692185c2d1a3c3c1c94a37f20125b705a9c9f833cb
[INFO] running `Command { std: "docker" "start" "-a" "964b89c46c3b74be3e21e2692185c2d1a3c3c1c94a37f20125b705a9c9f833cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "964b89c46c3b74be3e21e2692185c2d1a3c3c1c94a37f20125b705a9c9f833cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "964b89c46c3b74be3e21e2692185c2d1a3c3c1c94a37f20125b705a9c9f833cb", kill_on_drop: false }`
[INFO] [stdout] 964b89c46c3b74be3e21e2692185c2d1a3c3c1c94a37f20125b705a9c9f833cb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bd60301e1366dc5798b4696f0a88352199a13f3f04333809f689da47864de29c
[INFO] running `Command { std: "docker" "start" "-a" "bd60301e1366dc5798b4696f0a88352199a13f3f04333809f689da47864de29c", kill_on_drop: false }`
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling penguincrab v0.1.63 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling more-asserts v0.3.1
[INFO] [stderr]    Compiling nix v0.25.1
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/lkl/syscall_wrappers.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::lkl::lklh::consts::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `LKL_ITIMER_REAL` in the value namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 4 | pub use crate::lkl::lklh::syscall_nos::*;
[INFO] [stdout]   |         -------------------------------- but the name `LKL_ITIMER_REAL` in the value namespace is also re-exported here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/lkl/syscall_wrappers.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::lkl::lklh::consts::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `LKL_PERF_RECORD_MISC_MMAP_DATA` in the value namespace is first re-exported here
[INFO] [stdout] 2 | pub use crate::lkl::lklh::lkl_specific::*;
[INFO] [stdout] 3 | pub use crate::lkl::lklh::rest::*;
[INFO] [stdout]   |         ------------------------- but the name `LKL_PERF_RECORD_MISC_MMAP_DATA` in the value namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/lkl/syscall_wrappers.rs:128:54
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn lkl_sys_fstat(fd: i32, stat: &mut stat => |s| (s as *mut _)); }
[INFO] [stdout]     |                                                      ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 - pub fn lkl_sys_fstat(fd: i32, stat: &mut stat => |s| (s as *mut _)); }
[INFO] [stdout] 128 + pub fn lkl_sys_fstat(fd: i32, stat: &mut stat => |s| s as *mut _ ); }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/lkl/syscall_wrappers.rs:180:30
[INFO] [stdout]     |
[INFO] [stdout] 180 | dirent: &mut dirent64 => |s| (s as *mut _),
[INFO] [stdout]     |                              ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 180 - dirent: &mut dirent64 => |s| (s as *mut _),
[INFO] [stdout] 180 + dirent: &mut dirent64 => |s| s as *mut _ ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test` is never used
[INFO] [stdout]    --> src/lib.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn setup_test() -> LklSetup {
[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 shared reference to mutable static
[INFO] [stdout]   --> src/lib.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |         lkl_init(&lkl_host_ops);
[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]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 50 |         lkl_init(&raw const lkl_host_ops);
[INFO] [stdout]    |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/lib.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 |             lkl_start_kernel(&lkl_host_ops, boot_arg);
[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] 52 |             lkl_start_kernel(&raw const lkl_host_ops, boot_arg);
[INFO] [stdout]    |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/lkl/syscall_wrappers.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn to_cstr<'a>(rust_str: &'a str) -> Option<&CStr> {
[INFO] [stdout]    |                               --                ^^^^^ the same lifetime is elided here
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn to_cstr<'a>(rust_str: &'a str) -> Option<&'a CStr> {
[INFO] [stdout]    |                                                  ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.39s
[INFO] running `Command { std: "docker" "inspect" "bd60301e1366dc5798b4696f0a88352199a13f3f04333809f689da47864de29c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bd60301e1366dc5798b4696f0a88352199a13f3f04333809f689da47864de29c", kill_on_drop: false }`
[INFO] [stdout] bd60301e1366dc5798b4696f0a88352199a13f3f04333809f689da47864de29c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9387db1a80ae449062403cc97b9bbdabd00407c191a4a148357da4b65ce0aeb4
[INFO] running `Command { std: "docker" "start" "-a" "9387db1a80ae449062403cc97b9bbdabd00407c191a4a148357da4b65ce0aeb4", kill_on_drop: false }`
[INFO] [stderr]    Compiling penguincrab v0.1.63 (/opt/rustwide/workdir)
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/lkl/syscall_wrappers.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::lkl::lklh::consts::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `LKL_ITIMER_REAL` in the value namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 4 | pub use crate::lkl::lklh::syscall_nos::*;
[INFO] [stdout]   |         -------------------------------- but the name `LKL_ITIMER_REAL` in the value namespace is also re-exported here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/lkl/syscall_wrappers.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::lkl::lklh::consts::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `LKL_PERF_RECORD_MISC_MMAP_DATA` in the value namespace is first re-exported here
[INFO] [stdout] 2 | pub use crate::lkl::lklh::lkl_specific::*;
[INFO] [stdout] 3 | pub use crate::lkl::lklh::rest::*;
[INFO] [stdout]   |         ------------------------- but the name `LKL_PERF_RECORD_MISC_MMAP_DATA` in the value namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/lkl/syscall_wrappers.rs:128:54
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn lkl_sys_fstat(fd: i32, stat: &mut stat => |s| (s as *mut _)); }
[INFO] [stdout]     |                                                      ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 - pub fn lkl_sys_fstat(fd: i32, stat: &mut stat => |s| (s as *mut _)); }
[INFO] [stdout] 128 + pub fn lkl_sys_fstat(fd: i32, stat: &mut stat => |s| s as *mut _ ); }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/lkl/syscall_wrappers.rs:180:30
[INFO] [stdout]     |
[INFO] [stdout] 180 | dirent: &mut dirent64 => |s| (s as *mut _),
[INFO] [stdout]     |                              ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 180 - dirent: &mut dirent64 => |s| (s as *mut _),
[INFO] [stdout] 180 + dirent: &mut dirent64 => |s| s as *mut _ ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test` is never used
[INFO] [stdout]    --> src/lib.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn setup_test() -> LklSetup {
[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 shared reference to mutable static
[INFO] [stdout]   --> src/lib.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |         lkl_init(&lkl_host_ops);
[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]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 50 |         lkl_init(&raw const lkl_host_ops);
[INFO] [stdout]    |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/lib.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 |             lkl_start_kernel(&lkl_host_ops, boot_arg);
[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] 52 |             lkl_start_kernel(&raw const lkl_host_ops, boot_arg);
[INFO] [stdout]    |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/lkl/syscall_wrappers.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn to_cstr<'a>(rust_str: &'a str) -> Option<&CStr> {
[INFO] [stdout]    |                               --                ^^^^^ the same lifetime is elided here
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn to_cstr<'a>(rust_str: &'a str) -> Option<&'a CStr> {
[INFO] [stdout]    |                                                  ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/lkl/syscall_wrappers.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::lkl::lklh::consts::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `LKL_ITIMER_REAL` in the value namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 4 | pub use crate::lkl::lklh::syscall_nos::*;
[INFO] [stdout]   |         -------------------------------- but the name `LKL_ITIMER_REAL` in the value namespace is also re-exported here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/lkl/syscall_wrappers.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::lkl::lklh::consts::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `LKL_PERF_RECORD_MISC_MMAP_DATA` in the value namespace is first re-exported here
[INFO] [stdout] 2 | pub use crate::lkl::lklh::lkl_specific::*;
[INFO] [stdout] 3 | pub use crate::lkl::lklh::rest::*;
[INFO] [stdout]   |         ------------------------- but the name `LKL_PERF_RECORD_MISC_MMAP_DATA` in the value namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/lkl/syscall_wrappers.rs:128:54
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn lkl_sys_fstat(fd: i32, stat: &mut stat => |s| (s as *mut _)); }
[INFO] [stdout]     |                                                      ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 - pub fn lkl_sys_fstat(fd: i32, stat: &mut stat => |s| (s as *mut _)); }
[INFO] [stdout] 128 + pub fn lkl_sys_fstat(fd: i32, stat: &mut stat => |s| s as *mut _ ); }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/lkl/syscall_wrappers.rs:180:30
[INFO] [stdout]     |
[INFO] [stdout] 180 | dirent: &mut dirent64 => |s| (s as *mut _),
[INFO] [stdout]     |                              ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 180 - dirent: &mut dirent64 => |s| (s as *mut _),
[INFO] [stdout] 180 + dirent: &mut dirent64 => |s| s as *mut _ ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/lib.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |         lkl_init(&lkl_host_ops);
[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]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 50 |         lkl_init(&raw const lkl_host_ops);
[INFO] [stdout]    |                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/lib.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 |             lkl_start_kernel(&lkl_host_ops, boot_arg);
[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] 52 |             lkl_start_kernel(&raw const lkl_host_ops, boot_arg);
[INFO] [stdout]    |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/lkl/syscall_wrappers.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn to_cstr<'a>(rust_str: &'a str) -> Option<&CStr> {
[INFO] [stdout]    |                               --                ^^^^^ the same lifetime is elided here
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn to_cstr<'a>(rust_str: &'a str) -> Option<&'a CStr> {
[INFO] [stdout]    |                                                  ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note:  "cc" "-m64" "/tmp/rustcoJTVn8/symbols.o" "<3 object files omitted>" "-Wl,--as-needed" "-Wl,-Bdynamic" "-llkl" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libtest-*,libgetopts-*,librustc_std_workspace_std-*}.rlib" "/opt/rustwide/target/debug/deps/{libmore_asserts-f001e74054e64787,libnix-78c7f1abccdd5595,libmemoffset-bc48cec0ee29d8c8,libpin_utils-9a5791cba021167a,libbitflags-e2b4db6c651223da,libcfg_if-5af52f617df93f8f,liblibc-5123f14f31b09f0b}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcoJTVn8/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "linux/tools/lkl" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/penguincrab-2adc6280fdb16b6c" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
[INFO] [stdout]   = note: some arguments are omitted. use `--verbose` to show all linker arguments
[INFO] [stdout]   = note: rust-lld: error: unable to find library -llkl
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `penguincrab` (lib test) due to 1 previous error; 7 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9387db1a80ae449062403cc97b9bbdabd00407c191a4a148357da4b65ce0aeb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9387db1a80ae449062403cc97b9bbdabd00407c191a4a148357da4b65ce0aeb4", kill_on_drop: false }`
[INFO] [stdout] 9387db1a80ae449062403cc97b9bbdabd00407c191a4a148357da4b65ce0aeb4
