[Ecls-list] Compilation errors for libecl.a on OSX Intel

Joseph Nunn josephnunn at gmail.com
Thu May 29 13:46:11 UTC 2008

Hello all, my first post here.  I'm working on a project for a grad  
class and would like to embed ECL into a game engine as a scripting/AI  
language.  I've used Lisp before for some standalone AI projects and  
think it will be a better choice for me than the usual Lua etc.   
However most of my Lisp experience is with CMUCL and more recently  
SBCL.  I don't have the time to write my own renderer in lisp (one  
day...), so I'm going with a C renderer.  I could call out from a lisp  
to it using a FFI, but it needs to be faster than that.  Looks like  
embedding ECL statically could be the solution.

However I'm running into problems trying to build with the --disable- 
shared configuration option on OSX, intel arch.  I suppose that a  
dylib would work, but its harder to use and not as fast, which is  
important in this project.

Is this OS/arch combination supposed to work for ECL static build?   
I'm running into problems such that I think not but maybe its supposed  
to be.

0.9j fails here:

;;; Note: Invoking external command:
;;; gcc -o "/usr/local/src/ecl-0.9j/build/bin/ecl" -L"/usr/local/lib/ 
ecl/" "/usr/local/src/ecl-0.9j/build/ECLINIT7Hnb4o.o" "-lserve-event"  
"-lsockets" "-lcmp" "-L./"     libecl.a -leclgmp -leclgc    -lm

Undefined symbols:
  "_init_lib_ECL_SERVE_EVENT", referenced from:
      _init_lib_ECL_SERVE_EVENT$non_lazy_ptr in ECLINIT7Hnb4o.o
  "_init_lib_ECL_CMP", referenced from:
      _init_lib_ECL_CMP$non_lazy_ptr in ECLINIT7Hnb4o.o
  "_init_lib_ECL_SOCKETS", referenced from:
      _init_lib_ECL_SOCKETS$non_lazy_ptr in ECLINIT7Hnb4o.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
LAMBDA: Too many arguments to function CONTINUE.
Broken at TOP-LEVEL.No restarts available.
Top level.

So I went to CVS, but I get a syntax error in gcconfig.h at line 303
--> Not really supported, but at least we recognize it.

which doesn't seem to be a problem in 0.9j (code regression?)

Anyways, If I comment that line out and continue I get errors as  

gcc -fPIC -fno-common -DPACKAGE_NAME=\"gc\" -DPACKAGE_TARNAME=\"gc\" - 
usr/local/src/ecl-cvs/ecls/src/gc/include -fexceptions -g -O2 -fstrict- 
aliasing -fexceptions -MT os_dep.lo -MD -MP -MF .deps/os_dep.Tpo -c / 
usr/local/src/ecl-cvs/ecls/src/gc/os_dep.c -o os_dep.o
/usr/local/src/ecl-cvs/ecls/src/gc/os_dep.c: In function  
/usr/local/src/ecl-cvs/ecls/src/gc/os_dep.c:1068: error: 'result'  
undeclared (first use in this function)
/usr/local/src/ecl-cvs/ecls/src/gc/os_dep.c:1068: error: (Each  
undeclared identifier is reported only once
/usr/local/src/ecl-cvs/ecls/src/gc/os_dep.c:1068: error: for each  
function it appears in.)
/usr/local/src/ecl-cvs/ecls/src/gc/os_dep.c: In function  
/usr/local/src/ecl-cvs/ecls/src/gc/os_dep.c:1453: error: 'DATASTART'  
undeclared (first use in this function)
make[3]: *** [os_dep.lo] Error 1
make[2]: *** [install-recursive] Error 1
make[1]: *** [libeclgc.a] Error 2
make: *** [all] Error 2

Which makes sense in that its the garbage collector that is failing,  
but now I'm confused because this is not where the compilation was  
failing in 0.9j, which is, presumably, an earlier snapshot of the CVS  

Can anyone clue me in as to the support or lack thereof for static  
library building on Intel OSX and suggestions they might have for me?



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20080529/cd867ae5/attachment.html>

More information about the ecl-devel mailing list