paul zimmermann <paul.zimmerm...@inria.fr> writes:

> would it be possible to move the following from mini-gmp.c to mini-gmp.h?
>
> #define GMP_LIMB_BITS (sizeof(mp_limb_t) * CHAR_BIT)
>
> It would expose GMP_LIMB_BITS to applications using mini-gmp, without 
> requiring
> them to redefine it.

The reason it's not already in mini-gmp.h, is that I'd expect
applications to want to do things like

#if GMP_LIMB_BITS == 64
...
#endif

Which works with the real GMP. But it does *not* work with the above
definition, since the preprocessor doesn't know how to evaluate sizeof.
And I'm not aware of any standard preprocessor constants that could be
used instead. I guess one *could* try to evaluate log_2(ULONG_MAX) in
the preprocessor using a long sequence of conditionals, but that's not
so nice...

In Nettle, where I need GMP_NUMB_BITS both for a few #ifdefs in the C
code, and to run programs to generate ECC tables, I use a configure
check do get the correct value (correct also when cross compiling,
thanks to autoconf's clever implementation of AC_COMPUTE_INT). See
https://git.lysator.liu.se/nettle/nettle/blob/master/configure.ac#L274

If anyone knows a good way to define it as a preprocessor constant
without a configure check, that would be great.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid 368C6677.
Internet email is subject to wholesale government surveillance.
_______________________________________________
gmp-devel mailing list
gmp-devel@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-devel

Reply via email to