gmp problem under darwin powerpc

David Fang fang at
Tue Jul 31 01:56:09 CEST 2012

I encountered the exact same problem with mpc 0.9 and 1.0 vs gmp on 
powerpc-darwin8.  mpc-1.0 failed tpow_fr w/ segfault, and mpc-0.9 failed 
tpow w/ segfault, both in the gmp library.

Here's the test case I reduced:

#include <stdio.h>
#include <gmp.h>

main(int argc, char* argv[]) {
         mpz_t a, c, d;

"%Zd", c);

"%Zd", d);

         gmp_printf("a = %Zd\n", a);
         gmp_printf("c = %Zd\n", c);
         gmp_printf("d = %Zd\n", d);
         mpz_mul (a, c, c);
         gmp_printf("a = %Zd\n", a);
         mpz_addmul (a, d, d); /* c^2 + d^2 */
         gmp_printf("a = %Zd\n", a);
         if (mpz_perfect_square_p (a)) {	/* was crashing here */
                 printf("result: 1\n");
         } else {
                 printf("result: 0\n");


I've grabbed the patch suggested by Torbjorn, and found that it fixed the 
above test case for powerpc-darwin8.  So thank you both for reporting and 
fixing.  I'll will apply this fix to the fink distribution.


> On Sat Jul 21 19:26:20 CEST 2012, 
Torbjorn Granlund wrote:
>> It turned out this was simple to fix.  I pushed a change to both the
>> gmp-5.0 repo and the mainline repo.
>> It was a register clobbering issue affecting PIC builds on ELF and
>> Darwin system, making operands of >= 20 words get an incorrect loop trip
>> count.
>> If you pull the new file, your builds should work again without te speed
>> degradation resulted from removing the offending file.  If you do this,
>> please send feedback to this list.
> Glad that it was easier to fix than expected. The 'e' program (see previous e-mail)
> is OK now (since a is not a square).
> % ./e
> a=13017918183496977133775209079164003070786863049686786465873731362497345253379866083852810820103005813030391929785402872601518953148250859762321945896609724349178326747526622443454716367524
> ret=0
> %
> Also OK is now the mpc-1.0.0rc1 testsuite for the powerpc-apple-darwin9.8.0 architecture.
> Thank you for your time,
> Regards,
> Denis Excoffier.
> _______________________________________________
> gmp-bugs mailing list
> gmp-bugs at

David Fang

More information about the gmp-bugs mailing list