This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Mark Harig schrieb:
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'

The two ffcall libs are missing: -lavcall -lcallback

Those need to be defined in
cflags.h, Makefile and makevars:
#define LIBS "-lintl -liconv -lreadline -lavcall -lcallback -lncurses -lsigsegv"


and in makemake:
  FFCALL_LIBS='-lavcall -lcallback '

...
collect2: ld returned 1 exit status
make: *** [lisp.exe] Error 1
*** ERROR: configure failed




--
Reini Urban
http://phpwiki.org/  http://murbreak.at/
http://helsinki.at/  http://spacemovie.mur.at/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]