I found the underlying cause of the problems with --enable-fat. ./configure automatically creates fat.h with all CPU specific functions that are available. It somehow creates entries for functions that do not exist. If I remove all lines from fat.h that contain either "mpn_preinv_add" or "mpn_preinv_lshift", I can compile successfully. make check passes, too.
I think the problem is around line 2700 - 2750 in configure.in but I can't see the problem. I encountered a build issue that should probably be documented: if I try to compile and install MPIR over an existing GMP installation, it does not replace all the references to newer versions of libgmp*. I had to "rm /usr/local/lib/*gmp*" before I did "make install". Case On Sun, Jan 11, 2009 at 11:08 PM, <ja...@njkfrudils.plus.com> wrote: > > On Monday 12 January 2009 01:08:58 Bill Hart wrote: >> Thanks for the report. >> >> I'll make a trac ticket for this issue, and see if there is anything >> we can do to fix it. It's not clear at this stage, but we'll keep you >> posted. >> >> Is --enable-fat required for your application? >> >> Bill. >> >> 2009/1/12 casevh <cas...@gmail.com>: >> > Hello, >> > >> > I am one of the maintainers of gmpy, a Python wrapper for GMP. I have >> > added support to gmpy so it properly reports the MPIR version and >> > properly displays the license information. >> > >> > I also tried compiling on various platforms. I tried to use the -- >> > enable-fat option on Windows 2000 using MSYS and mingw32. It fails >> > with the error messages below. --enable-fat also fails on GMP 4.2.3 >> > and 4.2.4. >> > >> > Do you need additional information from me? >> > >> > casevh >> > >> > /bin/sh ../libtool --mode=compile --tag=CC ../mpn/m4-ccas --m4="m4" >> > gcc -std=gnu99 -c -DHAVE_CONFIG_H -m32 -O2 -fomit-frame-pointer - >> > mno-cygwin -D__GMP_WITHIN_GMP -I.. -DOPERATION_`echo p4s_submul_1 | >> > sed 's/_$//'` -I. -I. -I.. `test -f 'p4s_submul_1.asm' || echo >> > './'`p4s_submul_1.asm >> > ../mpn/m4-ccas --m4=m4 gcc -std=gnu99 -c -DHAVE_CONFIG_H -m32 -O2 - >> > fomit-frame-pointer -mno-cygwin -D__GMP_WITHIN_GMP -I.. - >> > DOPERATION_p4s_submul_1 -I. -I. -I.. p4s_submul_1.asm -o >> > p4s_submul_1.o >> > m4 -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_p4s_submul_1 >> > p4s_submul_1.asm >tmp-p4s_submul_1.s >> > gcc -std=gnu99 -c -DHAVE_CONFIG_H -m32 -O2 -fomit-frame-pointer -mno- >> > cygwin -D__GMP_WITHIN_GMP -I.. -DOPERATION_p4s_submul_1 -I. -I. -I.. >> > tmp-p4s_submul_1.s -o p4s_submul_1.o >> > /bin/sh ../libtool --tag=CC --mode=compile gcc -std=gnu99 - >> > DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_`echo >> > fat | sed 's/_$//'` -m32 -O2 -fomit-frame-pointer -mno-cygwin -c -o >> > fat.lo fat.c >> > gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. - >> > DOPERATION_fat -m32 -O2 -fomit-frame-pointer -mno-cygwin -c fat.c -o >> > fat.o >> > In file included from ../gmp-impl.h:109, >> > from fat.c:31: >> > ../fat.h:322: warning: type defaults to `int' in declaration of >> > `DECL_preinv_add_n' >> > ../fat.h:322: warning: parameter names (without types) in function >> > declaration >> > ../fat.h:322: warning: data definition has no type or storage class >> > ../fat.h:378: warning: type defaults to `int' in declaration of >> > `DECL_preinv_add_n' >> > ../fat.h:378: warning: parameter names (without types) in function >> > declaration >> > ../fat.h:378: warning: data definition has no type or storage class >> > ../fat.h:423: warning: type defaults to `int' in declaration of >> > `DECL_preinv_lshift' >> > ../fat.h:423: warning: parameter names (without types) in function >> > declaration >> > ../fat.h:423: warning: data definition has no type or storage class >> > ../fat.h:440: warning: type defaults to `int' in declaration of >> > `DECL_preinv_add_n' >> > ../fat.h:440: warning: parameter names (without types) in function >> > declaration >> > ../fat.h:440: warning: data definition has no type or storage class >> > ../fat.h:517: warning: type defaults to `int' in declaration of >> > `DECL_preinv_add_n' >> > ../fat.h:517: warning: parameter names (without types) in function >> > declaration >> > ../fat.h:517: warning: data definition has no type or storage class >> > fat.c: In function `__gmpn_cpuvec_init': >> > fat.c:213: error: structure has no member named `preinv_add_n' >> > fat.c:213: error: `__gmpn_preinv_add_n_pentium' undeclared (first use >> > in this function) >> > fat.c:213: error: (Each undeclared identifier is reported only once >> > fat.c:213: error: for each function it appears in.) >> > fat.c:217: error: structure has no member named `preinv_lshift' >> > fat.c:217: error: `__gmpn_preinv_lshift_pentium_mmx' undeclared (first >> > use in this function) >> > fat.c:223: error: structure has no member named `preinv_add_n' >> > fat.c:223: error: `__gmpn_preinv_add_n_p6' undeclared (first use in >> > this function) >> > fat.c:240: error: structure has no member named `preinv_add_n' >> > fat.c:240: error: `__gmpn_preinv_add_n_pentium4_sse2' undeclared >> > (first use in this function) >> > fat.c:272: error: structure has no member named `preinv_add_n' >> > fat.c:272: error: `__gmpn_preinv_add_n_k7' undeclared (first use in >> > this function) >> > make[2]: *** [fat.lo] Error 1 >> > make[2]: Leaving directory `/c/svn/mpir/trunk/mpn' >> > make[1]: *** [all-recursive] Error 1 >> > make[1]: Leaving directory `/c/svn/mpir/trunk' >> > make: *** [all] Error 2 >> >> > > ./configure --enable-fat && make fails on x86_84 trunk with > > > gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. > -DOPERATION_fib_table -O2 -m64 -c > fib_table.c -fPIC -DPIC -o .libs/fib_table.o > > gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. > -DOPERATION_fib_table -O2 -m64 -c > fib_table.c -o fib_table.o >/dev/null 2>&1 > /bin/sh ../libtool --tag=CC --mode=compile > gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. > -DOPERATION_`echo > mp_bases | sed 's/_$//'` -O2 -m64 -c -o mp_bases.lo mp_bases.c > > gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. > -DOPERATION_mp_bases -O2 -m64 -c > mp_bases.c -fPIC -DPIC -o .libs/mp_bases.o > > gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. > -DOPERATION_mp_bases -O2 -m64 -c > mp_bases.c -o mp_bases.o >/dev/null 2>&1 > /bin/sh ../libtool --mode=compile --tag=CC ../mpn/m4-ccas --m4="m4" > gcc -std=gnu99 -c -DHAVE_CONFIG_H -O2 -m64 -D__GMP_WITHIN_GMP -I.. > -DOPERATION_`echo > x86_add_n | sed 's/_$//'` -I. -I. -I.. `test -f 'x86_add_n.asm' || > echo './'`x86_add_n.asm > ../mpn/m4-ccas --m4=m4 > gcc -std=gnu99 -c -DHAVE_CONFIG_H -O2 -m64 -D__GMP_WITHIN_GMP -I.. > -DOPERATION_x86_add_n -I. -I. -I.. > x86_add_n.asm -fPIC -DPIC -o .libs/x86_add_n.o > m4 -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_x86_add_n -DPIC > x86_add_n.asm >tmp-x86_add_n.s > > gcc -std=gnu99 -c -DHAVE_CONFIG_H -O2 -m64 -D__GMP_WITHIN_GMP -I.. > -DOPERATION_x86_add_n -I. -I. -I.. > tmp-x86_add_n.s -fPIC -DPIC -o .libs/x86_add_n.o > tmp-x86_add_n.s: Assembler messages: > tmp-x86_add_n.s:88: Error: junk `FRAME_pushl()' after register > tmp-x86_add_n.s:89: Error: junk `FRAME_pushl()' after register > tmp-x86_add_n.s:120: Error: junk `FRAME_pushl()' after register > tmp-x86_add_n.s:123: Error: junk `FRAME_popl()' after register > tmp-x86_add_n.s:125: Error: suffix or operands invalid for `jmp' > tmp-x86_add_n.s:137: Error: junk `FRAME_pushl()' after register > tmp-x86_add_n.s:138: Error: junk `FRAME_pushl()' after register > tmp-x86_add_n.s:166: Error: suffix or operands invalid for `jmp' > tmp-x86_add_n.s:169: Error: junk `FRAME_pushl()' after register > tmp-x86_add_n.s:172: Error: junk `FRAME_popl()' after register > tmp-x86_add_n.s:208: Error: suffix or operands invalid for `pop' > tmp-x86_add_n.s:209: Error: suffix or operands invalid for `pop' > make[2]: *** [x86_add_n.lo] Error 1 > make[2]: Leaving directory `/root/mpir/mpir/mpir/trunk/mpn' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory `/root/mpir/mpir/mpir/trunk' > make: *** [all] Error 2 > > > also > > ./configure CFLAGS="-Werror" fails on linux x86_64 trunk with > with or without ABI=64,32 > > > checking build system type... x86_64-unknown-linux-gnu > checking host system type... x86_64-unknown-linux-gnu > checking for a BSD-compatible install... /usr/bin/ginstall -c > checking whether build environment is sane... yes > checking for gawk... gawk > checking whether make sets $(MAKE)... yes > checking whether to enable maintainer-specific portions of Makefiles... no > checking ABI=64 > checking compiler gcc -Werror ... no, gnupro alpha ev6 char spilling > checking whether cc is gcc... yes > checking compiler cc -Werror ... no, gnupro alpha ev6 char spilling > configure: error: could not find a working compiler, see config.log for > details > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "mpir-devel" group. To post to this group, send email to mpir-devel@googlegroups.com To unsubscribe from this group, send email to mpir-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/mpir-devel?hl=en -~----------~----~----~----~------~----~------~--~---