Skip to content

The std build failed for thumbv7em-nuttx-eabihf target. #156790

@823984418

Description

@823984418

I tried this code in thumbv7em-nuttx-eabihf target.

#[unsafe(no_mangle)]
pub extern "C" fn main() {
    println!("Hello, world!");
}
cargo build --target thumbv7em-nuttx-eabihf -Zbuild-std=std
error[E0425]: cannot find value `SO_KEEPALIVE` in crate `libc`                                                                                                                                                                                     
   --> C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\net\connection\socket\unix.rs:460:59
    |
460 |         unsafe { setsockopt(self, libc::SOL_SOCKET, libc::SO_KEEPALIVE, keepalive as c_int) }
    |                                                           ^^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `SO_KEEPALIVE` in crate `libc`                                                                                                                                                                                     
   --> C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\net\connection\socket\unix.rs:464:76
    |
464 |         let raw: c_int = unsafe { getsockopt(self, libc::SOL_SOCKET, libc::SO_KEEPALIVE)? };
    |                                                                            ^^^^^^^^^^^^ not found in `libc`

For more information about this error, try `rustc --explain E0425`.                                                                                                                                                                                
error: could not compile `std` (lib) due to 2 previous errors     

It is unclear whether other *-nuttx-* targets are affected.

Meta

rustc --version --verbose:

PS C:\Users\zqdq_\Documents\code\mcu_os_std> rustc --version --verbose
rustc 1.97.0-nightly (e50aa6fba 2026-05-19)
binary: rustc
commit-hash: e50aa6fba4e63ab34c72bf9acfd2c307c1155d1a
commit-date: 2026-05-19
host: x86_64-pc-windows-msvc
release: 1.97.0-nightly
Backtrace

PS C:\Users\zqdq_\Documents\code\mcu_os_std> cargo build --target thumbv7em-nuttx-eabihf -Zbuild-std=std
   Compiling compiler_builtins v0.1.160 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\compiler-builtins\compiler-builtins)
   Compiling core v0.0.0 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core)
   Compiling libc v0.2.185
   Compiling object v0.37.3
   Compiling std v0.0.0 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std)
   Compiling rustc-std-workspace-core v1.99.0 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)                                                                             
   Compiling alloc v0.0.0 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc)
   Compiling memchr v2.7.6                                                                                                                                                                                                                         
   Compiling adler2 v2.0.1
   Compiling cfg-if v1.0.4
   Compiling panic_abort v0.0.0 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_abort)
   Compiling rustc-demangle v0.1.27
   Compiling rustc-literal-escaper v0.0.7
   Compiling unwind v0.0.0 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\unwind)                                                                                                                  
   Compiling rustc-std-workspace-alloc v1.99.0 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-alloc)                                                                           
   Compiling panic_unwind v0.0.0 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_unwind)
   Compiling gimli v0.32.3                                                                                                                                                                                                                         
   Compiling hashbrown v0.17.1
   Compiling std_detect v0.1.5 (C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std_detect)
   Compiling miniz_oxide v0.8.9
   Compiling addr2line v0.25.1                                                                                                                                                                                                                     
error[E0425]: cannot find value `SO_KEEPALIVE` in crate `libc`                                                                                                                                                                                     
   --> C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\net\connection\socket\unix.rs:460:59
    |
460 |         unsafe { setsockopt(self, libc::SOL_SOCKET, libc::SO_KEEPALIVE, keepalive as c_int) }
    |                                                           ^^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `SO_KEEPALIVE` in crate `libc`                                                                                                                                                                                     
   --> C:\Users\zqdq_\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\net\connection\socket\unix.rs:464:76
    |
464 |         let raw: c_int = unsafe { getsockopt(self, libc::SOL_SOCKET, libc::SO_KEEPALIVE)? };
    |                                                                            ^^^^^^^^^^^^ not found in `libc`

For more information about this error, try `rustc --explain E0425`.                                                                                                                                                                                
error: could not compile `std` (lib) due to 2 previous errors   

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions