GMP 4.3.2 fails to compile with --enable-fat

Torbjorn Granlund tg at gmplib.org
Tue Aug 30 13:25:34 CEST 2011


Zimmermann Paul <Paul.Zimmermann at loria.fr> writes:

  [GMP 4.3.2 might not be supported any more, but this is the minimal version
  currently required to compile GNU MPC, and we experience a problem with it.]
  
  When configuring 4.3.2 on a 64-bit Core 2 (Q9550) with GCC 4.4.5 and
  --disable-static --enable-fat, I get the following error:
  
   gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_fib_table -O2 -pedantic -m64 -c fib_table.c  -fPIC -DPIC -o .libs/fib_table.o
  In file included from fib_table.c:4:
  ../gmp-impl.h: In function 'mpn_add_nc':
  ../gmp-impl.h:4013: error: '__gmpn_cpuvec' undeclared (first use in this function)
  ../gmp-impl.h:4013: error: (Each undeclared identifier is reported only once
  ../gmp-impl.h:4013: error: for each function it appears in.)
  ../gmp-impl.h: In function 'mpn_sub_nc':
  ../gmp-impl.h:4027: error: '__gmpn_cpuvec' undeclared (first use in this function)
  make[2]: *** [fib_table.lo] Error 1
  make[2]: Leaving directory `/tmp/gmp-4.3.2/mpn'
  make[1]: *** [all-recursive] Error 1
  make[1]: Leaving directory `/tmp/gmp-4.3.2'
  make: *** [all] Error 2
  
What configuration 'cpu-blah-blah' does GMP use (alternatively, which
one did you pass)?

Is is a 64-bit build?

The first few dozen lines from the output of 'configure' would help.

I know we had problems with fat builds, but I don't recall exactly which
releases were affected.  (We now test many fat builds in our night
builds.)

  Note that a similar problem occurs with GMP 5.0.0:
  
   gcc -std=gnu99 -c -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_fat_entry -O2 -pedantic -m64 -Wa,--noexecstack tmp-fat_entry.s -fPIC -DPIC -o .libs/fat_entry.o
  tmp-fat_entry.s: Assembler messages:
  tmp-fat_entry.s:530: Error: operand type mismatch for `pop'
  tmp-fat_entry.s:534: Error: operand type mismatch for `push'
  tmp-fat_entry.s:537: Error: operand type mismatch for `pop'
  make[2]: *** [fat_entry.lo] Error 1
  make[2]: Leaving directory `/tmp/gmp-5.0.0/mpn'
  make[1]: *** [all-recursive] Error 1
  make[1]: Leaving directory `/tmp/gmp-5.0.0'
  make: *** [all] Error 2
  
  Note that GMP 5.0.1 and 5.0.2 pass "make" and "make check".
  
  Is there any workaround, or should we bump the minimal GMP version to 5.0.1?

I have the same questions about this build as for the previous build...

-- 
Torbjörn


More information about the gmp-bugs mailing list