[INFO] fetching crate rust-rsm 0.3.2...
[INFO] testing rust-rsm-0.3.2 against 1.91.0 for beta-1.92-2
[INFO] extracting crate rust-rsm 0.3.2 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate rust-rsm 0.3.2
[INFO] finished tweaking crates.io crate rust-rsm 0.3.2
[INFO] tweaked toml for crates.io crate rust-rsm 0.3.2 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rust-rsm 0.3.2 on toolchain 1.91.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.91.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rust-rsm 0.3.2 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" "+1.91.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded itoa v1.0.2
[INFO] [stderr]   Downloaded matches v0.1.9
[INFO] [stderr]   Downloaded unicode-bidi v0.3.8
[INFO] [stderr]   Downloaded block-buffer v0.10.2
[INFO] [stderr]   Downloaded libdeflater v0.10.0
[INFO] [stderr]   Downloaded digest v0.10.3
[INFO] [stderr]   Downloaded ascii v1.0.0
[INFO] [stderr]   Downloaded ryu v1.0.10
[INFO] [stderr]   Downloaded serde v1.0.139
[INFO] [stderr]   Downloaded mio v0.8.4
[INFO] [stderr]   Downloaded aes v0.8.1
[INFO] [stderr]   Downloaded serde_json v1.0.82
[INFO] [stderr]   Downloaded time v0.3.11
[INFO] [stderr]   Downloaded generic-array v0.14.5
[INFO] [stderr]   Downloaded serde_derive v1.0.139
[INFO] [stderr]   Downloaded tiny_http v0.11.0
[INFO] [stderr]   Downloaded sha2 v0.10.2
[INFO] [stderr]   Downloaded sm4 v0.5.1
[INFO] [stderr]   Downloaded unicode-normalization v0.1.21
[INFO] [stderr]   Downloaded cpufeatures v0.2.2
[INFO] [stderr]   Downloaded chunked_transfer v1.4.0
[INFO] [stderr]   Downloaded time-macros v0.2.4
[INFO] [stderr]   Downloaded libdeflate-sys v0.10.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+1.91.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6b4470f8bf3bb26bce0d64a499dac8e0089b40beadb5877a23ac15c41e3bea7b
[INFO] running `Command { std: "docker" "start" "-a" "6b4470f8bf3bb26bce0d64a499dac8e0089b40beadb5877a23ac15c41e3bea7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6b4470f8bf3bb26bce0d64a499dac8e0089b40beadb5877a23ac15c41e3bea7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6b4470f8bf3bb26bce0d64a499dac8e0089b40beadb5877a23ac15c41e3bea7b", kill_on_drop: false }`
[INFO] [stdout] 6b4470f8bf3bb26bce0d64a499dac8e0089b40beadb5877a23ac15c41e3bea7b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 95ebb7f1041a8b202409f46a9b07e8b21d2ff74bcc229ee620ee90c93a9ee0cf
[INFO] running `Command { std: "docker" "start" "-a" "95ebb7f1041a8b202409f46a9b07e8b21d2ff74bcc229ee620ee90c93a9ee0cf", kill_on_drop: false }`
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.40
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling quote v1.0.20
[INFO] [stderr]    Compiling unicode-ident v1.0.1
[INFO] [stderr]    Compiling syn v1.0.98
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling serde_derive v1.0.139
[INFO] [stderr]    Compiling serde v1.0.139
[INFO] [stderr]    Compiling tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling matches v0.1.9
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling itoa v1.0.2
[INFO] [stderr]    Compiling unicode-bidi v0.3.8
[INFO] [stderr]    Compiling generic-array v0.14.5
[INFO] [stderr]    Compiling percent-encoding v2.1.0
[INFO] [stderr]    Compiling tinyvec v1.6.0
[INFO] [stderr]    Compiling serde_json v1.0.82
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling form_urlencoded v1.0.1
[INFO] [stderr]    Compiling time-macros v0.2.4
[INFO] [stderr]    Compiling num_threads v0.1.6
[INFO] [stderr]    Compiling cpufeatures v0.2.2
[INFO] [stderr]    Compiling ascii v1.0.0
[INFO] [stderr]    Compiling ryu v1.0.10
[INFO] [stderr]    Compiling chunked_transfer v1.4.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.21
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling getrandom v0.2.7
[INFO] [stderr]    Compiling mio v0.8.4
[INFO] [stderr]    Compiling libdeflate-sys v0.10.0
[INFO] [stderr]    Compiling rust-rsm v0.3.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr] warning: rust-rsm@0.3.2: src/net_ext/os_linux.c: In function 'c_create_timer':
[INFO] [stderr] warning: rust-rsm@0.3.2: src/net_ext/os_linux.c:175:31: warning: assignment to 'void (*)(__sigval_t)' {aka 'void (*)(union sigval)'} from incompatible pointer type 'timer_callback' {aka 'int (*)(sigval_t)'} [-Wincompatible-pointer-types]
[INFO] [stderr] warning: rust-rsm@0.3.2:   175 |     sev.sigev_notify_function = call_back;
[INFO] [stderr] warning: rust-rsm@0.3.2:       |                               ^
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling inout v0.1.3
[INFO] [stderr]    Compiling block-buffer v0.10.2
[INFO] [stderr]    Compiling cipher v0.4.3
[INFO] [stderr]    Compiling digest v0.10.3
[INFO] [stderr]    Compiling sm4 v0.5.1
[INFO] [stderr]    Compiling aes v0.8.1
[INFO] [stderr]    Compiling sha2 v0.10.2
[INFO] [stderr]    Compiling libdeflater v0.10.0
[INFO] [stderr]    Compiling time v0.3.11
[INFO] [stderr]    Compiling tiny_http v0.11.0
[INFO] [stdout] warning: unused import: `mem`
[INFO] [stdout]  --> src/common/ringbuf.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{cmp,alloc,mem,ptr};
[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: `core::ffi::c_void`
[INFO] [stdout]  --> src/rsm/os_timer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use core::ffi::c_void;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/rsm/os_timer.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::common::{self,tsidallocator::TsIdAllocator,tsmap::TsHashMap};
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/rsm/os_timer.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 | type os_callback_fn = unsafe extern fn(ev:libc::sigval);
[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: `core::ffi::c_void`
[INFO] [stdout]   --> src/rsm/socket/poll.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use core::ffi::c_void;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/rsm/xlog/xlog_server.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{self,Read,Write};
[INFO] [stdout]    |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `libc`
[INFO] [stdout]  --> src/net_ext/rawpacket.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use libc;
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/net_ext/netinterface.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Error`
[INFO] [stdout]   --> src/net_ext/netinterface.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::io::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UdpSocket`
[INFO] [stdout]   --> src/net_ext/unix/rawsocket.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::net::{UdpSocket,SocketAddr,SocketAddrV6,SocketAddrV4};
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Aes256`
[INFO] [stdout]  --> src/alg/crypto.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use aes::{self,Aes128,Aes256, Block};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |         _=>(libc::SCHED_OTHER,0),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |         E_RSM_TASK_PRIORITY::THREAD_PRI_LOW=>(libc::SCHED_OTHER,0),
[INFO] [stdout]     |         ----------------------------------- matches some of the same values
[INFO] [stdout] 250 |         E_RSM_TASK_PRIORITY::THREAD_PRI_NORMAL=>(libc::SCHED_OTHER,50),
[INFO] [stdout]     |         -------------------------------------- matches some of the same values
[INFO] [stdout] 251 |         E_RSM_TASK_PRIORITY::THREAD_PRI_HIGH=>(libc::SCHED_OTHER,80),
[INFO] [stdout]     |         ------------------------------------ matches some of the same values
[INFO] [stdout] 252 |         E_RSM_TASK_PRIORITY::THREAD_PRI_REALTIME=>(libc::SCHED_RR,10),
[INFO] [stdout]     |         ---------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 255 |         _=>(libc::SCHED_OTHER,0),
[INFO] [stdout]     |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rsm/os_timer.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |     let mut its = libc::itimerspec  {
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 |             let mut client = match self.RegisterLogModule(&msg.ModuleName, sender) {
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msgStru`
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:326:37
[INFO] [stdout]     |
[INFO] [stdout] 326 |     fn send_to_syslog_server(&mut self,msgStru:&InnerLogMsg, formated_msg:&String) {
[INFO] [stdout]     |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msgStru`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/net_ext/netinterface.rs:236:21
[INFO] [stdout]     |
[INFO] [stdout] 236 |         if let Some(mut if_info) = ifmap.get_mut(&ifname) {
[INFO] [stdout]     |                     ----^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `c` is never read
[INFO] [stdout]    --> src/alg/spf.rs:357:10
[INFO] [stdout]     |
[INFO] [stdout] 357 |     let mut c=0u32;
[INFO] [stdout]     |             ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `alt` is never read
[INFO] [stdout]    --> src/alg/spf.rs:358:13
[INFO] [stdout]     |
[INFO] [stdout] 358 |     let mut alt=0u32;
[INFO] [stdout]     |             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]   --> src/alg/mod.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let mut m:HashSet<T>=HashSet::with_capacity(v1.len()<<1);
[INFO] [stdout]    |                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `local_addr` is never read
[INFO] [stdout]   --> src/net_ext/restserver.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct RestServer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 31 |     local_addr: net::SocketAddr,
[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/common/errcode.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |     match unsafe {&ErrorNameMap} {
[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] 74 |     match unsafe {&raw const ErrorNameMap} {
[INFO] [stdout]    |                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/common/errcode.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 |     if ErrorNameMap.is_none() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/common/errcode.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     if let Some(errm)=unsafe {&ErrorNameMap} {
[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] 128 |     if let Some(errm)=unsafe {&raw const ErrorNameMap} {
[INFO] [stdout]     |                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/common/tsqueue.rs:49:17
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn iter(&self) -> Iter<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] 49 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/common/tsqueue.rs:56:21
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn iter_mut(&mut self) -> IterMut<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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/common/rawstring.rs:64:31
[INFO] [stdout]    |
[INFO] [stdout] 64 |     String::from_utf16_lossy(&(*(ustr as *const [u16;MAX_STRING_LEN]))[0..raw_len]).to_string()
[INFO] [stdout]    |                               ^^-------------------------------------^^^^^^^^^^^^^
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 this raw pointer has type `*const [u16; 1024]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u16; 1024]`
[INFO] [stdout]   --> src/common/rawstring.rs:64:31
[INFO] [stdout]    |
[INFO] [stdout] 64 |     String::from_utf16_lossy(&(*(ustr as *const [u16;MAX_STRING_LEN]))[0..raw_len]).to_string()
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 64 |     String::from_utf16_lossy(&(&(*(ustr as *const [u16;MAX_STRING_LEN])))[0..raw_len]).to_string()
[INFO] [stdout]    |                               ++                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/common/atomicqueue.rs:164:17
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn iter(&self) -> Iter<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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/common/atomicqueue.rs:173:21
[INFO] [stdout]     |
[INFO] [stdout] 173 |     pub fn iter_mut(&mut self) -> Iter<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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 173 |     pub fn iter_mut(&mut self) -> Iter<'_, T> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/mod.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 |     if gRsmConfig.is_some() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/mod.rs:411:35
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let serv_addr = match unsafe {&gRsmConfig} {
[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] 411 |     let serv_addr = match unsafe {&raw const gRsmConfig} {
[INFO] [stdout]     |                                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:46:25
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if let Some(tl)=&mut gTaskList {
[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] 46 |         if let Some(tl)=&raw mut gTaskList {
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:52:32
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let ptMap = match unsafe { &mut gTaskRegistry } {
[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] 52 |     let ptMap = match unsafe { &raw mut gTaskRegistry } {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let pcMap = match unsafe { &mut gComponentRegistry } {
[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] 70 |     let pcMap = match unsafe { &raw mut gComponentRegistry } {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:92:34
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let tEntries = match unsafe {&mut gTaskRegistry} {
[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] 92 |     let tEntries = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:96:28
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let tl = match unsafe {&gTaskList} {
[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] 96 |     let tl = match unsafe {&raw const gTaskList} {
[INFO] [stdout]    |                             +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:105:28
[INFO] [stdout]     |
[INFO] [stdout] 105 |             ts.push((t,task.clone()));
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `task_t` does not implement `Clone`, so calling `clone` on `&task_t` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 105 -             ts.push((t,task.clone()));
[INFO] [stdout] 105 +             ts.push((t,task));
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `task_t`, implement `Clone` for it
[INFO] [stdout]    --> src/rsm/task.rs:24:1
[INFO] [stdout]     |
[INFO] [stdout]  24 + #[derive(Clone)]
[INFO] [stdout]  25 | pub(crate) struct task_t{
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:125:31
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let gTask = match unsafe {&mut gTaskRegistry} {
[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] 125 |     let gTask = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 |     if let Some(tm) = unsafe { & mut gTaskIdMap} {
[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] 138 |     if let Some(tm) = unsafe { &raw mut gTaskIdMap} {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:149:31
[INFO] [stdout]     |
[INFO] [stdout] 149 |     if let Some(tm) = unsafe {&mut gTaskIdMap} {
[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] 149 |     if let Some(tm) = unsafe {&raw mut gTaskIdMap} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:159:26
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let tm = match unsafe {&mut gTaskRegistry} {
[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] 159 |   let tm = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:186:30
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let task = match unsafe {&mut gTaskRegistry} {
[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] 186 |     let task = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:199:30
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let task = match unsafe {&mut gTaskRegistry} {
[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] 199 |     let task = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |     let cm = match unsafe {& gComponentRegistry} {
[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] 211 |     let cm = match unsafe {&raw const gComponentRegistry} {
[INFO] [stdout]     |                             +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:221:30
[INFO] [stdout]     |
[INFO] [stdout] 221 |     let task = match unsafe {&mut gTaskRegistry} {
[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] 221 |     let task = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 |         if gTimerIdAlloc.is_some() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:66:24
[INFO] [stdout]    |
[INFO] [stdout] 66 |         return unsafe {(&mut gTimer10ms).as_mut()}
[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] 66 |         return unsafe {(&raw mut gTimer10ms).as_mut()}
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 |         return unsafe {(&mut gTimer100ms).as_mut()}
[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] 68 |         return unsafe {(&raw mut gTimer100ms).as_mut()}
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:70:20
[INFO] [stdout]    |
[INFO] [stdout] 70 |     return unsafe {(&mut gTimer1s).as_mut()}
[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] 70 |     return unsafe {(&raw mut gTimer1s).as_mut()}
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:75:41
[INFO] [stdout]    |
[INFO] [stdout] 75 |         TIMER_CAT_10MS=> return unsafe {(&mut gTimer10ms).as_mut()},
[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] 75 |         TIMER_CAT_10MS=> return unsafe {(&raw mut gTimer10ms).as_mut()},
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:76:42
[INFO] [stdout]    |
[INFO] [stdout] 76 |         TIMER_CAT_100MS=> return unsafe {(&mut gTimer100ms).as_mut()},
[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] 76 |         TIMER_CAT_100MS=> return unsafe {(&raw mut gTimer100ms).as_mut()},
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:77:39
[INFO] [stdout]    |
[INFO] [stdout] 77 |         TIMER_CAT_1S=> return unsafe {(&mut gTimer1s).as_mut()},
[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 |         TIMER_CAT_1S=> return unsafe {(&raw mut gTimer1s).as_mut()},
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:103:30
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let ida = match unsafe { &mut gTimerIdAlloc} {
[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] 103 |     let ida = match unsafe { &raw mut gTimerIdAlloc} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:162:20
[INFO] [stdout]     |
[INFO] [stdout] 162 |     match unsafe { &mut gTimerIdAlloc} {
[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] 162 |     match unsafe { &raw mut gTimerIdAlloc} {
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:244:31
[INFO] [stdout]     |
[INFO] [stdout] 244 |     let tMap = match unsafe { &mut gTimer10ms} {
[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] 244 |     let tMap = match unsafe { &raw mut gTimer10ms} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:252:31
[INFO] [stdout]     |
[INFO] [stdout] 252 |     let tMap = match unsafe { &mut gTimer100ms} {
[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] 252 |     let tMap = match unsafe { &raw mut gTimer100ms} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:260:31
[INFO] [stdout]     |
[INFO] [stdout] 260 |     let tMap = match unsafe { &mut gTimer1s} {
[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] 260 |     let tMap = match unsafe { &raw mut gTimer1s} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:291:30
[INFO] [stdout]     |
[INFO] [stdout] 291 |         stats.total =  match &gTimerIdAlloc {
[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] 291 |         stats.total =  match &raw const gTimerIdAlloc {
[INFO] [stdout]     |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:296:40
[INFO] [stdout]     |
[INFO] [stdout] 296 |         stats.timer_count_10ms = match &gTimer10ms {
[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] 296 |         stats.timer_count_10ms = match &raw const gTimer10ms {
[INFO] [stdout]     |                                         +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:301:41
[INFO] [stdout]     |
[INFO] [stdout] 301 |         stats.timer_count_100ms = match &gTimer100ms {
[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] 301 |         stats.timer_count_100ms = match &raw const gTimer100ms {
[INFO] [stdout]     |                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:305:38
[INFO] [stdout]     |
[INFO] [stdout] 305 |         stats.timer_count_1s = match &gTimer1s {
[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] 305 |         stats.timer_count_1s = match &raw const gTimer1s {
[INFO] [stdout]     |                                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/os_timer.rs:74:34
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let tid = match unsafe { &mut gOsTimerAlloc} {
[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] 74 |         let tid = match unsafe { &raw mut gOsTimerAlloc} {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/os_timer.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |         if gOsTimerAlloc.is_none() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/os_timer.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 |         if gOsTimerMap.is_none() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/os_timer.rs:129:28
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let tm = match unsafe {&mut gOsTimerMap} {
[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] 129 |     let tm = match unsafe {&raw mut gOsTimerMap} {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/os_timer.rs:136:28
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let tm = match unsafe {&mut gOsTimerMap} {
[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] 136 |     let tm = match unsafe {&raw mut gOsTimerMap} {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:284:30
[INFO] [stdout]     |
[INFO] [stdout] 284 |     let pool = match unsafe {&mut gSocketPool} {
[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] 284 |     let pool = match unsafe {&raw mut gSocketPool} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:293:30
[INFO] [stdout]     |
[INFO] [stdout] 293 |     let pool = match unsafe {&mut gSocketPool} {
[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] 293 |     let pool = match unsafe {&raw mut gSocketPool} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:302:30
[INFO] [stdout]     |
[INFO] [stdout] 302 |     let pool = match unsafe {&mut gSocketPool} {
[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] 302 |     let pool = match unsafe {&raw mut gSocketPool} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:331:30
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let pool = match unsafe {&mut gSocketPool} {
[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] 331 |     let pool = match unsafe {&raw mut gSocketPool} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:343:36
[INFO] [stdout]     |
[INFO] [stdout] 343 |     let pool_inst = match unsafe { &mut gSocketPool} {
[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] 343 |     let pool_inst = match unsafe { &raw mut gSocketPool} {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:428:29
[INFO] [stdout]     |
[INFO] [stdout] 428 |     let pool = match unsafe{&mut gSocketPool} {
[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] 428 |     let pool = match unsafe{&raw mut gSocketPool} {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rsm/xlog/mod.rs:178:2
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fp2.write(&vec_buf_out.as_slice()[0..comp_len]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let _ = fp2.write(&vec_buf_out.as_slice()[0..comp_len]);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rsm/xlog/mod.rs:179:2
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fp2.flush();
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 179 |     let _ = fp2.flush();
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:413:8
[INFO] [stdout]     |
[INFO] [stdout] 413 |     if gLogServer.is_none() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:417:28
[INFO] [stdout]     |
[INFO] [stdout] 417 |     let service=match unsafe {&mut gLogServer} {
[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] 417 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:436:28
[INFO] [stdout]     |
[INFO] [stdout] 436 |     let service=match unsafe {&mut gLogServer} {
[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] 436 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:451:28
[INFO] [stdout]     |
[INFO] [stdout] 451 |     let service=match unsafe {&mut gLogServer} {
[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] 451 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:463:28
[INFO] [stdout]     |
[INFO] [stdout] 463 |     let service=match unsafe {&mut gLogServer} {
[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] 463 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:474:28
[INFO] [stdout]     |
[INFO] [stdout] 474 |     let service=match unsafe {&mut gLogServer} {
[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] 474 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:504:30
[INFO] [stdout]     |
[INFO] [stdout] 504 |     let log_serv = match unsafe{&mut gLogServer} {
[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] 504 |     let log_serv = match unsafe{&raw mut gLogServer} {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/oam/mod.rs:67:29
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let map = match unsafe {&mut gMapOpStr2Int} {
[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] 67 |     let map = match unsafe {&raw mut gMapOpStr2Int} {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/oam/oam_main.rs:62:29
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let inst =match unsafe {&mut gOamInst} {
[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] 62 |     let inst =match unsafe {&raw mut gOamInst} {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/oam/oam_main.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 |         if gOamInst.is_some() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/oam/oam_main.rs:197:29
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let inst =match unsafe {&mut gOamInst} {
[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] 197 |     let inst =match unsafe {&raw mut gOamInst} {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/oam/oam_main.rs:208:29
[INFO] [stdout]     |
[INFO] [stdout] 208 |     let inst =match unsafe {&mut gOamInst} {
[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] 208 |     let inst =match unsafe {&raw mut gOamInst} {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/oam/oam_main.rs:255:29
[INFO] [stdout]     |
[INFO] [stdout] 255 |     let inst =match unsafe {&mut gOamInst} {
[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] 255 |     let inst =match unsafe {&raw mut gOamInst} {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/net_ext/pktbuf.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |         return & (*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize]
[INFO] [stdout]    |                  ^^-------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    this raw pointer has type `*const [u8; 2048]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u8; 2048]`
[INFO] [stdout]   --> src/net_ext/pktbuf.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |         return & (*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize]
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 48 |         return & (&(*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize])))[0..self.buf_len as usize]
[INFO] [stdout]    |                  ++                                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/net_ext/pktbuf.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |         return &mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize]
[INFO] [stdout]    |                     ^^-----------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this raw pointer has type `*mut [u8; 2048]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [u8; 2048]`
[INFO] [stdout]   --> src/net_ext/pktbuf.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |         return &mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize]
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 53 |         return &mut (&mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize])))[0..self.buf_len as usize]
[INFO] [stdout]    |                     +++++                                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/net_ext/pktbuf.rs:214:29
[INFO] [stdout]     |
[INFO] [stdout] 214 |             match  unsafe { &mut GlobalRecvPktBufs } {
[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] 214 |             match  unsafe { &raw mut GlobalRecvPktBufs } {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/net_ext/pktbuf.rs:220:28
[INFO] [stdout]     |
[INFO] [stdout] 220 |             match unsafe { &mut GlobalSendPktBufs } {
[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] 220 |             match unsafe { &raw mut GlobalSendPktBufs } {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/net_ext/fec.rs:300:14
[INFO] [stdout]     |
[INFO] [stdout] 300 | ...  &(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as usize]
[INFO] [stdout]     |       ^^--------------------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         this raw pointer has type `*const [u8; 2080]`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u8; 2080]`
[INFO] [stdout]    --> src/net_ext/fec.rs:300:14
[INFO] [stdout]     |
[INFO] [stdout] 300 | ...   &(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as u...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 300 |             &(&(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE])))[0..FEC_HDR_SIZE+self.real_len as usize]
[INFO] [stdout]     |              ++                                                                                               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/net_ext/fec.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 | ...ut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as usize]
[INFO] [stdout]     |       ^^------------------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         this raw pointer has type `*mut [u8; 2080]`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [u8; 2080]`
[INFO] [stdout]    --> src/net_ext/fec.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 | ...   &mut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 306 |             &mut (&mut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE])))[0..FEC_HDR_SIZE+self.real_len as usize]
[INFO] [stdout]     |                  +++++                                                                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]   --> src/main.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::io::{Error};
[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: `mem`
[INFO] [stdout]  --> src/common/ringbuf.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{cmp,alloc,mem,ptr};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ffi::c_void`
[INFO] [stdout]  --> src/rsm/os_timer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use core::ffi::c_void;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/rsm/os_timer.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::common::{self,tsidallocator::TsIdAllocator,tsmap::TsHashMap};
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/rsm/os_timer.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 | type os_callback_fn = unsafe extern fn(ev:libc::sigval);
[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: `core::ffi::c_void`
[INFO] [stdout]   --> src/rsm/socket/poll.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use core::ffi::c_void;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/rsm/xlog/xlog_server.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{self,Read,Write};
[INFO] [stdout]    |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Aes256`
[INFO] [stdout]  --> src/alg/crypto.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use aes::{self,Aes128,Aes256, Block};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `libc`
[INFO] [stdout]  --> src/net_ext/rawpacket.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use libc;
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/net_ext/netinterface.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Error`
[INFO] [stdout]   --> src/net_ext/netinterface.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::io::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UdpSocket`
[INFO] [stdout]   --> src/net_ext/unix/rawsocket.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::net::{UdpSocket,SocketAddr,SocketAddrV6,SocketAddrV4};
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |         _=>(libc::SCHED_OTHER,0),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |         E_RSM_TASK_PRIORITY::THREAD_PRI_LOW=>(libc::SCHED_OTHER,0),
[INFO] [stdout]     |         ----------------------------------- matches some of the same values
[INFO] [stdout] 250 |         E_RSM_TASK_PRIORITY::THREAD_PRI_NORMAL=>(libc::SCHED_OTHER,50),
[INFO] [stdout]     |         -------------------------------------- matches some of the same values
[INFO] [stdout] 251 |         E_RSM_TASK_PRIORITY::THREAD_PRI_HIGH=>(libc::SCHED_OTHER,80),
[INFO] [stdout]     |         ------------------------------------ matches some of the same values
[INFO] [stdout] 252 |         E_RSM_TASK_PRIORITY::THREAD_PRI_REALTIME=>(libc::SCHED_RR,10),
[INFO] [stdout]     |         ---------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 255 |         _=>(libc::SCHED_OTHER,0),
[INFO] [stdout]     |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rsm/os_timer.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |     let mut its = libc::itimerspec  {
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 |             let mut client = match self.RegisterLogModule(&msg.ModuleName, sender) {
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msgStru`
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:326:37
[INFO] [stdout]     |
[INFO] [stdout] 326 |     fn send_to_syslog_server(&mut self,msgStru:&InnerLogMsg, formated_msg:&String) {
[INFO] [stdout]     |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msgStru`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `c` is never read
[INFO] [stdout]    --> src/alg/spf.rs:357:10
[INFO] [stdout]     |
[INFO] [stdout] 357 |     let mut c=0u32;
[INFO] [stdout]     |             ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `alt` is never read
[INFO] [stdout]    --> src/alg/spf.rs:358:13
[INFO] [stdout]     |
[INFO] [stdout] 358 |     let mut alt=0u32;
[INFO] [stdout]     |             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]   --> src/alg/mod.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let mut m:HashSet<T>=HashSet::with_capacity(v1.len()<<1);
[INFO] [stdout]    |                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/net_ext/netinterface.rs:236:21
[INFO] [stdout]     |
[INFO] [stdout] 236 |         if let Some(mut if_info) = ifmap.get_mut(&ifname) {
[INFO] [stdout]     |                     ----^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cid`
[INFO] [stdout]   --> src/main.rs:55:34
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn on_socket_event(&mut self,cid:&rsm::rsm_component_t,event:rsm::rsm_socket_event_t) {
[INFO] [stdout]    |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_cid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/main.rs:55:60
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn on_socket_event(&mut self,cid:&rsm::rsm_component_t,event:rsm::rsm_socket_event_t) {
[INFO] [stdout]    |                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cid`
[INFO] [stdout]   --> src/main.rs:72:27
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn on_close(&mut self,cid:&rsm::rsm_component_t) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_cid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rsm_conf`
[INFO] [stdout]    --> src/main.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let rsm_conf = match config::load_rsm_cfg(fpath) {
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rsm_conf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/main.rs:44:63
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let msg= rsm::rsm_message_t::new::<u64>(10015,unsafe {&data}).unwrap();
[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] 44 |         let msg= rsm::rsm_message_t::new::<u64>(10015,unsafe {&raw const data}).unwrap();
[INFO] [stdout]    |                                                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/main.rs:79:24
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let apps = unsafe {&mut sampleApp};
[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] 79 |     let apps = unsafe {&raw mut sampleApp};
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/common/errcode.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |     match unsafe {&ErrorNameMap} {
[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] 74 |     match unsafe {&raw const ErrorNameMap} {
[INFO] [stdout]    |                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/common/errcode.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 |     if ErrorNameMap.is_none() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/common/errcode.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     if let Some(errm)=unsafe {&ErrorNameMap} {
[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] 128 |     if let Some(errm)=unsafe {&raw const ErrorNameMap} {
[INFO] [stdout]     |                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/common/tsqueue.rs:49:17
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn iter(&self) -> Iter<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] 49 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/common/tsqueue.rs:56:21
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn iter_mut(&mut self) -> IterMut<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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/common/rawstring.rs:64:31
[INFO] [stdout]    |
[INFO] [stdout] 64 |     String::from_utf16_lossy(&(*(ustr as *const [u16;MAX_STRING_LEN]))[0..raw_len]).to_string()
[INFO] [stdout]    |                               ^^-------------------------------------^^^^^^^^^^^^^
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 this raw pointer has type `*const [u16; 1024]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u16; 1024]`
[INFO] [stdout]   --> src/common/rawstring.rs:64:31
[INFO] [stdout]    |
[INFO] [stdout] 64 |     String::from_utf16_lossy(&(*(ustr as *const [u16;MAX_STRING_LEN]))[0..raw_len]).to_string()
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 64 |     String::from_utf16_lossy(&(&(*(ustr as *const [u16;MAX_STRING_LEN])))[0..raw_len]).to_string()
[INFO] [stdout]    |                               ++                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/common/atomicqueue.rs:164:17
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn iter(&self) -> Iter<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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/common/atomicqueue.rs:173:21
[INFO] [stdout]     |
[INFO] [stdout] 173 |     pub fn iter_mut(&mut self) -> Iter<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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 173 |     pub fn iter_mut(&mut self) -> Iter<'_, T> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/mod.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 |     if gRsmConfig.is_some() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/mod.rs:411:35
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let serv_addr = match unsafe {&gRsmConfig} {
[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] 411 |     let serv_addr = match unsafe {&raw const gRsmConfig} {
[INFO] [stdout]     |                                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:46:25
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if let Some(tl)=&mut gTaskList {
[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] 46 |         if let Some(tl)=&raw mut gTaskList {
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:52:32
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let ptMap = match unsafe { &mut gTaskRegistry } {
[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] 52 |     let ptMap = match unsafe { &raw mut gTaskRegistry } {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let pcMap = match unsafe { &mut gComponentRegistry } {
[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] 70 |     let pcMap = match unsafe { &raw mut gComponentRegistry } {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:92:34
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let tEntries = match unsafe {&mut gTaskRegistry} {
[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] 92 |     let tEntries = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_sched.rs:96:28
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let tl = match unsafe {&gTaskList} {
[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] 96 |     let tl = match unsafe {&raw const gTaskList} {
[INFO] [stdout]    |                             +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:105:28
[INFO] [stdout]     |
[INFO] [stdout] 105 |             ts.push((t,task.clone()));
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `task_t` does not implement `Clone`, so calling `clone` on `&task_t` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 105 -             ts.push((t,task.clone()));
[INFO] [stdout] 105 +             ts.push((t,task));
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `task_t`, implement `Clone` for it
[INFO] [stdout]    --> src/rsm/task.rs:24:1
[INFO] [stdout]     |
[INFO] [stdout]  24 + #[derive(Clone)]
[INFO] [stdout]  25 | pub(crate) struct task_t{
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:125:31
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let gTask = match unsafe {&mut gTaskRegistry} {
[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] 125 |     let gTask = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 |     if let Some(tm) = unsafe { & mut gTaskIdMap} {
[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] 138 |     if let Some(tm) = unsafe { &raw mut gTaskIdMap} {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:149:31
[INFO] [stdout]     |
[INFO] [stdout] 149 |     if let Some(tm) = unsafe {&mut gTaskIdMap} {
[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] 149 |     if let Some(tm) = unsafe {&raw mut gTaskIdMap} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:159:26
[INFO] [stdout]     |
[INFO] [stdout] 159 |   let tm = match unsafe {&mut gTaskRegistry} {
[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] 159 |   let tm = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:186:30
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let task = match unsafe {&mut gTaskRegistry} {
[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] 186 |     let task = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:199:30
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let task = match unsafe {&mut gTaskRegistry} {
[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] 199 |     let task = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |     let cm = match unsafe {& gComponentRegistry} {
[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] 211 |     let cm = match unsafe {&raw const gComponentRegistry} {
[INFO] [stdout]     |                             +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_sched.rs:221:30
[INFO] [stdout]     |
[INFO] [stdout] 221 |     let task = match unsafe {&mut gTaskRegistry} {
[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] 221 |     let task = match unsafe {&raw mut gTaskRegistry} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 |         if gTimerIdAlloc.is_some() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:66:24
[INFO] [stdout]    |
[INFO] [stdout] 66 |         return unsafe {(&mut gTimer10ms).as_mut()}
[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] 66 |         return unsafe {(&raw mut gTimer10ms).as_mut()}
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 |         return unsafe {(&mut gTimer100ms).as_mut()}
[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] 68 |         return unsafe {(&raw mut gTimer100ms).as_mut()}
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:70:20
[INFO] [stdout]    |
[INFO] [stdout] 70 |     return unsafe {(&mut gTimer1s).as_mut()}
[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] 70 |     return unsafe {(&raw mut gTimer1s).as_mut()}
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:75:41
[INFO] [stdout]    |
[INFO] [stdout] 75 |         TIMER_CAT_10MS=> return unsafe {(&mut gTimer10ms).as_mut()},
[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] 75 |         TIMER_CAT_10MS=> return unsafe {(&raw mut gTimer10ms).as_mut()},
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:76:42
[INFO] [stdout]    |
[INFO] [stdout] 76 |         TIMER_CAT_100MS=> return unsafe {(&mut gTimer100ms).as_mut()},
[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] 76 |         TIMER_CAT_100MS=> return unsafe {(&raw mut gTimer100ms).as_mut()},
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/rsm_timer.rs:77:39
[INFO] [stdout]    |
[INFO] [stdout] 77 |         TIMER_CAT_1S=> return unsafe {(&mut gTimer1s).as_mut()},
[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 |         TIMER_CAT_1S=> return unsafe {(&raw mut gTimer1s).as_mut()},
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:103:30
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let ida = match unsafe { &mut gTimerIdAlloc} {
[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] 103 |     let ida = match unsafe { &raw mut gTimerIdAlloc} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:162:20
[INFO] [stdout]     |
[INFO] [stdout] 162 |     match unsafe { &mut gTimerIdAlloc} {
[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] 162 |     match unsafe { &raw mut gTimerIdAlloc} {
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:244:31
[INFO] [stdout]     |
[INFO] [stdout] 244 |     let tMap = match unsafe { &mut gTimer10ms} {
[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] 244 |     let tMap = match unsafe { &raw mut gTimer10ms} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:252:31
[INFO] [stdout]     |
[INFO] [stdout] 252 |     let tMap = match unsafe { &mut gTimer100ms} {
[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] 252 |     let tMap = match unsafe { &raw mut gTimer100ms} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:260:31
[INFO] [stdout]     |
[INFO] [stdout] 260 |     let tMap = match unsafe { &mut gTimer1s} {
[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] 260 |     let tMap = match unsafe { &raw mut gTimer1s} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:291:30
[INFO] [stdout]     |
[INFO] [stdout] 291 |         stats.total =  match &gTimerIdAlloc {
[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] 291 |         stats.total =  match &raw const gTimerIdAlloc {
[INFO] [stdout]     |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:296:40
[INFO] [stdout]     |
[INFO] [stdout] 296 |         stats.timer_count_10ms = match &gTimer10ms {
[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] 296 |         stats.timer_count_10ms = match &raw const gTimer10ms {
[INFO] [stdout]     |                                         +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:301:41
[INFO] [stdout]     |
[INFO] [stdout] 301 |         stats.timer_count_100ms = match &gTimer100ms {
[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] 301 |         stats.timer_count_100ms = match &raw const gTimer100ms {
[INFO] [stdout]     |                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/rsm_timer.rs:305:38
[INFO] [stdout]     |
[INFO] [stdout] 305 |         stats.timer_count_1s = match &gTimer1s {
[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] 305 |         stats.timer_count_1s = match &raw const gTimer1s {
[INFO] [stdout]     |                                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/os_timer.rs:74:34
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let tid = match unsafe { &mut gOsTimerAlloc} {
[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] 74 |         let tid = match unsafe { &raw mut gOsTimerAlloc} {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/os_timer.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |         if gOsTimerAlloc.is_none() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/os_timer.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 |         if gOsTimerMap.is_none() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/os_timer.rs:129:28
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let tm = match unsafe {&mut gOsTimerMap} {
[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] 129 |     let tm = match unsafe {&raw mut gOsTimerMap} {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/os_timer.rs:136:28
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let tm = match unsafe {&mut gOsTimerMap} {
[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] 136 |     let tm = match unsafe {&raw mut gOsTimerMap} {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:284:30
[INFO] [stdout]     |
[INFO] [stdout] 284 |     let pool = match unsafe {&mut gSocketPool} {
[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] 284 |     let pool = match unsafe {&raw mut gSocketPool} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:293:30
[INFO] [stdout]     |
[INFO] [stdout] 293 |     let pool = match unsafe {&mut gSocketPool} {
[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] 293 |     let pool = match unsafe {&raw mut gSocketPool} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:302:30
[INFO] [stdout]     |
[INFO] [stdout] 302 |     let pool = match unsafe {&mut gSocketPool} {
[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] 302 |     let pool = match unsafe {&raw mut gSocketPool} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:331:30
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let pool = match unsafe {&mut gSocketPool} {
[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] 331 |     let pool = match unsafe {&raw mut gSocketPool} {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:343:36
[INFO] [stdout]     |
[INFO] [stdout] 343 |     let pool_inst = match unsafe { &mut gSocketPool} {
[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] 343 |     let pool_inst = match unsafe { &raw mut gSocketPool} {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/socket/socketpool.rs:428:29
[INFO] [stdout]     |
[INFO] [stdout] 428 |     let pool = match unsafe{&mut gSocketPool} {
[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] 428 |     let pool = match unsafe{&raw mut gSocketPool} {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rsm/xlog/mod.rs:178:2
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fp2.write(&vec_buf_out.as_slice()[0..comp_len]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let _ = fp2.write(&vec_buf_out.as_slice()[0..comp_len]);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rsm/xlog/mod.rs:179:2
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fp2.flush();
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 179 |     let _ = fp2.flush();
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:413:8
[INFO] [stdout]     |
[INFO] [stdout] 413 |     if gLogServer.is_none() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:417:28
[INFO] [stdout]     |
[INFO] [stdout] 417 |     let service=match unsafe {&mut gLogServer} {
[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] 417 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:436:28
[INFO] [stdout]     |
[INFO] [stdout] 436 |     let service=match unsafe {&mut gLogServer} {
[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] 436 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:451:28
[INFO] [stdout]     |
[INFO] [stdout] 451 |     let service=match unsafe {&mut gLogServer} {
[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] 451 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:463:28
[INFO] [stdout]     |
[INFO] [stdout] 463 |     let service=match unsafe {&mut gLogServer} {
[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] 463 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:474:28
[INFO] [stdout]     |
[INFO] [stdout] 474 |     let service=match unsafe {&mut gLogServer} {
[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] 474 |     let service=match unsafe {&raw mut gLogServer} {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/xlog/xlog_server.rs:504:30
[INFO] [stdout]     |
[INFO] [stdout] 504 |     let log_serv = match unsafe{&mut gLogServer} {
[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] 504 |     let log_serv = match unsafe{&raw mut gLogServer} {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/oam/mod.rs:67:29
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let map = match unsafe {&mut gMapOpStr2Int} {
[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] 67 |     let map = match unsafe {&raw mut gMapOpStr2Int} {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/rsm/oam/oam_main.rs:62:29
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let inst =match unsafe {&mut gOamInst} {
[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] 62 |     let inst =match unsafe {&raw mut gOamInst} {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/rsm/oam/oam_main.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 |         if gOamInst.is_some() {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/oam/oam_main.rs:197:29
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let inst =match unsafe {&mut gOamInst} {
[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] 197 |     let inst =match unsafe {&raw mut gOamInst} {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/oam/oam_main.rs:208:29
[INFO] [stdout]     |
[INFO] [stdout] 208 |     let inst =match unsafe {&mut gOamInst} {
[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] 208 |     let inst =match unsafe {&raw mut gOamInst} {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/rsm/oam/oam_main.rs:255:29
[INFO] [stdout]     |
[INFO] [stdout] 255 |     let inst =match unsafe {&mut gOamInst} {
[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] 255 |     let inst =match unsafe {&raw mut gOamInst} {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/net_ext/pktbuf.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |         return & (*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize]
[INFO] [stdout]    |                  ^^-------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    this raw pointer has type `*const [u8; 2048]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u8; 2048]`
[INFO] [stdout]   --> src/net_ext/pktbuf.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |         return & (*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize]
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 48 |         return & (&(*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize])))[0..self.buf_len as usize]
[INFO] [stdout]    |                  ++                                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/net_ext/pktbuf.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |         return &mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize]
[INFO] [stdout]    |                     ^^-----------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this raw pointer has type `*mut [u8; 2048]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [u8; 2048]`
[INFO] [stdout]   --> src/net_ext/pktbuf.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |         return &mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize]
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 53 |         return &mut (&mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize])))[0..self.buf_len as usize]
[INFO] [stdout]    |                     +++++                                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/net_ext/pktbuf.rs:214:29
[INFO] [stdout]     |
[INFO] [stdout] 214 |             match  unsafe { &mut GlobalRecvPktBufs } {
[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] 214 |             match  unsafe { &raw mut GlobalRecvPktBufs } {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/net_ext/pktbuf.rs:220:28
[INFO] [stdout]     |
[INFO] [stdout] 220 |             match unsafe { &mut GlobalSendPktBufs } {
[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] 220 |             match unsafe { &raw mut GlobalSendPktBufs } {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/net_ext/fec.rs:300:14
[INFO] [stdout]     |
[INFO] [stdout] 300 | ...  &(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as usize]
[INFO] [stdout]     |       ^^--------------------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         this raw pointer has type `*const [u8; 2080]`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u8; 2080]`
[INFO] [stdout]    --> src/net_ext/fec.rs:300:14
[INFO] [stdout]     |
[INFO] [stdout] 300 | ...   &(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as u...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 300 |             &(&(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE])))[0..FEC_HDR_SIZE+self.real_len as usize]
[INFO] [stdout]     |              ++                                                                                               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/net_ext/fec.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 | ...ut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as usize]
[INFO] [stdout]     |       ^^------------------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         this raw pointer has type `*mut [u8; 2080]`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [u8; 2080]`
[INFO] [stdout]    --> src/net_ext/fec.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 | ...   &mut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 306 |             &mut (&mut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE])))[0..FEC_HDR_SIZE+self.real_len as usize]
[INFO] [stdout]     |                  +++++                                                                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note:  "cc" "-m64" "/tmp/rustcFKJUhL/symbols.o" "<17 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "-los_linux" "/opt/rustwide/target/debug/deps/{librust_rsm-ca65256bd52e83a3,libsm4-36920c84893bde1f,libaes-50ce9722d5b416f8,libcipher-533d3f00afab8026,libinout-254281b7b05d0b11,libsha2-ea19e3541aaebddd,libcpufeatures-1bd1d092ae934e35,libdigest-e9e35dc8794b7e66,libblock_buffer-ce608e251860cbf0,libcrypto_common-65928b02cc958931,libgeneric_array-24bd9c6aa5778054,libtypenum-e687c57861f136aa,libmio-809422376d52e10b,libtiny_http-f5d37485879996ab,liblog-10bbd6aefc8503bc,libchunked_transfer-e43f17d3a87dd040,libascii-e9c317c1f0f65d1a,liblibdeflater-7e39ecdfd5cac3de,liblibdeflate_sys-b3884c757f7327ce,libserde_json-611e1799ad4fe3fc,libryu-76589f493e0a3e41,librand-26c10126aa6876d2,librand_chacha-7b65f00ef8935573,libppv_lite86-fcee3568ba30efe3,librand_core-50327ef480cc76a8,libgetrandom-2c8aa1fb139e3efe,libcfg_if-237344836e3f8b86,libtime-aee5255c703e18f1,libnum_threads-8a74650491b8b5d0,liblibc-5b98b38d7c64ed76,libitoa-b906bf9a365e62d7,libserde-5a61c7f981266cd3}.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/rustcFKJUhL/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" "/opt/rustwide/target/debug/build/rust-rsm-f400a6872f61fe1e/out" "-L" "/opt/rustwide/target/debug/build/libdeflate-sys-2a86e0a983fe1102/out/lib" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/rust_rsm-bae9afb879b207c4" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs"
[INFO] [stdout]   = note: some arguments are omitted. use `--verbose` to show all linker arguments
[INFO] [stdout]   = note: rust-lld: error: duplicate symbol: os_timer_callback
[INFO] [stdout]           >>> defined at os_timer.rs:44 (src/rsm/os_timer.rs:44)
[INFO] [stdout]           >>>            /opt/rustwide/target/debug/deps/rust_rsm-bae9afb879b207c4.rust_rsm.c791dc75f2de4126-cgu.15.rcgu.o:(os_timer_callback)
[INFO] [stdout]           >>> defined at os_timer.rs:44 (src/rsm/os_timer.rs:44)
[INFO] [stdout]           >>>            rust_rsm-ca65256bd52e83a3.rust_rsm.290c807337e3bc38-cgu.12.rcgu.o:(.text.os_timer_callback+0x0) in archive /opt/rustwide/target/debug/deps/librust_rsm-ca65256bd52e83a3.rlib
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: rust-rsm@0.3.2: src/net_ext/os_linux.c: In function 'c_create_timer':
[INFO] [stderr] warning: rust-rsm@0.3.2: src/net_ext/os_linux.c:175:31: warning: assignment to 'void (*)(__sigval_t)' {aka 'void (*)(union sigval)'} from incompatible pointer type 'timer_callback' {aka 'int (*)(sigval_t)'} [-Wincompatible-pointer-types]
[INFO] [stderr] warning: rust-rsm@0.3.2:   175 |     sev.sigev_notify_function = call_back;
[INFO] [stderr] warning: rust-rsm@0.3.2:       |                               ^
[INFO] [stderr] error: could not compile `rust-rsm` (bin "rust-rsm") due to 1 previous error; 98 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "95ebb7f1041a8b202409f46a9b07e8b21d2ff74bcc229ee620ee90c93a9ee0cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "95ebb7f1041a8b202409f46a9b07e8b21d2ff74bcc229ee620ee90c93a9ee0cf", kill_on_drop: false }`
[INFO] [stdout] 95ebb7f1041a8b202409f46a9b07e8b21d2ff74bcc229ee620ee90c93a9ee0cf
