[developers] PET on 64-bit Architectures

Ben Waldron benjamin.waldron at cl.cam.ac.uk
Wed Feb 8 17:59:06 CET 2006

I'm experiencing similar problems to Eric. Can anyone help?

My attempts to compile ecl-0.9e fail at:

-I/homes/bmw20/tmp/x32/ecl-0.9e/src/gmp/mpz -I.. -D__GMP_WITHIN_GMP -I/ 
-I/usr/groups/nltoo -bit/include/ -g -O2 -fomit-frame-pointer 
-mcpu=athlon -march=athlon -c /homes/bmw20/tmp/x32/ecl-0.9e rsmul.c -o 
/homes/bmw20/tmp/x32/ecl-0.9e/src/gmp/mpz/aorsmul.c:44: error: 
conflicting types for '__gmpz_aorsmul'
/homes/bmw20/tmp/x32/ecl-0.9e/src/gmp/mpz/aorsmul.c:39: error: previous 
declaration of '__gmpz_aorsmu
/homes/bmw20/tmp/x32/ecl-0.9e/src/gmp/mpz/aorsmul.c:44: error: 
conflicting types for '__gmpz_aorsmul'
/homes/bmw20/tmp/x32/ecl-0.9e/src/gmp/mpz/aorsmul.c:39: error: previous 
declaration of '__gmpz_aorsmu

I am able to compile ecl-0.9h, but cheap then refuses to make:

-I. -I. -I.. -I../common 
-I/usr/groups/nltools/lingo/pet/32-bit/include/ -g -O2 -Wall -MT 
petecl.o -MD -MP -MF ".deps/petecl.Tpo" -c -o petecl.o petecl.c; \
then mv -f ".deps/petecl.Tpo" ".deps/petecl.Po"; else rm -f 
".deps/petecl.Tpo"; exit 1; fi
In file included from 
from petecl.c:22:
/usr/groups/nltools/lingo/pet/32-bit//lib/ecl/h/object.h:40: error: 
syntax error before "cl_narg"
/usr/groups/nltools/lingo/pet/32-bit//lib/ecl/h/object.h:40: warning: 
type defaults to `int' in declaration of `cl_narg'
/usr/groups/nltools/lingo/pet/32-bit//lib/ecl/h/object.h:40: warning: 
data definition has no type or storage class
/usr/groups/nltools/lingo/pet/32-bit//lib/ecl/h/object.h:41: error: 
syntax error before "narg"

Has anyone succeeded in running PET on 64-bit machines?

- Ben

Eric Nichols wrote:
> Greetings,
> I have been trying to get PET working on 64 bit machines and am 
> experiencing a few problems
> getting it to compile with RMRS support. On 32 bit architectures, I 
> have been able to compile
> successfully using ECL versions 0.9d and 0.9e, however, ECL versions 
> older than 0.9g will not
> compile due to an obscure G++ bug. Thus, before attempting to build 
> PET on a 64 bit platform,
> I am focusing my efforts on getting PET building on a 32 bit machine 
> using the latest version of
> ECL (0.9h). This version claims to support G++ 4.0 and 64 bit 
> platforms, but it also contains
> several changes to the C-Lisp interface which I fear may have broken 
> the RMRS code. I have
> attached a log of the error messages I get when I compile. My system 
> is as follows:
> CPU: Intel Pentium 4 3.2 Ghz with HyperThreading
> Operating System: Ubuntu Linux "Breezy"
> Kernel: 2.6.12
> Compiler: G++ 4.0.2
> ECL: version 0.9h
> RMRS source: LKB 20051116 release
> PET source: 0.99.7 main branch + patch
> I am applying a patch that I wrote to make the mrs.h file by calling 
> ECL which builds its from the
> RMRS source since rmrs.h is no longer distributed with LKB.
> It appears that ECL is able to generate all of the C code correctly. 
> The errors start with:
> In file included from /usr/lib/ecl/h/ecl.h:62,
> from petecl.c:22:
> /usr/lib/ecl/h/object.h:40: error: syntax error before ‘cl_narg’
> Line 22 of petecl.c is #include <ecl.h>. Simply including it is enough 
> to generate errors.
> I would greatly appreciate it if someone more knowledgeable about LISP 
> could look into this.

More information about the developers mailing list