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