`u64` by `u64` div/mod in DRM QR for arm32

Miguel Ojeda miguel.ojeda.sandonis at gmail.com
Mon Apr 14 11:14:04 PDT 2025


Hi Jocelyn, Christian,

I started build-testing arm 32-bit within my other usual routine
tests, and I hit:

    ld.lld: error: undefined symbol: __aeabi_uldivmod
    >>> referenced by drm_panic_qr.rs:417 (drivers/gpu/drm/drm_panic_qr.rs:417)
    >>> drivers/gpu/drm/drm_panic_qr.o:(<drm_panic_qr::SegmentIterator
as core::iter::traits::iterator::Iterator>::next) in archive vmlinux.a

which comes from both these `u64` by `u64`:

    let out = (self.carry / pow) as u16;
    self.carry = self.carry % pow;

Christian: I guess we can offer a set of `div64` functions using the C
ones, at least for the time being, and eventually wire the actual
operator with some support from upstream Rust. Or do you have
something else in mind? (i.e. I think you have been discussing
intrinsics lately)

Thanks!

Cheers,
Miguel



More information about the linux-arm-kernel mailing list