On 31.01.25 5:05 PM, Andrew Lunn wrote: >> To fix this Rust would have to provide a way to build the core >> library without float support. I don't know if there is a plan >> already to allow this. > > Floating point is banned within the kernel, except for in very narrow > conditions, because the floating point registers are lazy saved on > context switch. If the kernel uses the floating point registers, you > can break user space in bad ways. > > I expect this has been discussed, since it is well known kernel > restriction. Maybe go see what happened to that discussion within RfL? After checking again, it seems the float intrinsics are actually not needed anymore at least for my config. Only `__aeabi_uldivmod` is still required for `parse_u64_into` since [0] allows disabling float formatting. Link error without the `__aeabi_uldivmod` symbol defined: ld.lld: error: undefined symbol: __aeabi_uldivmod >>> referenced by num.rs:580 (/home/chrisi/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/num.rs:580) >>> rust/core.o:(core::fmt::num::parse_u64_into::<39>) in archive vmlinux.a >>> referenced by num.rs:589 (/home/chrisi/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/num.rs:589) >>> rust/core.o:(core::fmt::num::parse_u64_into::<39>) in archive vmlinux.a >>> referenced by num.rs:589 (/home/chrisi/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/num.rs:589) >>> rust/core.o:(core::fmt::num::parse_u64_into::<39>) in archive vmlinux.a >>> referenced 34 more times >>> did you mean: __aeabi_uidivmod >>> defined in: vmlinux.a(arch/arm/lib/lib1funcs.o) Not sure if we should just implement `__aeabi_uldivmod`, keep the panicking intrinsic for it or somehow fix it in upstream Rust? Miguel do you know how this is best handled? Link: https://github.com/rust-lang/rust/pull/86048 [0] Cheers Christian