Re: [PATCH 2/2] rust: time: Implement basic arithmetic operations for Delta
From: Alice Ryhl
Date: Thu Jul 31 2025 - 18:10:44 EST
On Thu, Jul 31, 2025 at 10:47 PM Lyude Paul <lyude@xxxxxxxxxx> wrote:
>
> On Tue, 2025-07-29 at 12:15 +0000, Alice Ryhl wrote:
> >
> >
> > The reason I bring up the example is that once you add code using these
> > impls, you're going to get kernel build bot errors from your code not
> > compiling on 32-bit. And as seen in the linked one, code may be compiled
> > for 32-bit when setting CONFIG_COMPILE_TEST even if you don't support it
> > for real.
> >
> > > This being said, the kernel does have a math library that we can call into
> > > that emulates operations like this on 32 bit - which I'd be willing to convert
> > > these implementations over to using. I just put the CONFIG_64BIT there because
> > > if we do use the kernel math library, I just want to make sure I don't end up
> > > being the oen who has to figure out how to hook up the kernel math library for
> > > 64 bit division outside of simple time value manipulation. I've got enough
> > > dependencies on my plate to get upstream as it is :P
> >
> > If you just want to call the relevant bindings:: method directly without
> > any further logic that seems fine to me.
>
> Gotcha, I will do that. Ideally I would at least like to have us only call the
> bindings:: method so long as we're on a config where we really need it. Which
> brings me to ask - do we actually have a way of checking BITS_PER_LONG in
> #[cfg()]? I would have assumed it'd be simple but I don't actually seem to be
> able to reference BITS_PER_LONG.
There is:
#[cfg(target_pointer_width = "32")]
or
#[cfg(target_pointer_width = "64")]
Alice