GMP-Bugs,

I am trying to build GMP 6.1.2 for ARMv8-A Thunderx2t99 (AARCH64) CPU on 
RHEL7.4.

I can build BINUTILS 2.29.1, GMP 6.1.2, and CC 7.2.0 using the system GCC 
4.8.5.  No errors, GMP passes its `make check` tests.  The gen-fac program 
works.

Next I use my GCC 7.2.0 to build everything again.  GMP fails with an assertion 
error before it gets very far into its build process.

During the GMP build process it builds a few programs, "gen-fac" being one of 
them.   This is the exact command the Makefile executes:
"custom_toolchain/bin/gcc -v `test -f 'gen-fac.c' || echo './'`gen-fac.c -o 
gen-fac"

It then tries to execute: "./gen-fac 64 0" which hits an assertion error if 
built using my GCC 7.2.0:
gen-fac: mini-gmp/mini-gmp.c:1207: mpn_limb_size_in_base_2: Assertion `u > 0' 
failed.
/bin/sh: line 1:  9766 Aborted                 (core dumped) ./gen-fac 64 0 > 
fac_table.h

It is dying due to an assertion in mpn_limb_size_in_base_2.  In this case `u` 
is exactly 0.

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.

Any ideas?


Thanks,
Stephen Damm
_______________________________________________
gmp-bugs mailing list
gmp-bugs@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-bugs

Reply via email to