[INFO] cloning repository https://github.com/bltavares/openwrt-exporter [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bltavares/openwrt-exporter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbltavares%2Fopenwrt-exporter", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbltavares%2Fopenwrt-exporter'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4c73868db234ea2ac334761112c561d154342700 [INFO] checking bltavares/openwrt-exporter/4c73868db234ea2ac334761112c561d154342700 against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbltavares%2Fopenwrt-exporter" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/bltavares/openwrt-exporter on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/bltavares/openwrt-exporter [INFO] finished tweaking git repo https://github.com/bltavares/openwrt-exporter [INFO] tweaked toml for git repo https://github.com/bltavares/openwrt-exporter written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/bltavares/openwrt-exporter 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" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/bltavares/ubus-rs` [INFO] [stderr] Updating git submodule `https://github.com/json-c/json-c.git` [INFO] [stderr] Updating git submodule `https://git.openwrt.org/project/libubox.git` [INFO] [stderr] Updating git submodule `https://git.openwrt.org/project/ubus.git` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ascii v1.0.0 [INFO] [stderr] Downloaded chunked_transfer v1.3.0 [INFO] [stderr] Downloaded cmake v0.1.45 [INFO] [stderr] Downloaded tiny_http v0.7.0 [INFO] [stderr] Downloaded serde_derive v1.0.118 [INFO] [stderr] Downloaded serde v1.0.118 [INFO] [stderr] Downloaded syn v1.0.54 [INFO] [stderr] Downloaded libc v0.2.81 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3a34b0c7e6fe0bb0d7b2f397c276ddc04e645a9c28f93dda64a84d2468338bd0 [INFO] running `Command { std: "docker" "start" "-a" "3a34b0c7e6fe0bb0d7b2f397c276ddc04e645a9c28f93dda64a84d2468338bd0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3a34b0c7e6fe0bb0d7b2f397c276ddc04e645a9c28f93dda64a84d2468338bd0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3a34b0c7e6fe0bb0d7b2f397c276ddc04e645a9c28f93dda64a84d2468338bd0", kill_on_drop: false }` [INFO] [stdout] 3a34b0c7e6fe0bb0d7b2f397c276ddc04e645a9c28f93dda64a84d2468338bd0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9376b917ccd8866f017dd9c41603bb32ae92023371f8878187f28583a5bc7ce1 [INFO] running `Command { std: "docker" "start" "-a" "9376b917ccd8866f017dd9c41603bb32ae92023371f8878187f28583a5bc7ce1", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.81 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling cc v1.0.66 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling glob v0.3.0 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling unicode-width v0.1.8 [INFO] [stderr] Compiling regex-syntax v0.6.21 [INFO] [stderr] Compiling thread_local v1.0.1 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling bindgen v0.53.3 [INFO] [stderr] Compiling ansi_term v0.11.0 [INFO] [stderr] Compiling humantime v1.3.0 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling vec_map v0.8.2 [INFO] [stderr] Compiling termcolor v1.1.2 [INFO] [stderr] Compiling strsim v0.8.0 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling shlex v0.1.1 [INFO] [stderr] Compiling syn v1.0.54 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling nom v5.1.2 [INFO] [stderr] Checking matches v0.1.8 [INFO] [stderr] Compiling serde_derive v1.0.118 [INFO] [stderr] Checking tinyvec v1.1.0 [INFO] [stderr] Compiling serde v1.0.118 [INFO] [stderr] Checking unicode-bidi v0.3.4 [INFO] [stderr] Compiling serde_json v1.0.60 [INFO] [stderr] Compiling clang-sys v0.29.3 [INFO] [stderr] Compiling aho-corasick v0.7.15 [INFO] [stderr] Compiling cmake v0.1.45 [INFO] [stderr] Checking form_urlencoded v1.0.0 [INFO] [stderr] Checking itoa v0.4.6 [INFO] [stderr] Checking ascii v1.0.0 [INFO] [stderr] Checking chunked_transfer v1.3.0 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling which v3.1.1 [INFO] [stderr] Compiling clap v2.33.3 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking unicode-normalization v0.1.16 [INFO] [stderr] Checking idna v0.2.0 [INFO] [stderr] Compiling regex v1.4.2 [INFO] [stderr] Compiling cexpr v0.4.0 [INFO] [stderr] Checking url v2.2.0 [INFO] [stderr] Checking tiny_http v0.7.0 [INFO] [stderr] Compiling env_logger v0.7.1 [INFO] [stderr] Compiling ubus-sys v0.1.0 (https://github.com/bltavares/ubus-rs#e0bcca53) [INFO] [stdout] error[E0507]: cannot move out of `self.data` which is behind a shared reference [INFO] [stdout] --> /opt/rustwide/target/debug/build/ubus-sys-19b00794b9473894/out/bindings.rs:3:8655 [INFO] [stdout] | [INFO] [stdout] 3 | ...erive (Debug)] pub struct blob_attr { pub id_len : u32 , pub data : __IncompleteArrayField < :: std :: os :: raw :: c_char > , } # [te... [INFO] [stdout] | ----- in this derive macro expansion ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.data` has type `__IncompleteArrayField`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: if `__IncompleteArrayField` implemented `Clone`, you could clone the value [INFO] [stdout] --> /opt/rustwide/target/debug/build/ubus-sys-19b00794b9473894/out/bindings.rs:3:35 [INFO] [stdout] | [INFO] [stdout] 3 | ...)] pub struct __IncompleteArrayField < T > (:: std :: marker :: PhantomData < T > , [T ; 0]) ; impl < T > __IncompleteArrayField < T > { # [inline] pub const fn new () -> Self { __IncompleteArrayField (:: std :: marker :: PhantomData , []) } # [inline] pub fn as_ptr (& self) -> * const T { self as * const _ as * const T } # [inline] pub fn as_mut_ptr (& mut self) -> * mut T { self as * mut _ as * mut T } # [inline] pub unsafe fn as_slice (& self , len : usize) -> & [T] { :: std :: slice :: from_raw_parts (self . as_ptr () , len) } # [inline] pub unsafe fn as_mut_slice (& mut self , len : usize) -> & mut [T] { :: std :: slice :: from_raw_parts_mut (self . as_mut_ptr () , len) } } impl < T > :: std :: fmt :: Debug for __IncompleteArrayField < T > { fn fmt (& self , fmt : & mut :: std :: fmt :: Formatter < '_ >) -> :: std :: fmt :: Result { fmt . write_str ("__IncompleteArrayField") } } pub type size_t = :: std :: os :: raw :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct list_head { pub next : * mut list_head , pub prev : * mut list_head , } # [test] fn bindgen_test_layout_list_head () { assert_eq ! (:: std :: mem :: size_of :: < list_head > () , 8usize , concat ! ("Size of: " , stringify ! (list_head))) ; assert_eq ! (:: std :: mem :: align_of :: < list_head > () , 4usize , concat ! ("Alignment of " , stringify ! (list_head))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < list_head > ())) . next as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (list_head) , "::" , stringify ! (next))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < list_head > ())) . prev as * const _ as usize } , 4usize , concat ! ("Offset of field: " , stringify ! (list_head) , "::" , stringify ! (prev))) ; } # [doc = " This element is a member of a avl-tree. It must be contained in all"] # [doc = " larger structs that should be put into a tree."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct avl_node { # [doc = " Linked list node for supporting easy iteration and multiple"] # [doc = " elments with the same key."] # [doc = ""] # [doc = " this must be the first element of an avl_node to"] # [doc = " make casting for lists easier"] pub list : list_head , # [doc = " Pointer to parent node in tree, NULL if root node"] pub parent : * mut avl_node , # [doc = " Pointer to left child"] pub left : * mut avl_node , # [doc = " Pointer to right child"] pub right : * mut avl_node , # [doc = " pointer to key of node"] pub key : * const :: std :: os :: raw :: c_void , # [doc = " balance state of AVL tree (0,-1,+1)"] pub balance : :: std :: os :: raw :: c_schar , # [doc = " true if first of a series of nodes with same key"] pub leader : bool , } # [test] fn bindgen_test_layout_avl_node () { assert_eq ! (:: std :: mem :: size_of :: < avl_node > () , 28usize , concat ! ("Size of: " , stringify ! (avl_node))) ; assert_eq ! (:: std :: mem :: align_of :: < avl_node > () , 4usize , concat ! ("Alignment of " , stringify ! (avl_node))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . list as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (list))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . parent as * const _ as usize } , 8usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (parent))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . left as * const _ as usize } , 12usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (left))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . right as * const _ as usize } , 16usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (right))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . key as * const _ as usize } , 20usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (key))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . balance as * const _ as usize } , 24usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (balance))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . leader as * const _ as usize } , 25usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (leader))) ; } # [doc = " Prototype for avl comparators"] # [doc = " @param k1 first key"] # [doc = " @param k2 second key"] # [doc = " @param ptr custom data for tree comparator"] # [doc = " @return +1 if k1>k2, -1 if k1 :: std :: os :: raw :: c_int > ; # [doc = " This struct is the central management part of an avl tree."] # [doc = " One of them is necessary for each avl_tree."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct avl_tree { # [doc = " Head of linked list node for supporting easy iteration"] # [doc = " and multiple elments with the same key."] pub list_head : list_head , # [doc = " pointer to the root node of the avl tree, NULL if tree is empty"] pub root : * mut avl_node , # [doc = " number of nodes in the avl tree"] pub count : :: std :: os :: raw :: c_uint , # [doc = " true if multiple nodes with the same key are"] # [doc = " allowed in the tree, false otherwise"] pub allow_dups : bool , # [doc = " pointer to the tree comparator"] # [doc = ""] # [doc = " First two parameters are keys to compare,"] # [doc = " third parameter is a copy of cmp_ptr"] pub comp : avl_tree_comp , # [doc = " custom pointer delivered to the tree comparator"] pub cmp_ptr : * mut :: std :: os :: raw :: c_void , } # [test] fn bindgen_test_layout_avl_tree () { assert_eq ! (:: std :: mem :: size_of :: < avl_tree > () , 28usize , concat ! ("Size of: " , stringify ! (avl_tree))) ; assert_eq ! (:: std :: mem :: align_of :: < avl_tree > () , 4usize , concat ! ("Alignment of " , stringify ! (avl_tree))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . list_head as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (list_head))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . root as * const _ as usize } , 8usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (root))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . count as * const _ as usize } , 12usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (count))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . allow_dups as * const _ as usize } , 16usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (allow_dups))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . comp as * const _ as usize } , 20usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (comp))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . cmp_ptr as * const _ as usize } , 24usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (cmp_ptr))) ; } pub type va_list = __builtin_va_list ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __time_t = :: std :: os :: raw :: c_long ; pub type __suseconds_t = :: std :: os :: raw :: c_long ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timeval { pub tv_sec : __time_t , pub tv_usec : __suseconds_t , } # [test] fn bindgen_test_layout_timeval () { assert_eq ! (:: std :: mem :: size_of :: < timeval > () , 8usize , concat ! ("Size of: " , stringify ! (timeval))) ; assert_eq ! (:: std :: mem :: align_of :: < timeval > () , 4usize , concat ! ("Alignment of " , stringify ! (timeval))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < timeval > ())) . tv_sec as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (timeval) , "::" , stringify ! (tv_sec))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < timeval > ())) . tv_usec as * const _ as usize } , 4usize , concat ! ("Offset of field: " , stringify ! (timeval) , "::" , stringify ! (tv_usec))) ; } # [repr (C , packed)] # [derive (Debug)] pub struct blob_attr { pub id_len : u32 , pub data : __IncompleteArrayField < :: std :: os :: raw :: c_char > , ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ consider implementing `Clone` for this type ------------------------------------------------------------------- you could clone this value [INFO] [stdout] = note: `#[derive(Debug)]` triggers a move because taking references to the fields of a packed struct is undefined behaviour [INFO] [stdout] = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.name` which is behind a shared reference [INFO] [stdout] --> /opt/rustwide/target/debug/build/ubus-sys-19b00794b9473894/out/bindings.rs:3:15248 [INFO] [stdout] | [INFO] [stdout] 3 | ...ked)] # [derive (Debug)] pub struct blobmsg_hdr { pub namelen : u16 , pub name : __IncompleteArrayField < u8 > , } # [test] fn bindgen... [INFO] [stdout] | ----- in this derive macro expansion ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.name` has type `__IncompleteArrayField`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: if `__IncompleteArrayField` implemented `Clone`, you could clone the value [INFO] [stdout] --> /opt/rustwide/target/debug/build/ubus-sys-19b00794b9473894/out/bindings.rs:3:35 [INFO] [stdout] | [INFO] [stdout] 3 | ...)] pub struct __IncompleteArrayField < T > (:: std :: marker :: PhantomData < T > , [T ; 0]) ; impl < T > __IncompleteArrayField < T > { # [inline] pub const fn new () -> Self { __IncompleteArrayField (:: std :: marker :: PhantomData , []) } # [inline] pub fn as_ptr (& self) -> * const T { self as * const _ as * const T } # [inline] pub fn as_mut_ptr (& mut self) -> * mut T { self as * mut _ as * mut T } # [inline] pub unsafe fn as_slice (& self , len : usize) -> & [T] { :: std :: slice :: from_raw_parts (self . as_ptr () , len) } # [inline] pub unsafe fn as_mut_slice (& mut self , len : usize) -> & mut [T] { :: std :: slice :: from_raw_parts_mut (self . as_mut_ptr () , len) } } impl < T > :: std :: fmt :: Debug for __IncompleteArrayField < T > { fn fmt (& self , fmt : & mut :: std :: fmt :: Formatter < '_ >) -> :: std :: fmt :: Result { fmt . write_str ("__IncompleteArrayField") } } pub type size_t = :: std :: os :: raw :: c_uint ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct list_head { pub next : * mut list_head , pub prev : * mut list_head , } # [test] fn bindgen_test_layout_list_head () { assert_eq ! (:: std :: mem :: size_of :: < list_head > () , 8usize , concat ! ("Size of: " , stringify ! (list_head))) ; assert_eq ! (:: std :: mem :: align_of :: < list_head > () , 4usize , concat ! ("Alignment of " , stringify ! (list_head))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < list_head > ())) . next as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (list_head) , "::" , stringify ! (next))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < list_head > ())) . prev as * const _ as usize } , 4usize , concat ! ("Offset of field: " , stringify ! (list_head) , "::" , stringify ! (prev))) ; } # [doc = " This element is a member of a avl-tree. It must be contained in all"] # [doc = " larger structs that should be put into a tree."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct avl_node { # [doc = " Linked list node for supporting easy iteration and multiple"] # [doc = " elments with the same key."] # [doc = ""] # [doc = " this must be the first element of an avl_node to"] # [doc = " make casting for lists easier"] pub list : list_head , # [doc = " Pointer to parent node in tree, NULL if root node"] pub parent : * mut avl_node , # [doc = " Pointer to left child"] pub left : * mut avl_node , # [doc = " Pointer to right child"] pub right : * mut avl_node , # [doc = " pointer to key of node"] pub key : * const :: std :: os :: raw :: c_void , # [doc = " balance state of AVL tree (0,-1,+1)"] pub balance : :: std :: os :: raw :: c_schar , # [doc = " true if first of a series of nodes with same key"] pub leader : bool , } # [test] fn bindgen_test_layout_avl_node () { assert_eq ! (:: std :: mem :: size_of :: < avl_node > () , 28usize , concat ! ("Size of: " , stringify ! (avl_node))) ; assert_eq ! (:: std :: mem :: align_of :: < avl_node > () , 4usize , concat ! ("Alignment of " , stringify ! (avl_node))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . list as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (list))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . parent as * const _ as usize } , 8usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (parent))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . left as * const _ as usize } , 12usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (left))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . right as * const _ as usize } , 16usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (right))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . key as * const _ as usize } , 20usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (key))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . balance as * const _ as usize } , 24usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (balance))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_node > ())) . leader as * const _ as usize } , 25usize , concat ! ("Offset of field: " , stringify ! (avl_node) , "::" , stringify ! (leader))) ; } # [doc = " Prototype for avl comparators"] # [doc = " @param k1 first key"] # [doc = " @param k2 second key"] # [doc = " @param ptr custom data for tree comparator"] # [doc = " @return +1 if k1>k2, -1 if k1 :: std :: os :: raw :: c_int > ; # [doc = " This struct is the central management part of an avl tree."] # [doc = " One of them is necessary for each avl_tree."] # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct avl_tree { # [doc = " Head of linked list node for supporting easy iteration"] # [doc = " and multiple elments with the same key."] pub list_head : list_head , # [doc = " pointer to the root node of the avl tree, NULL if tree is empty"] pub root : * mut avl_node , # [doc = " number of nodes in the avl tree"] pub count : :: std :: os :: raw :: c_uint , # [doc = " true if multiple nodes with the same key are"] # [doc = " allowed in the tree, false otherwise"] pub allow_dups : bool , # [doc = " pointer to the tree comparator"] # [doc = ""] # [doc = " First two parameters are keys to compare,"] # [doc = " third parameter is a copy of cmp_ptr"] pub comp : avl_tree_comp , # [doc = " custom pointer delivered to the tree comparator"] pub cmp_ptr : * mut :: std :: os :: raw :: c_void , } # [test] fn bindgen_test_layout_avl_tree () { assert_eq ! (:: std :: mem :: size_of :: < avl_tree > () , 28usize , concat ! ("Size of: " , stringify ! (avl_tree))) ; assert_eq ! (:: std :: mem :: align_of :: < avl_tree > () , 4usize , concat ! ("Alignment of " , stringify ! (avl_tree))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . list_head as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (list_head))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . root as * const _ as usize } , 8usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (root))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . count as * const _ as usize } , 12usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (count))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . allow_dups as * const _ as usize } , 16usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (allow_dups))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . comp as * const _ as usize } , 20usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (comp))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < avl_tree > ())) . cmp_ptr as * const _ as usize } , 24usize , concat ! ("Offset of field: " , stringify ! (avl_tree) , "::" , stringify ! (cmp_ptr))) ; } pub type va_list = __builtin_va_list ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __time_t = :: std :: os :: raw :: c_long ; pub type __suseconds_t = :: std :: os :: raw :: c_long ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct timeval { pub tv_sec : __time_t , pub tv_usec : __suseconds_t , } # [test] fn bindgen_test_layout_timeval () { assert_eq ! (:: std :: mem :: size_of :: < timeval > () , 8usize , concat ! ("Size of: " , stringify ! (timeval))) ; assert_eq ! (:: std :: mem :: align_of :: < timeval > () , 4usize , concat ! ("Alignment of " , stringify ! (timeval))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < timeval > ())) . tv_sec as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (timeval) , "::" , stringify ! (tv_sec))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < timeval > ())) . tv_usec as * const _ as usize } , 4usize , concat ! ("Offset of field: " , stringify ! (timeval) , "::" , stringify ! (tv_usec))) ; } # [repr (C , packed)] # [derive (Debug)] pub struct blob_attr { pub id_len : u32 , pub data : __IncompleteArrayField < :: std :: os :: raw :: c_char > , } # [test] fn bindgen_test_layout_blob_attr () { assert_eq ! (:: std :: mem :: size_of :: < blob_attr > () , 4usize , concat ! ("Size of: " , stringify ! (blob_attr))) ; assert_eq ! (:: std :: mem :: align_of :: < blob_attr > () , 1usize , concat ! ("Alignment of " , stringify ! (blob_attr))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_attr > ())) . id_len as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (blob_attr) , "::" , stringify ! (id_len))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_attr > ())) . data as * const _ as usize } , 4usize , concat ! ("Offset of field: " , stringify ! (blob_attr) , "::" , stringify ! (data))) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct blob_attr_info { pub type_ : :: std :: os :: raw :: c_uint , pub minlen : :: std :: os :: raw :: c_uint , pub maxlen : :: std :: os :: raw :: c_uint , pub validate : :: std :: option :: Option < unsafe extern "C" fn (arg1 : * const blob_attr_info , arg2 : * mut blob_attr) -> bool > , } # [test] fn bindgen_test_layout_blob_attr_info () { assert_eq ! (:: std :: mem :: size_of :: < blob_attr_info > () , 16usize , concat ! ("Size of: " , stringify ! (blob_attr_info))) ; assert_eq ! (:: std :: mem :: align_of :: < blob_attr_info > () , 4usize , concat ! ("Alignment of " , stringify ! (blob_attr_info))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_attr_info > ())) . type_ as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (blob_attr_info) , "::" , stringify ! (type_))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_attr_info > ())) . minlen as * const _ as usize } , 4usize , concat ! ("Offset of field: " , stringify ! (blob_attr_info) , "::" , stringify ! (minlen))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_attr_info > ())) . maxlen as * const _ as usize } , 8usize , concat ! ("Offset of field: " , stringify ! (blob_attr_info) , "::" , stringify ! (maxlen))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_attr_info > ())) . validate as * const _ as usize } , 12usize , concat ! ("Offset of field: " , stringify ! (blob_attr_info) , "::" , stringify ! (validate))) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct blob_buf { pub head : * mut blob_attr , pub grow : :: std :: option :: Option < unsafe extern "C" fn (buf : * mut blob_buf , minlen : :: std :: os :: raw :: c_int) -> bool > , pub buflen : :: std :: os :: raw :: c_int , pub buf : * mut :: std :: os :: raw :: c_void , } # [test] fn bindgen_test_layout_blob_buf () { assert_eq ! (:: std :: mem :: size_of :: < blob_buf > () , 16usize , concat ! ("Size of: " , stringify ! (blob_buf))) ; assert_eq ! (:: std :: mem :: align_of :: < blob_buf > () , 4usize , concat ! ("Alignment of " , stringify ! (blob_buf))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_buf > ())) . head as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (blob_buf) , "::" , stringify ! (head))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_buf > ())) . grow as * const _ as usize } , 4usize , concat ! ("Offset of field: " , stringify ! (blob_buf) , "::" , stringify ! (grow))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_buf > ())) . buflen as * const _ as usize } , 8usize , concat ! ("Offset of field: " , stringify ! (blob_buf) , "::" , stringify ! (buflen))) ; assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < blob_buf > ())) . buf as * const _ as usize } , 12usize , concat ! ("Offset of field: " , stringify ! (blob_buf) , "::" , stringify ! (buf))) ; } extern "C" { pub fn blob_fill_pad (attr : * mut blob_attr) ; } extern "C" { pub fn blob_set_raw_len (attr : * mut blob_attr , len : :: std :: os :: raw :: c_uint) ; } extern "C" { pub fn blob_attr_equal (a1 : * const blob_attr , a2 : * const blob_attr) -> bool ; } extern "C" { pub fn blob_buf_init (buf : * mut blob_buf , id : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn blob_buf_free (buf : * mut blob_buf) ; } extern "C" { pub fn blob_buf_grow (buf : * mut blob_buf , required : :: std :: os :: raw :: c_int) -> bool ; } extern "C" { pub fn blob_new (buf : * mut blob_buf , id : :: std :: os :: raw :: c_int , payload : :: std :: os :: raw :: c_int) -> * mut blob_attr ; } extern "C" { pub fn blob_nest_start (buf : * mut blob_buf , id : :: std :: os :: raw :: c_int) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn blob_nest_end (buf : * mut blob_buf , cookie : * mut :: std :: os :: raw :: c_void) ; } extern "C" { pub fn blob_put (buf : * mut blob_buf , id : :: std :: os :: raw :: c_int , ptr : * const :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_uint) -> * mut blob_attr ; } extern "C" { pub fn blob_check_type (ptr : * const :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_uint , type_ : :: std :: os :: raw :: c_int) -> bool ; } extern "C" { pub fn blob_parse (attr : * mut blob_attr , data : * mut * mut blob_attr , info : * const blob_attr_info , max : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn blob_parse_untrusted (attr : * mut blob_attr , attr_len : size_t , data : * mut * mut blob_attr , info : * const blob_attr_info , max : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn blob_memdup (attr : * mut blob_attr) -> * mut blob_attr ; } extern "C" { pub fn blob_put_raw (buf : * mut blob_buf , ptr : * const :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_uint) -> * mut blob_attr ; } pub const blobmsg_type_BLOBMSG_TYPE_UNSPEC : blobmsg_type = 0 ; pub const blobmsg_type_BLOBMSG_TYPE_ARRAY : blobmsg_type = 1 ; pub const blobmsg_type_BLOBMSG_TYPE_TABLE : blobmsg_type = 2 ; pub const blobmsg_type_BLOBMSG_TYPE_STRING : blobmsg_type = 3 ; pub const blobmsg_type_BLOBMSG_TYPE_INT64 : blobmsg_type = 4 ; pub const blobmsg_type_BLOBMSG_TYPE_INT32 : blobmsg_type = 5 ; pub const blobmsg_type_BLOBMSG_TYPE_INT16 : blobmsg_type = 6 ; pub const blobmsg_type_BLOBMSG_TYPE_INT8 : blobmsg_type = 7 ; pub const blobmsg_type_BLOBMSG_TYPE_DOUBLE : blobmsg_type = 8 ; pub const blobmsg_type___BLOBMSG_TYPE_LAST : blobmsg_type = 9 ; pub const blobmsg_type_BLOBMSG_TYPE_LAST : blobmsg_type = 8 ; pub const blobmsg_type_BLOBMSG_TYPE_BOOL : blobmsg_type = 7 ; pub type blobmsg_type = u32 ; # [repr (C , packed)] # [derive (Debug)] pub struct blobmsg_hdr { pub namelen : u16 , pub name : __IncompleteArrayField < u8 > , ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ consider implementing `Clone` for this type ---------------------------------------- you could clone this value [INFO] [stdout] = note: `#[derive(Debug)]` triggers a move because taking references to the fields of a packed struct is undefined behaviour [INFO] [stdout] = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0507`. [INFO] [stdout] [INFO] [stderr] The following warnings were emitted during compilation: [INFO] [stderr] [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus.c: In function 'ubus_cmp_id': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus.c:46:62: warning: unused parameter 'ptr' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 46 | static int ubus_cmp_id(const void *k1, const void *k2, void *ptr) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~~~^~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus.c: In function 'ubus_lookup_cb': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus.c:135:59: warning: unused parameter 'type' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 135 | static void ubus_lookup_cb(struct ubus_request *ureq, int type, struct blob_attr *msg) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~^~~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus.c: In function 'ubus_lookup_id_cb': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus.c:173:61: warning: unused parameter 'type' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 173 | static void ubus_lookup_id_cb(struct ubus_request *req, int type, struct blob_attr *msg) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~^~~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus.c: In function 'ubus_event_cb': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus.c:204:52: warning: unused parameter 'req' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 204 | struct ubus_request_data *req, [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-req.c: In function 'ubus_abort_request': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-req.c:80:46: warning: unused parameter 'ctx' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 80 | void ubus_abort_request(struct ubus_context *ctx, struct ubus_request *req) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~~~~~~~~~~~~~~~~~~^~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-req.c: In function 'ubus_notify_complete_cb': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-req.c:253:55: warning: unused parameter 'ret' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 253 | ubus_notify_complete_cb(struct ubus_request *req, int ret) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~^~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-io.c: In function 'ubus_handle_data': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-io.c:312:65: warning: unused parameter 'events' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 312 | void __hidden ubus_handle_data(struct uloop_fd *u, unsigned int events) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~~~~~~~~~~^~~~~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-obj.c: In function 'ubus_process_unsubscribe': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-obj.c:19:72: warning: unused parameter 'hdr' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 19 | ubus_process_unsubscribe(struct ubus_context *ctx, struct ubus_msghdr *hdr, [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~~~~~~~~~~~~~~~~~^~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-obj.c: In function 'ubus_process_notify': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-obj.c:39:67: warning: unused parameter 'hdr' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 39 | ubus_process_notify(struct ubus_context *ctx, struct ubus_msghdr *hdr, [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~~~~~~~~~~~~~~~~~^~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-obj.c: In function 'ubus_add_object_cb': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-obj.c:160:62: warning: unused parameter 'type' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 160 | static void ubus_add_object_cb(struct ubus_request *req, int type, struct blob_attr *msg) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~^~~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-obj.c: In function 'ubus_remove_object_cb': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/ubus/libubus-obj.c:240:65: warning: unused parameter 'type' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 240 | static void ubus_remove_object_cb(struct ubus_request *req, int type, struct blob_attr *msg) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~^~~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/libubox/avl.c: In function 'avl_delete_worker': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/libubox/avl.c:672:5: warning: implicit declaration of function 'assert' [-Wimplicit-function-declaration] [INFO] [stderr] warning: ubus-sys@0.1.0: 672 | assert(node->right); [INFO] [stderr] warning: ubus-sys@0.1.0: | ^~~~~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/libubox/avl.c:49:1: note: 'assert' is defined in header ''; did you forget to '#include '? [INFO] [stderr] warning: ubus-sys@0.1.0: 48 | #include "assert.h" [INFO] [stderr] warning: ubus-sys@0.1.0: +++ |+#include [INFO] [stderr] warning: ubus-sys@0.1.0: 49 | #include "list.h" [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/libubox/uloop.c: In function 'waker_consume': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/libubox/uloop.c:79:61: warning: unused parameter 'events' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 79 | static void waker_consume(struct uloop_fd *fd, unsigned int events) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~~~~~~~~~~^~~~~~ [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/libubox/uloop.c: In function 'uloop_sigchld': [INFO] [stderr] warning: ubus-sys@0.1.0: vendor/libubox/uloop.c:412:31: warning: unused parameter 'signo' [-Wunused-parameter] [INFO] [stderr] warning: ubus-sys@0.1.0: 412 | static void uloop_sigchld(int signo) [INFO] [stderr] warning: ubus-sys@0.1.0: | ~~~~^~~~~ [INFO] [stderr] [INFO] [stderr] error: could not compile `ubus-sys` (lib) due to 3 previous errors [INFO] running `Command { std: "docker" "inspect" "9376b917ccd8866f017dd9c41603bb32ae92023371f8878187f28583a5bc7ce1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9376b917ccd8866f017dd9c41603bb32ae92023371f8878187f28583a5bc7ce1", kill_on_drop: false }` [INFO] [stdout] 9376b917ccd8866f017dd9c41603bb32ae92023371f8878187f28583a5bc7ce1