[INFO] cloning repository https://github.com/jihoo12/ros
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jihoo12/ros" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjihoo12%2Fros", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjihoo12%2Fros'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ad77e5424b5dd08049877d80b6405020a05343f2
[INFO] testing jihoo12/ros against beta-2026-04-21 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjihoo12%2Fros" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jihoo12/ros
[INFO] finished tweaking git repo https://github.com/jihoo12/ros
[INFO] tweaked toml for git repo https://github.com/jihoo12/ros written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jihoo12/ros on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jihoo12/ros 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] eb8424474b010bad118f17dbe06299b05bb148b183cf1af96fb70293a17ce1d5
[INFO] running `Command { std: "docker" "start" "-a" "eb8424474b010bad118f17dbe06299b05bb148b183cf1af96fb70293a17ce1d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eb8424474b010bad118f17dbe06299b05bb148b183cf1af96fb70293a17ce1d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eb8424474b010bad118f17dbe06299b05bb148b183cf1af96fb70293a17ce1d5", kill_on_drop: false }`
[INFO] [stdout] eb8424474b010bad118f17dbe06299b05bb148b183cf1af96fb70293a17ce1d5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 34e3f88c1c459cf4ab2df0f3200e1559d0e2de35b902ff794f04a6d05a83fd1d
[INFO] running `Command { std: "docker" "start" "-a" "34e3f88c1c459cf4ab2df0f3200e1559d0e2de35b902ff794f04a6d05a83fd1d", kill_on_drop: false }`
[INFO] [stderr]    Compiling font8x8 v0.3.1
[INFO] [stderr]    Compiling os v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[macro_use]
[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: `crate::print`
[INFO] [stdout]  --> src/xhci.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::print;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block
[INFO] [stdout]    --> src/uefi.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 |     RUNTIME_SERVICES = rt;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^ use of mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/uefi.rs:231:1
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub unsafe fn init_runtime_services(rt: *mut EFI_RUNTIME_SERVICES) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block
[INFO] [stdout]    --> src/uefi.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 236 |     if !RUNTIME_SERVICES.is_null() {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ use of mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/uefi.rs:235:1
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub unsafe fn system_reset(reset_type: EFI_RESET_TYPE, status: EFI_STATUS) -> ! {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/uefi.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 237 |         ((*RUNTIME_SERVICES).ResetSystem)(reset_type, status, 0, core::ptr::null());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/uefi.rs:237:10
[INFO] [stdout]     |
[INFO] [stdout] 237 |         ((*RUNTIME_SERVICES).ResetSystem)(reset_type, status, 0, core::ptr::null());
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block
[INFO] [stdout]    --> src/uefi.rs:237:12
[INFO] [stdout]     |
[INFO] [stdout] 237 |         ((*RUNTIME_SERVICES).ResetSystem)(reset_type, status, 0, core::ptr::null());
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^ use of mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> src/uefi.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 |         core::arch::asm!("hlt");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/std/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | /     asm!(
[INFO] [stdout] 17 | |         "syscall",
[INFO] [stdout] 18 | |         in("rax") id,
[INFO] [stdout] 19 | |         in("rdi") arg1,
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |         options(nostack, preserves_flags)
[INFO] [stdout] 29 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/std/mod.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / pub unsafe fn syscall(
[INFO] [stdout]  7 | |     id: usize,
[INFO] [stdout]  8 | |     arg1: usize,
[INFO] [stdout]  9 | |     arg2: usize,
[INFO] [stdout] ...  |
[INFO] [stdout] 13 | |     arg6: usize,
[INFO] [stdout] 14 | | ) -> usize {
[INFO] [stdout]    | |__________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `allocator::user_alloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/allocator.rs:248:20
[INFO] [stdout]     |
[INFO] [stdout] 248 |             return user_alloc(layout);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/allocator.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 245 |     unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `allocator::user_free` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/allocator.rs:305:13
[INFO] [stdout]     |
[INFO] [stdout] 305 |             user_free(ptr);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/allocator.rs:299:5
[INFO] [stdout]     |
[INFO] [stdout] 299 |     unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout`
[INFO] [stdout]    --> src/allocator.rs:299:44
[INFO] [stdout]     |
[INFO] [stdout] 299 |     unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) {
[INFO] [stdout]     |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `allocator::user_realloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/allocator.rs:323:20
[INFO] [stdout]     |
[INFO] [stdout] 323 |             return user_realloc(ptr, layout, new_size);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/allocator.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 321 |     unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/nvme.rs:469:20
[INFO] [stdout]     |
[INFO] [stdout] 469 |     let ctx = &mut *ctx_ptr;
[INFO] [stdout]     |                    ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/nvme.rs:467:1
[INFO] [stdout]     |
[INFO] [stdout] 467 | pub unsafe fn shutdown() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/nvme.rs:472:25
[INFO] [stdout]     |
[INFO] [stdout] 472 |         let regs = &mut *ctx.regs;
[INFO] [stdout]     |                         ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::read_volatile` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/nvme.rs:474:22
[INFO] [stdout]     |
[INFO] [stdout] 474 |         let mut cc = read_volatile(&regs.cc);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::write_volatile` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/nvme.rs:477:9
[INFO] [stdout]     |
[INFO] [stdout] 477 |         write_volatile(&mut regs.cc, cc);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::read_volatile` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/nvme.rs:482:16
[INFO] [stdout]     |
[INFO] [stdout] 482 |         while (read_volatile(&regs.csts) >> 2) & 0x3 != 0x2 {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `syscall::try_syscall` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/syscall.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 327 |     try_syscall(id, arg1, arg2, arg3, arg4, arg5, arg6)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/syscall.rs:317:1
[INFO] [stdout]     |
[INFO] [stdout] 317 | / unsafe fn syscall(
[INFO] [stdout] 318 | |     id: usize,
[INFO] [stdout] 319 | |     arg1: usize,
[INFO] [stdout] 320 | |     arg2: usize,
[INFO] [stdout] ...   |
[INFO] [stdout] 324 | |     arg6: usize,
[INFO] [stdout] 325 | | ) -> usize {
[INFO] [stdout]     | |__________^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/syscall.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |     let ret: usize;
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/xhci.rs:977:18
[INFO] [stdout]     |
[INFO] [stdout] 977 |     let buffer = unsafe { core::ptr::addr_of_mut!(USB_DATA_BUFFER) as *mut u8 };
[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[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]     --> src/xhci.rs:1201:23
[INFO] [stdout]      |
[INFO] [stdout] 1201 |         let op = &mut *ctx.op;
[INFO] [stdout]      |                       ^^^^^^^ dereference of raw pointer
[INFO] [stdout]      |
[INFO] [stdout]      = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]     --> src/xhci.rs:1198:1
[INFO] [stdout]      |
[INFO] [stdout] 1198 | pub unsafe fn shutdown() {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::read_volatile` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/xhci.rs:1203:23
[INFO] [stdout]      |
[INFO] [stdout] 1203 |         let mut cmd = read_volatile(&op.usbcmd);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::write_volatile` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/xhci.rs:1205:9
[INFO] [stdout]      |
[INFO] [stdout] 1205 |         write_volatile(&mut op.usbcmd, cmd);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::read_volatile` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/xhci.rs:1209:16
[INFO] [stdout]      |
[INFO] [stdout] 1209 |         while (read_volatile(&op.usbsts) & 1) == 0 {
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PixelRedGreenBlueReserved8BitPerColor`, `PixelBlueGreenRedReserved8BitPerColor`, `PixelBitMask`, `PixelBltOnly`, and `PixelFormatMax` are never constructed
[INFO] [stdout]   --> src/uefi.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum EFI_GRAPHICS_PIXEL_FORMAT {
[INFO] [stdout]    |          ------------------------- variants in this enum
[INFO] [stdout] 38 |     PixelRedGreenBlueReserved8BitPerColor,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     PixelBlueGreenRedReserved8BitPerColor,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     PixelBitMask,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 41 |     PixelBltOnly,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 42 |     PixelFormatMax,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EFI_GRAPHICS_PIXEL_FORMAT` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EFI_RESERVED_MEMORY_TYPE` is never used
[INFO] [stdout]    --> src/uefi.rs:109:11
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub const EFI_RESERVED_MEMORY_TYPE: u32 = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EFI_UNUSABLE_MEMORY` is never used
[INFO] [stdout]    --> src/uefi.rs:117:11
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const EFI_UNUSABLE_MEMORY: u32 = 8;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EFI_PAL_CODE` is never used
[INFO] [stdout]    --> src/uefi.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub const EFI_PAL_CODE: u32 = 13;
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EFI_PERSISTENT_MEMORY` is never used
[INFO] [stdout]    --> src/uefi.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub const EFI_PERSISTENT_MEMORY: u32 = 14;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `realloc` is never used
[INFO] [stdout]    --> src/allocator.rs:396:15
[INFO] [stdout]     |
[INFO] [stdout] 396 | pub unsafe fn realloc(ptr: *mut u8, size: usize) -> *mut u8 {
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gdt.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct AlignedStack([u8; 4096]);
[INFO] [stdout]    |        ------------ ^^^^^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GdtSystemEntry` is never constructed
[INFO] [stdout]   --> src/gdt.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct GdtSystemEntry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `outw` is never used
[INFO] [stdout]   --> src/io.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub unsafe fn outw(port: u16, val: u16) {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inw` is never used
[INFO] [stdout]   --> src/io.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub unsafe fn inw(port: u16) -> u16 {
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_NO_EXECUTE` is never used
[INFO] [stdout]   --> src/memory.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const PAGE_NO_EXECUTE: u64 = 1 << 63;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `descriptor_version` is never read
[INFO] [stdout]   --> src/memory.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct FrameAllocator {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub descriptor_version: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bus`, `device`, `function`, `vendor_id`, and `device_id` are never read
[INFO] [stdout]   --> src/pci.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct PciDevice {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 17 |     pub bus: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 18 |     pub device: u8,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 19 |     pub function: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 20 |     pub vendor_id: u16,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 21 |     pub device_id: u16,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PciDevice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stack_bottom` and `kernel_stack_bottom` are never read
[INFO] [stdout]   --> src/scheduler.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Task {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub stack_bottom: u64, // For deallocation reference (user stack if usermode)
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub status: TaskStatus,
[INFO] [stdout] 21 |     pub kernel_stack_bottom: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_new_task` is never used
[INFO] [stdout]    --> src/scheduler.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn add_new_task(entry_point: extern "C" fn(), stack_bottom: u64, stack_size: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_task_id` is never used
[INFO] [stdout]    --> src/scheduler.rs:314:8
[INFO] [stdout]     |
[INFO] [stdout] 314 | pub fn current_task_id() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `syscall` is never used
[INFO] [stdout]    --> src/syscall.rs:317:11
[INFO] [stdout]     |
[INFO] [stdout] 317 | unsafe fn syscall(
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_syscall` is never used
[INFO] [stdout]    --> src/syscall.rs:331:11
[INFO] [stdout]     |
[INFO] [stdout] 331 | unsafe fn try_syscall(
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/main.rs:228:25
[INFO] [stdout]     |
[INFO] [stdout] 228 |     let rip = user_main as u64;
[INFO] [stdout]     |                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 228 |     let rip = user_main as *const () as u64;
[INFO] [stdout]     |                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/allocator.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn lock(&self) -> SpinlockGuard<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided 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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn lock(&self) -> SpinlockGuard<'_, T> {
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/scheduler.rs:101:40
[INFO] [stdout]     |
[INFO] [stdout] 101 |             *sp = user_task_trampoline as u64; // RIP for context_switch 'ret'
[INFO] [stdout]     |                                        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 101 |             *sp = user_task_trampoline as *const () as u64; // RIP for context_switch 'ret'
[INFO] [stdout]     |                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/syscall.rs:53:44
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let handler_addr = syscall_handler as u64;
[INFO] [stdout]    |                                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let handler_addr = syscall_handler as *const () as u64;
[INFO] [stdout]    |                                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note:  "cc" "-m64" "/opt/rustwide/target/debug/deps/rustcn43wt3/symbols.o" "<9 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/opt/rustwide/target/debug/deps/libfont8x8-ee1318b0e68481db.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-L" "/opt/rustwide/target/debug/deps/rustcn43wt3/raw-dylibs" "-Wl,-Bdynamic" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/os-6941fb0f51db066f" "-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: undefined symbol: main
[INFO] [stdout]           >>> referenced by /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o:(_start)
[INFO] [stdout]           
[INFO] [stdout]           rust-lld: error: undefined symbol: __libc_start_main
[INFO] [stdout]           >>> referenced by /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o:(_start)
[INFO] [stdout]           
[INFO] [stdout]           rust-lld: error: undefined symbol: rust_eh_personality
[INFO] [stdout]           >>> referenced by alloc.fef50e8eecedd288-cgu.0
[INFO] [stdout]           >>>               alloc-bf7849fbca36ac2f.alloc.fef50e8eecedd288-cgu.0.rcgu.o:(DW.ref.rust_eh_personality) in archive /opt/rustwide/rustup-home/toolchains/beta-2026-04-21-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-bf7849fbca36ac2f.rlib
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `os` (bin "os") due to 1 previous error; 47 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "34e3f88c1c459cf4ab2df0f3200e1559d0e2de35b902ff794f04a6d05a83fd1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "34e3f88c1c459cf4ab2df0f3200e1559d0e2de35b902ff794f04a6d05a83fd1d", kill_on_drop: false }`
[INFO] [stdout] 34e3f88c1c459cf4ab2df0f3200e1559d0e2de35b902ff794f04a6d05a83fd1d
