gmp.h needs to detect bit width more dynamically to support universal builds on mac

Dan Kegel dank at kegel.com
Tue Dec 3 14:37:05 UTC 2013


Thanks.  Might be worth adding a note to
https://gmplib.org/manual/Known-Build-Problems.html
or
https://gmplib.org/manual/Notes-for-Particular-Systems.html
?.

I hadn't been running "make check", but I'll start.
Can you confirm the kludge should work at least for the --without-nails case?
- Dan

On Tue, Dec 3, 2013 at 5:04 AM, Niels Möller <nisse at lysator.liu.se> wrote:
> Dan Kegel <dank at kegel.com> writes:
>
>> The fix is easy.  Here's a patch that should Do The Right Thing, and
>> be completely safe for upstream:
>> http://kegel.com/gmp-universal-h.patch
>
> I'm pretty sure it totally breaks builds with --enable-nails, a feature
> currently not enabled by default, but which we'd like to be able to play
> with.
>
> I think a better way is to have in config.h.in something like
>
> #if @GMP_USE_ALT_SIZES@
> #define GMP_LIMB_BITS                      @GMP_ALT_LIMB_BITS@
> #define GMP_NAIL_BITS                      @GMP_ALT_NAIL_BITS@
> #else
> #define GMP_LIMB_BITS                      @GMP_LIMB_BITS@
> #define GMP_NAIL_BITS                      @GMP_NAIL_BITS@
> #endif
>
> where configure defines a non-zero GMP_USE_ALT_SIZES only for configurations where
> multiple ABI:s with different limb sizes are available. Maybe some other
> values, e.g., LONGLONG_LIMB, also needs alternative values.
>
> In your case, you'd have configure define
>
>   GMP_USE_ALT_SIZES __x86_64__
>   GMP_ALT_LIMB_BITS 64
>   GMP_ALT_NAIL_BITS 0
>   GMP_LIMB_BITS 32
>   GMP_NAIL_BITS 0
>
> It's a known problem, and solving it is not beneficial just for MacOS.
> E.g., it would be nice to be able to install both 32-bit and 64-bit gmp
> in parallel on, e.g., gnu/linux x86_64, with libraries in different
> directories, say /usr/lib and /use/lib32, but sharing the same
> $prefix/include/gmp.h. In this case, it would be nice to automagically
> chose default $libdir depending on the ABI (I try do that in Nettle's
> configure script, see
> http://git.lysator.liu.se/nettle/nettle/blobs/master/configure.ac#line170),
> but it's a bit messy).
>
> Regards,
> /Niels
>
> --
> Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
> Internet email is subject to wholesale government surveillance.


More information about the gmp-bugs mailing list