libffi : About
libffi is a library which allows a programmer to call any function specified by a call interface description at run-time and which is used by Java (JNA), Python (Ctypes) and Jruby (Jffi). libffi is written in C and published under a very liberal license.
Philippe Vouters has ported libffi 3.0.9 on OpenVMS. Porting means modifying the source code in order to take account of the OpenVMS specifics, writing a compile/link procedure and creating a PCSI kit.
libffi for OpenVMS must be installed on an ODS5 volume. libffi has been compiled and tested only on Itanium with a C recent version.
Contact : Thierry Uso
libffi : Download
ZIP archive containing the PCSI kit of libffi 3.0.9 :
Itanium: free-i64vms-libffi-v0300-9-1.zip
This kit is based on the archive libffi-3.0.9.tar.gz with the source code modified by Philippe Vouters for OpenVMS.
libffi : Installation
1. Extract the PCSI kit from the ZIP archive
$ SET PROC/PARSE=EXT
$ UNZIP “-V” FREE-I64VMS-LIBFFI-V0300-9-1.ZIP
2. Install libffi in your chosen directory
By default, the installation procedure installs libffi in the SYS$COMMON:[libffi] directory. To install it in dev:[dir.libffi], use the /DESTINATION parameter of the PRODUCT command.
$ PRODUCT INSTALL libffi
or…
$ PRODUCT INSTALL libffi /DESTINATION=dev:[dir]
3. Post installation task
The shareable image libffi.exe can be built by the link procedure linkffi.com
and copied into SYS$SHARE.
$ @linkffi
$ COPY libffi.exe SYS$SHARE:libffi.exe
$ SET SECURITY/PROT=(S:REWD,O:REWD,G:RE,W:RE) SYS$SHARE:libffi.exe
On a system with OpenVMS 8.3-1H1, just rename libffi.exe_ia64-831 to
SYS$SHARE:libffi.exe.
$ COPY libffi.exe_ia64-831 SYS$SHARE:libffi.exe
$ SET SECURITY/PROT=(S:REWD,O:REWD,G:RE,W:RE) SYS$SHARE:libffi.exe
libffi : History
2010-11-19
libffi 3.0.9 port
2010-12-19
new PCSI kit which corrects a bug (variable number of arguments)
2011-02-08
new PCSI kit which corrects a bug (unsigneg integer type)
2011-04-23
new PCSI kit which corrects bugs (test suite ok)
To do
??