I also see no reasonable way for it to end up as 1. If I printf("%lu") those
same two variables the results are even more strange:
== GCC 4.8.5 ==
GMP_HLIMB_BIT=4294967296=100000000
GMP_LLIMB_MASK=4294967295=ffffffff
== GCC 7.2.0 ==
GMP_HLIMB_BIT=4294967296=100000000
GMP_LLIMB_MASK=4294967297=100000001
So it appears like the "-1" being applies to GMP_HLIMB_BIT is a +1 in GCC
7.2.0. I've not encountered behaviour like this before. Very strange.
I am currently investigating if this is an issue with how GCC handles longs
between 4.8.5 and 7.2.0 in ARM64 hosts builds.
This concludes me to believe a bug in GCC ARM64 or a bug in GMP or I am somehow
building GCC wrong but right enough that it can compile most other libraries.
I do notice in GCC 4.8.5 -mabi is not specified when compiling GMP. When GCC
7.2.0 goes to build GMP it is being explicit about the -mabi=lp64.
If anything comes to mind let me know. I'll post back here if I find out the
cause.
Thanks,
Stephen Damm
-----Original Message-----
From: Niels Möller [mailto:[email protected]]
Sent: December 6, 2019 03:51
To: Damm, Stephen <[email protected]>
Cc: [email protected]
Subject: Re: Compiling for ARMv8-A Using GCC 7.2.0 - Assertion error in gen-fac
"Damm, Stephen" <[email protected]> writes:
> I was able to narrow down the cause. In GC 7.2.0 the GMP_LLIMB_MASK is wrong:
>
> =GCC 4.8.5=
> GMP_LIMB_BITS=64
> GMP_LLIMB_MASK=4294967295=0xFFFFFFFF
>
> =GCC 7.2.0=
> GMP_LIMB_BITS=64
> GMP_LLIMB_MASK=1=0x00000001
>
> From my understanding this might be a difference in how GCC 7.2.0 handles
> unsigned longs vs GCC 4.8.5. It also could be I am missing some vital
> compiler flag for GMP.
Can you file a gcc bug? These constants are defined as
#define GMP_LIMB_BITS (sizeof(mp_limb_t) * CHAR_BIT) /* 64, you say */
#define GMP_HLIMB_BIT ((mp_limb_t) 1 << (GMP_LIMB_BITS / 2)) #define
GMP_LLIMB_MASK (GMP_HLIMB_BIT - 1)
I see no reasonable way that can end up defining GMP_LLIMB_MASK as 1.
Regards,
/Niels
--
Niels Möller. PGP-encrypted email is preferred. Keyid 368C6677.
Internet email is subject to wholesale government surveillance.
_______________________________________________
gmp-bugs mailing list
[email protected]
https://gmplib.org/mailman/listinfo/gmp-bugs