On Sun, 26 Apr 2026 14:27:23 +0530 "Mukesh Kumar Chaurasiya (IBM)" <[email protected]> wrote:
> From: Link Mauve <[email protected]> > > The core crate currently depends on these two functions for i64/u64/ > i128/u128/core::time::Duration formatting, but we shouldn’t use that in > the kernel so let’s panic if they are ever called. > > This doesn’t yet fix drm_panic_qr.rs, which also uses __udivdi3 when > CONFIG_CC_OPTIMIZE_FOR_SIZE=y, but at least makes the rest of the kernel > build on PPC32. This needs resolving properly. > > Signed-off-by: Link Mauve <[email protected]> > Signed-off-by: Mukesh Kumar Chaurasiya (IBM) <[email protected]> > --- > rust/Makefile | 4 ++++ > rust/compiler_builtins.rs | 6 ++++++ > 2 files changed, 10 insertions(+) > > diff --git a/rust/Makefile b/rust/Makefile > index f6369d121c50..9aa18cff2fae 100644 > --- a/rust/Makefile > +++ b/rust/Makefile > @@ -615,6 +615,10 @@ ifneq ($(or $(CONFIG_ARM64),$(and > $(CONFIG_RISCV),$(CONFIG_64BIT))),) > __ashrti3 \ > __ashlti3 __lshrti3 > endif > +ifdef CONFIG_PPC32 > + redirect-intrinsics += \ > + __udivdi3 __umoddi3 > +endif > > ifdef CONFIG_MODVERSIONS > cmd_gendwarfksyms = $(if $(skip_gendwarfksyms),, \ > diff --git a/rust/compiler_builtins.rs b/rust/compiler_builtins.rs > index dd16c1dc899c..fc6b54636dd5 100644 > --- a/rust/compiler_builtins.rs > +++ b/rust/compiler_builtins.rs > @@ -97,5 +97,11 @@ pub extern "C" fn $ident() { > __aeabi_uldivmod, > }); > > +#[cfg(target_arch = "powerpc")] > +define_panicking_intrinsics!("`u64` division/modulo should not be used", { > + __udivdi3, > + __umoddi3, > +}); > + > // NOTE: if you are adding a new intrinsic here, you should also add it to > // `redirect-intrinsics` in `rust/Makefile`.
