1
ffcall - foreign function call libraries
3
This is a collection of four libraries which can be used to build
4
foreign function call interfaces in embedded interpreters.
8
avcall - calling C functions with variable arguments
10
vacall - C functions accepting variable argument prototypes
12
trampoline - closures as first-class C functions
14
callback - closures with variable arguments as first-class C functions
15
(a reentrant combination of vacall and trampoline)
18
Installation instructions:
22
./configure --cache-file=config.cache
28
Note: you should be able to build with --enable-shared,
29
but it makes no sense to do so:
31
1) it is overkill: libavcall, libvacall, libcallback have less than 1 KB
32
of executable code (most of the real code is in the header files):
35
text data bss dec hex filename
36
420 0 0 420 1a4 avcall.o (ex libavcall.a)
37
81 0 0 81 51 structcpy.o (ex libavcall.a)
39
text data bss dec hex filename
40
365 0 0 365 16d vacall.o (ex libvacall.a)
41
203 0 0 203 cb misc.o (ex libvacall.a)
42
81 0 0 81 51 structcpy.o (ex libvacall.a)
44
text data bss dec hex filename
45
379 0 0 379 17b vacall.o (ex libcallback.a)
46
203 0 0 203 cb misc.o (ex libcallback.a)
47
81 0 0 81 51 structcpy.o (ex libcallback.a)
48
287 0 0 287 11f trampoline.o (ex libcallback.a)
50
When a shared library is loaded, you spend at least 4 KB for its code,
51
data and BSS. This is overkill for such a tiny library.
53
2) The main function here is compiled from non-PIC assembly language.
54
I.e. relocations would remain. The GNU linker supports shared libraries
55
with relocations on x86 systems. But only on x86!
58
Files in this package:
63
COPYING free software license
64
PLATFORMS list of supported platforms
68
avcall/* the avcall package
69
vacall/* the vacall package
70
trampoline/* the trampoline package
71
callback/* the callback package
75
configure configuration script
76
configure.in autoconf-2.60 source for the configuration script
77
autoconf/* auxiliary configuration scripts
78
Makefile.in Makefile master
83
Copyright 1995-2004 Bruno Haible, <bruno@clisp.org>
84
Copyright 2000 Adam Fedor <fedor@gnu.org>
85
Copyright 2004 Paul Guyot <pguyot@kallisys.net>
87
This is free software distributed under the GNU General Public Licence
88
described in the file COPYING. Contact the author if you don't have this
89
or can't live with it. There is ABSOLUTELY NO WARRANTY, explicit or implied,
96
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/libffcall co ffcall
100
https://savannah.gnu.org/bugs/?func=additem&group=libffcall
104
http://www.gnu.org/software/libffcall/