Using the '--with-ffcall' configuration option with 'clisp'

Mark Harig idirectscm@aim.com
Thu Feb 7 16:25:00 GMT 2008


I wrote:

> There appears to be a contradiction between the Cygwin announcement
> and the upstream clisp announcement.  The upstream announcement states
> that the configuration option '--with-dynamic-ffi' has been replaced by
> the option '--with-ffcall', but the Cygwin announcement states that the
> no-longer-supported '--with-dynamic-ffi' configuration option was used.


Reini Urban wrote:

 > I couldn't get it with --with-ffcall to find the ffcall libs on my build
 > machine, --with-dynamic-ffi works still fine. On my development laptop
 > --with-ffcall worked okay.  The end product is the same.

When I attempted to generate 'clisp' using 'cygport ... compile' using 
the 'clisp-2.44-1.cygport'
provided by 'setup', errors were generated when gcc attempted to link 
'lisp.exe' (error messages
included at the end of this message).  So, I replaced 
'--with-dynamic-ffi' with '--with-ffcall' in
CYGCONF_ARGS in clisp-2.44-1.cygport.  This initially did not fix the 
problem when I re-ran
'cygport ... compile' (presumably because of cached configuration 
results?).  I restarted the
process with 'cygport ... finish prep compile', and this eliminated the 
compilation errors (i.e.,
the 'gcc' linker command included the static libraries 
/usr/lib/libavcall.a and /usr/lib/libcallback.a).

Could you update the clisp '.cygport' file to use '--with-ffcall' 
instead of '--with-dynamic-ffi', or
is there some other factor I am not considering?

P.S.,
    The generated lisp appears to be quite good (from the clisp .log file):

           finished  52 files:               0 errors out of  10,812 tests

---------
Link error messages:

gcc -O2 -pipe  -Igllib -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit 
-Wreturn-type -Wmissing-declarations -Wno-sign-compare -O2 
-fexpensive-optimizations -falign-functions=4 -DUNICODE -DDYNAMIC_FFI 
-DNO_GETTEXT -I. -x none spvw.o spvwtabf.o spvwtabs.o spvwtabo.o eval.o 
control.o encoding.o pathname.o stream.o socket.o io.o funarg.o array.o 
hashtabl.o list.o package.o record.o weak.o sequence.o charstrg.o 
debug.o error.o misc.o time.o predtype.o symbol.o lisparit.o i18n.o 
foreign.o unixaux.o built.o ari80386.o gllib/uniwidth/width.o 
gllib/uniname/uniname.o gllib/localcharset.o modules.o -lncurses   
-L/usr/lib -lsigsegv -o lisp.exe
foreign.o:foreign.c:(.text+0xa80): undefined reference to `_is_trampoline_r'
foreign.o:foreign.c:(.text+0xaa4): undefined reference to 
`_trampoline_r_address'
foreign.o:foreign.c:(.text+0xaa9): undefined reference to `___vacall_r'
foreign.o:foreign.c:(.text+0xab3): undefined reference to 
`_trampoline_r_data0'
foreign.o:foreign.c:(.text+0xac2): undefined reference to 
`_trampoline_r_data1'
foreign.o:foreign.c:(.text+0xb78): undefined reference to 
`_free_trampoline_r'
foreign.o:foreign.c:(.text+0xbf6): undefined reference to `_is_trampoline_r'
foreign.o:foreign.c:(.text+0xc02): undefined reference to 
`_trampoline_r_address'
foreign.o:foreign.c:(.text+0xc07): undefined reference to `___vacall_r'
foreign.o:foreign.c:(.text+0xc7f): undefined reference to 
`_trampoline_r_data0'
foreign.o:foreign.c:(.text+0xc8e): undefined reference to 
`_trampoline_r_data1'
foreign.o:foreign.c:(.text+0x43e4): undefined reference to `___structcpy'
foreign.o:foreign.c:(.text+0x4f3a): undefined reference to `___va_error1'
foreign.o:foreign.c:(.text+0x4fa4): undefined reference to `___va_error1'
foreign.o:foreign.c:(.text+0x4fcb): undefined reference to `___va_error1'
foreign.o:foreign.c:(.text+0x5007): undefined reference to `___va_error1'
foreign.o:foreign.c:(.text+0x5079): undefined reference to `___va_error1'
foreign.o:foreign.c:(.text+0x5094): more undefined references to 
`___va_error1' follow
foreign.o:foreign.c:(.text+0x6cc8): undefined reference to `___vacall_r'
foreign.o:foreign.c:(.text+0x6ccd): undefined reference to 
`_alloc_trampoline_r'
foreign.o:foreign.c:(.text+0x7ddf): undefined reference to `___vacall_r'
foreign.o:foreign.c:(.text+0x7de4): undefined reference to 
`_alloc_trampoline_r'
foreign.o:foreign.c:(.text+0x88c9): undefined reference to 
`___builtin_avcall'
foreign.o:foreign.c:(.text+0x4fee): undefined reference to `___structcpy'
collect2: ld returned 1 exit status
make: *** [lisp.exe] Error 1
*** ERROR: configure failed



More information about the Cygwin-apps mailing list