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
-~----------~----~----~----~------~----~------~--~---

Reply via email to