initial snapshot of documentation
This commit is contained in:
@@ -1,4 +1,186 @@
|
||||
<html>
|
||||
<title>Hello World</title>
|
||||
Hello World
|
||||
</html>
|
||||
</body>
|
||||
<head>
|
||||
<title>
|
||||
libffi
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<h1>The libffi Home Page</h1>
|
||||
|
||||
<b>libffi-1.20</b> was released on October 5, 1998. You can ftp it from <a href="ftp://ftp.cygnus.com:/pub/green/libffi-1.20.tar.gz">ftp.cygnus.com:/pub/green/libffi-1.20.tar.gz</a>.
|
||||
|
||||
<p>
|
||||
If you wish to be notified of libffi releases by email, fill out <a href="libffi-form.html">this form</a>.
|
||||
|
||||
<h2>What is libffi?</h2>
|
||||
|
||||
Compilers for high level languages generate code that follow certain
|
||||
conventions. These conventions are necessary, in part, for separate
|
||||
compilation to work. One such convention is the "calling
|
||||
convention". The "calling convention" is essentially a set of
|
||||
assumptions made by the compiler about where function arguments will
|
||||
be found on entry to a function. A "calling convention" also specifies
|
||||
where the return value for a function is found.
|
||||
|
||||
<p>
|
||||
|
||||
Some programs may not know at the time of compilation what arguments
|
||||
are to be passed to a function. For instance, an interpreter may be
|
||||
told at run-time about the number and types of arguments used to call
|
||||
a given function. Libffi can be used in such programs to provide a
|
||||
bridge from the interpreter program to compiled code.
|
||||
|
||||
<p>
|
||||
|
||||
The libffi library provides a portable, high level programming
|
||||
interface to various calling conventions. This allows a programmer to
|
||||
call any function specified by a call interface description at run-time.
|
||||
|
||||
<p>
|
||||
|
||||
Ffi stands for Foreign Function Interface. A foreign function
|
||||
interface is the popular name for the interface that allows code
|
||||
written in one language to call code written in another language. The
|
||||
libffi library really only provides the lowest, machine dependent
|
||||
layer of a fully featured foreign function interface. A layer must
|
||||
exist above libffi that handles type conversions for values passed
|
||||
between the two languages.
|
||||
|
||||
<h2>Supported Platforms and Prerequisites</h2>
|
||||
|
||||
Libffi has been ported to:
|
||||
|
||||
<ul>
|
||||
<li> SunOS 4.1.3 & Solaris 2.x (Sparc v8)
|
||||
<li> Irix 5.3 & 6.2 (System V/o32 & n32)
|
||||
<li> Intel x86 - Linux (System V ABI)
|
||||
<li> Alpha Linux and OSF/1
|
||||
<li> m68k - Linux (System V ABI)
|
||||
<li> PowerPC - Linux (System V ABI)
|
||||
<li> ARM - Linux (System V ABI)
|
||||
</ul>
|
||||
|
||||
Libffi has been tested with the <a href="http://www.cygnus.com/egcs/">egcs</a> 1.0.2 gcc compiler. Chances are
|
||||
that other versions will work. Libffi has also been built and tested
|
||||
with the SGI compiler tools.
|
||||
|
||||
If you port libffi to another platform, please let me know! I assume
|
||||
that some will be easy (x86 NetBSD), and others will be more difficult
|
||||
(HP, AIX).
|
||||
|
||||
<h2>History</h2>
|
||||
|
||||
<pre>
|
||||
1.20 Oct-5-98
|
||||
Raffaele Sena produces ARM port.
|
||||
|
||||
1.19 Oct-5-98
|
||||
Fixed x86 long double and long long return support.
|
||||
m68k bug fixes from Andreas Schwab.
|
||||
Patch for DU assembler compatibility for the Alpha from Richard
|
||||
Henderson.
|
||||
|
||||
1.18 Apr-17-98
|
||||
Bug fixes and MIPS configuration changes.
|
||||
|
||||
1.17 Feb-24-98
|
||||
Bug fixes and m68k port from Andreas Schwab. PowerPC port from
|
||||
Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes.
|
||||
|
||||
1.16 Feb-11-98
|
||||
Richard Henderson produces Alpha port.
|
||||
|
||||
1.15 Dec-4-97
|
||||
Fixed an n32 ABI bug. New libtool, auto* support.
|
||||
|
||||
1.14 May-13-96
|
||||
libtool is now used to generate shared and static libraries.
|
||||
Fixed a minor portability problem reported by Russ McManus
|
||||
<mcmanr@eq.gs.com>.
|
||||
|
||||
1.13 Dec-2-96
|
||||
Added --enable-purify-safety to keep Purify from complaining
|
||||
about certain low level code.
|
||||
Sparc fix for calling functions with < 6 args.
|
||||
Linux x86 a.out fix.
|
||||
|
||||
1.12 Nov-22-96
|
||||
Added missing ffi_type_void, needed for supporting void return
|
||||
types. Fixed test case for non MIPS machines. Cygnus Support
|
||||
is now Cygnus Solutions.
|
||||
|
||||
1.11 Oct-30-96
|
||||
Added notes about GNU make.
|
||||
|
||||
1.10 Oct-29-96
|
||||
Added configuration fix for non GNU compilers.
|
||||
|
||||
1.09 Oct-29-96
|
||||
Added --enable-debug configure switch. Clean-ups based on LCLint
|
||||
feedback. ffi_mips.h is always installed. Many configuration
|
||||
fixes. Fixed ffitest.c for sparc builds.
|
||||
|
||||
1.08 Oct-15-96
|
||||
Fixed n32 problem. Many clean-ups.
|
||||
|
||||
1.07 Oct-14-96
|
||||
Gordon Irlam rewrites v8.S again. Bug fixes.
|
||||
|
||||
1.06 Oct-14-96
|
||||
Gordon Irlam improved the sparc port.
|
||||
|
||||
1.05 Oct-14-96
|
||||
Interface changes based on feedback.
|
||||
|
||||
1.04 Oct-11-96
|
||||
Sparc port complete (modulo struct passing bug).
|
||||
|
||||
1.03 Oct-10-96
|
||||
Passing struct args, and returning struct values works for
|
||||
all architectures/calling conventions. Expanded tests.
|
||||
|
||||
1.02 Oct-9-96
|
||||
Added SGI n32 support. Fixed bugs in both o32 and Linux support.
|
||||
Added "make test".
|
||||
|
||||
1.01 Oct-8-96
|
||||
Fixed float passing bug in mips version. Restructured some
|
||||
of the code. Builds cleanly with SGI tools.
|
||||
|
||||
1.00 Oct-7-96
|
||||
First release. No public announcement.
|
||||
</pre>
|
||||
|
||||
<h2>Authors & Credits</h2>
|
||||
|
||||
Libffi was written by <b>Anthony Green</b>.
|
||||
<p>
|
||||
Portions of libffi were derived from <b>Gianni Mariani</b>'s free gencall
|
||||
library for Silicon Graphics machines.
|
||||
<p>
|
||||
The sparc port was derived from code contributed by the fine folks at
|
||||
<b><a href="http://www.vdi.com">Visible Decisions Inc</a></b>. Further enhancements were made by <b>Gordon Irlam</b> at <a href="http://www.cygnus.com">Cygnus Solutions</a>.
|
||||
<p>
|
||||
The Alpha port was written by <b>Richard Henderson</b> at Cygnus Solutions.
|
||||
<p>
|
||||
<b>Andreas Schwab</b> ported libffi to m68k Linux and provided a number of
|
||||
bug fixes.
|
||||
<p>
|
||||
<b>Geoffrey Keating</b> ported libffi to the PowerPC.
|
||||
<p>
|
||||
<b>Raffaele Sena</b> ported libffi to the ARM.
|
||||
<p>
|
||||
<b>Jesper Skov</b> and <b>Andrew Haley</b> both did more than their fair share of
|
||||
stepping through the code and tracking down bugs.
|
||||
<p>
|
||||
Thanks to <b>Tom Tromey</b> for bug fixes and configuration help.
|
||||
<p>
|
||||
Thanks also to <b>Jim Blandy</b>, who provided some useful feedback on the libffi
|
||||
interface.
|
||||
<p>
|
||||
If you have a problem, or have found a bug, please send a note to
|
||||
<a href="mailto:green@cygnus.com">green@cygnus.com</a>.
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user