Initial commit
This commit is contained in:
18
.gitignore
vendored
Normal file
18
.gitignore
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
*.o
|
||||||
|
*.lo
|
||||||
|
.dirstamp
|
||||||
|
*.la
|
||||||
|
Makefile
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
*~
|
||||||
|
fficonfig.h
|
||||||
|
include/ffi.h
|
||||||
|
include/ffitarget.h
|
||||||
|
libffi.pc
|
||||||
|
libtool
|
||||||
|
stamp-h1
|
||||||
|
libffi*gz
|
||||||
|
autom4te.cache
|
||||||
5
.svn/dir-prop-base
Normal file
5
.svn/dir-prop-base
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
K 10
|
||||||
|
svn:ignore
|
||||||
|
V 14
|
||||||
|
autom4te.cache
|
||||||
|
END
|
||||||
488
.svn/entries
Normal file
488
.svn/entries
Normal file
@@ -0,0 +1,488 @@
|
|||||||
|
10
|
||||||
|
|
||||||
|
dir
|
||||||
|
152280
|
||||||
|
svn://gcc.gnu.org/svn/gcc/trunk/libffi
|
||||||
|
svn://gcc.gnu.org/svn/gcc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-09-28T22:26:25.100883Z
|
||||||
|
152256
|
||||||
|
ktietz
|
||||||
|
has-props
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
138bc75d-0d04-0410-961f-82ee72b054a4
|
||||||
|
|
||||||
|
ChangeLog.libgcj
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-04-24T17:46:15.000000Z
|
||||||
|
fbbc216bc25d759a72ea3e6d734af56b
|
||||||
|
2004-01-15T03:41:49.000000Z
|
||||||
|
75901
|
||||||
|
kcook
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1103
|
||||||
|
|
||||||
|
configure
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cd4e90cc5d56f8ef96e9cd66c53aa460
|
||||||
|
2009-08-22T13:22:20.806489Z
|
||||||
|
151014
|
||||||
|
rwild
|
||||||
|
has-props
|
||||||
|
|
||||||
|
LICENSE
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-04-24T17:46:15.000000Z
|
||||||
|
085f9917800070e791f49bf4733e23fa
|
||||||
|
2003-10-21T19:01:58.000000Z
|
||||||
|
72766
|
||||||
|
andreast
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1060
|
||||||
|
|
||||||
|
Makefile.in
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-09-10T17:50:58.000000Z
|
||||||
|
3285bb69fbb854e151b9ce811fdb175e
|
||||||
|
2009-08-22T13:41:50.702364Z
|
||||||
|
151015
|
||||||
|
rwild
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
58245
|
||||||
|
|
||||||
|
include
|
||||||
|
dir
|
||||||
|
|
||||||
|
fficonfig.h.in
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-09-10T17:50:58.000000Z
|
||||||
|
2e89b398801168fb8a810c6ed80d732d
|
||||||
|
2009-08-22T13:22:20.806489Z
|
||||||
|
151014
|
||||||
|
rwild
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
4881
|
||||||
|
|
||||||
|
ChangeLog
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-09-29T17:13:25.000000Z
|
||||||
|
470af163ecd8e1e845a906d450abdef5
|
||||||
|
2009-09-28T22:26:25.100883Z
|
||||||
|
152256
|
||||||
|
ktietz
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
139238
|
||||||
|
|
||||||
|
libtool-version
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-04-24T17:46:15.000000Z
|
||||||
|
fea69bf0c254aa8f860a0b0ed487546d
|
||||||
|
2004-06-26T20:37:03.000000Z
|
||||||
|
83717
|
||||||
|
doko
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
249
|
||||||
|
|
||||||
|
src
|
||||||
|
dir
|
||||||
|
|
||||||
|
testsuite
|
||||||
|
dir
|
||||||
|
|
||||||
|
README
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-06-20T15:53:38.000000Z
|
||||||
|
9efa71073aa58fdb2c19a776d48572df
|
||||||
|
2009-06-12T15:57:58.721771Z
|
||||||
|
148433
|
||||||
|
aph
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
10453
|
||||||
|
|
||||||
|
configure.host
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-04-24T17:46:15.000000Z
|
||||||
|
bec544523f8f7f3d5136f67598cf609a
|
||||||
|
2004-08-30T15:43:03.000000Z
|
||||||
|
86779
|
||||||
|
green
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
267
|
||||||
|
|
||||||
|
configure.ac
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
0e7dc11ac340ede683b3c9e65b800432
|
||||||
|
2009-08-24T19:08:51.161283Z
|
||||||
|
151059
|
||||||
|
rwild
|
||||||
|
|
||||||
|
doc
|
||||||
|
dir
|
||||||
|
|
||||||
|
acinclude.m4
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-04-24T17:46:15.000000Z
|
||||||
|
0ec3418e6c2e6b89c24cffd4322b6368
|
||||||
|
2004-11-23T04:11:31.000000Z
|
||||||
|
91073
|
||||||
|
kcook
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3273
|
||||||
|
|
||||||
|
Makefile.am
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3c417dcb90ddc78845c01bbbacbe0c29
|
||||||
|
2009-08-22T13:41:50.702364Z
|
||||||
|
151015
|
||||||
|
rwild
|
||||||
|
|
||||||
|
man
|
||||||
|
dir
|
||||||
|
|
||||||
|
ChangeLog.v1
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-04-24T17:46:15.000000Z
|
||||||
|
d946d2b97454ad50a1dbfbf48923c5be
|
||||||
|
1999-08-08T13:27:18.000000Z
|
||||||
|
28593
|
||||||
|
green
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
23008
|
||||||
|
|
||||||
|
aclocal.m4
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-09-10T17:50:58.000000Z
|
||||||
|
8ed70e462d8e9ec1a90d35a26bab62fc
|
||||||
|
2009-08-22T13:22:20.806489Z
|
||||||
|
151014
|
||||||
|
rwild
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
38152
|
||||||
|
|
||||||
|
stamp-h.in
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-04-24T17:46:16.000000Z
|
||||||
|
1ded054093de910d9786c62bc4fe8cc6
|
||||||
|
1999-08-08T13:27:18.000000Z
|
||||||
|
28593
|
||||||
|
green
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
10
|
||||||
|
|
||||||
5
.svn/prop-base/configure.svn-base
Normal file
5
.svn/prop-base/configure.svn-base
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
K 14
|
||||||
|
svn:executable
|
||||||
|
V 1
|
||||||
|
*
|
||||||
|
END
|
||||||
40
.svn/text-base/ChangeLog.libgcj.svn-base
Normal file
40
.svn/text-base/ChangeLog.libgcj.svn-base
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
|
||||||
|
|
||||||
|
* configure.in: Add in AC_PREREQ(2.13)
|
||||||
|
|
||||||
|
2003-02-20 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
|
||||||
|
config.status.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
2002-01-27 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
|
||||||
|
Remove USE_LIBDIR conditional.
|
||||||
|
* Makefile.am (toolexecdir, toolexeclibdir): Don't override.
|
||||||
|
* Makefile.in, configure: Rebuilt.
|
||||||
|
|
||||||
|
Mon Aug 9 18:33:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
|
* include/Makefile.in: Rebuilt.
|
||||||
|
* Makefile.in: Rebuilt
|
||||||
|
* Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
|
||||||
|
builds.
|
||||||
|
Use USE_LIBDIR.
|
||||||
|
|
||||||
|
* configure: Rebuilt.
|
||||||
|
* configure.in (USE_LIBDIR): Define for native builds.
|
||||||
|
Use lowercase in configure --help explanations.
|
||||||
|
|
||||||
|
1999-08-08 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* include/ffi.h.in (FFI_FN): Remove `...'.
|
||||||
|
|
||||||
|
1999-08-08 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* Makefile.am (AM_CFLAGS): Compile with -fexceptions.
|
||||||
|
|
||||||
|
* src/x86/sysv.S: Add exception handling metadata.
|
||||||
|
|
||||||
3878
.svn/text-base/ChangeLog.svn-base
Normal file
3878
.svn/text-base/ChangeLog.svn-base
Normal file
File diff suppressed because it is too large
Load Diff
764
.svn/text-base/ChangeLog.v1.svn-base
Normal file
764
.svn/text-base/ChangeLog.v1.svn-base
Normal file
@@ -0,0 +1,764 @@
|
|||||||
|
The libffi version 1 ChangeLog archive.
|
||||||
|
|
||||||
|
Version 1 of libffi had per-directory ChangeLogs. Current and future
|
||||||
|
versions have a single ChangeLog file in the root directory. The
|
||||||
|
version 1 ChangeLogs have all been concatonated into this file for
|
||||||
|
future reference only.
|
||||||
|
|
||||||
|
--- libffi ----------------------------------------------------------------
|
||||||
|
|
||||||
|
Mon Oct 5 02:17:50 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Boosted rev.
|
||||||
|
* configure, Makefile.in, aclocal.m4: Rebuilt.
|
||||||
|
* README: Boosted rev and updated release notes.
|
||||||
|
|
||||||
|
Mon Oct 5 01:03:03 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Boosted rev.
|
||||||
|
* configure, Makefile.in, aclocal.m4: Rebuilt.
|
||||||
|
* README: Boosted rev and updated release notes.
|
||||||
|
|
||||||
|
1998-07-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* m68k/ffi.c (ffi_prep_cif_machdep): Use bitmask for cif->flags.
|
||||||
|
Correctly handle small structures.
|
||||||
|
(ffi_prep_args): Also handle small structures.
|
||||||
|
(ffi_call): Pass size of return type to ffi_call_SYSV.
|
||||||
|
* m68k/sysv.S: Adjust for above changes. Correctly align small
|
||||||
|
structures in the return value.
|
||||||
|
|
||||||
|
* types.c (uint64, sint64) [M68K]: Change alignment to 4.
|
||||||
|
|
||||||
|
Fri Apr 17 17:26:58 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Boosted rev.
|
||||||
|
* configure,Makefile.in,aclocal.m4: Rebuilt.
|
||||||
|
* README: Boosted rev and added release notes.
|
||||||
|
|
||||||
|
Sun Feb 22 00:50:41 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* configure.in: Add PowerPC config bits.
|
||||||
|
|
||||||
|
1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* configure.in: Add m68k config bits. Change AC_CANONICAL_SYSTEM
|
||||||
|
to AC_CANONICAL_HOST, this is not a compiler. Use $host instead
|
||||||
|
of $target. Remove AC_CHECK_SIZEOF(char), we already know the
|
||||||
|
result. Fix argument of AC_ARG_ENABLE.
|
||||||
|
* configure, fficonfig.h.in: Rebuilt.
|
||||||
|
|
||||||
|
Tue Feb 10 20:53:40 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Add Alpha config bits.
|
||||||
|
|
||||||
|
Tue May 13 13:39:20 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* README: Updated dates and reworded Irix comments.
|
||||||
|
|
||||||
|
* configure.in: Removed AC_PROG_RANLIB.
|
||||||
|
|
||||||
|
* Makefile.in, aclocal.m4, config.guess, config.sub, configure,
|
||||||
|
ltmain.sh, */Makefile.in: libtoolized again and rebuilt with
|
||||||
|
automake and autoconf.
|
||||||
|
|
||||||
|
Sat May 10 18:44:50 1997 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* configure, aclocal.m4: Rebuilt.
|
||||||
|
* configure.in: Don't compute EXTRADIST; now handled in
|
||||||
|
src/Makefile.in. Removed macros implied by AM_INIT_AUTOMAKE.
|
||||||
|
Don't run AM_MAINTAINER_MODE.
|
||||||
|
|
||||||
|
Thu May 8 14:34:05 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* missing, ltmain.sh, ltconfig.sh: Created. These are new files
|
||||||
|
required by automake and libtool.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.14. Added notes.
|
||||||
|
|
||||||
|
* acconfig.h: Moved PACKAGE and VERSION for new automake.
|
||||||
|
|
||||||
|
* configure.in: Changes for libtool.
|
||||||
|
|
||||||
|
* Makefile.am (check): make test now make check. Uses libtool now.
|
||||||
|
|
||||||
|
* Makefile.in, configure.in, aclocal.h, fficonfig.h.in: Rebuilt.
|
||||||
|
|
||||||
|
Thu May 1 16:27:07 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* missing: Added file required by new automake.
|
||||||
|
|
||||||
|
Tue Nov 26 14:10:42 1996 Anthony Green <green@csk3.cygnus.com>
|
||||||
|
|
||||||
|
* acconfig.h: Added USING_PURIFY flag. This is defined when
|
||||||
|
--enable-purify-safety was used at configure time.
|
||||||
|
|
||||||
|
* configure.in (allsources): Added --enable-purify-safety switch.
|
||||||
|
(VERSION): Boosted rev to 1.13.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Fri Nov 22 06:46:12 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.12.
|
||||||
|
Removed special CFLAGS hack for gcc.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.12. Added notes.
|
||||||
|
|
||||||
|
* Many files: Cygnus Support changed to Cygnus Solutions.
|
||||||
|
|
||||||
|
Wed Oct 30 11:15:25 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.11.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.11. Added notes about GNU make.
|
||||||
|
|
||||||
|
Tue Oct 29 12:25:12 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Fixed -Wall trick.
|
||||||
|
(VERSION): Boosted rev.
|
||||||
|
* configure: Rebuilt
|
||||||
|
|
||||||
|
* acconfig.h: Needed for --enable-debug configure switch.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.09. Added more notes on building
|
||||||
|
libffi, and LCLint.
|
||||||
|
|
||||||
|
* configure.in: Added --enable-debug switch. Boosted rev to
|
||||||
|
1.09.
|
||||||
|
* configure: Rebuilt
|
||||||
|
|
||||||
|
Tue Oct 15 13:11:28 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.08
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Added n32 bug fix notes.
|
||||||
|
|
||||||
|
* Makefile.am: Added "make lint" production.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Mon Oct 14 10:54:46 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README: Added web page reference.
|
||||||
|
|
||||||
|
* configure.in, README: Boosted rev to 1.05
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Fixed n32 sample code.
|
||||||
|
|
||||||
|
Fri Oct 11 17:09:28 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README: Added sparc notes.
|
||||||
|
|
||||||
|
* configure.in, README: Boosted rev to 1.04.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Thu Oct 10 10:31:03 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in, README: Boosted rev to 1.03.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Added struct notes.
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added LICENSE to distribution.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* README: Removed Linux section. No special notes now
|
||||||
|
because aggregates arg/return types work.
|
||||||
|
|
||||||
|
Wed Oct 9 16:16:42 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README, configure.in (VERSION): Boosted rev to 1.02
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Tue Oct 8 11:56:33 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README (NOTE): Added n32 notes.
|
||||||
|
|
||||||
|
* Makefile.am: Added test production.
|
||||||
|
* Makefile: Rebuilt
|
||||||
|
|
||||||
|
* README: spell checked!
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.01
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Mon Oct 7 15:50:22 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Added nasty bit to support SGI tools.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Added SGI notes. Added note about automake bug.
|
||||||
|
|
||||||
|
Mon Oct 7 11:00:28 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* README: Rewrote intro, and fixed examples.
|
||||||
|
|
||||||
|
Fri Oct 4 10:19:55 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: -D$TARGET is no longer used as a compiler switch.
|
||||||
|
It is now inserted into ffi.h at configure time.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* FFI_ABI and FFI_STATUS are now ffi_abi and ffi_status.
|
||||||
|
|
||||||
|
Thu Oct 3 13:47:34 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* README, LICENSE: Created. Wrote some docs.
|
||||||
|
|
||||||
|
* configure.in: Don't barf on i586-unknown-linuxaout.
|
||||||
|
Added EXTRADIST code for "make dist".
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* */Makefile.in: Rebuilt with patched automake.
|
||||||
|
|
||||||
|
Tue Oct 1 17:12:25 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am, aclocal.m4, config.guess, config.sub,
|
||||||
|
configure.in, fficonfig.h.in, install-sh, mkinstalldirs,
|
||||||
|
stamp-h.in: Created
|
||||||
|
* Makefile.in, configure: Generated
|
||||||
|
|
||||||
|
--- libffi/include --------------------------------------------------------
|
||||||
|
|
||||||
|
Tue Feb 24 13:09:36 1998 Anthony Green <green@gerbil.cygnus.com>
|
||||||
|
|
||||||
|
* ffi_mips.h: Updated FFI_TYPE_STRUCT_* values based on
|
||||||
|
ffi.h.in changes. This is a work-around for SGI's "simple"
|
||||||
|
assembler.
|
||||||
|
|
||||||
|
Sun Feb 22 00:51:55 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* ffi.h.in: PowerPC support.
|
||||||
|
|
||||||
|
1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* ffi.h.in: Add m68k support.
|
||||||
|
(FFI_TYPE_LONGDOUBLE): Make it a separate value.
|
||||||
|
|
||||||
|
Tue Feb 10 20:55:16 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in (SIZEOF_ARG): Use a pointer type by default.
|
||||||
|
|
||||||
|
* ffi.h.in: Alpha support.
|
||||||
|
|
||||||
|
Fri Nov 22 06:48:45 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h: Cygnus Support -> Cygnus Solutions.
|
||||||
|
|
||||||
|
Wed Nov 20 22:31:01 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Added ffi_type_void definition.
|
||||||
|
|
||||||
|
Tue Oct 29 12:22:40 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am (hack_DATA): Always install ffi_mips.h.
|
||||||
|
|
||||||
|
* ffi.h.in: Removed FFI_DEBUG. It's now in the correct
|
||||||
|
place (acconfig.h).
|
||||||
|
Added #include <stddef.h> for size_t definition.
|
||||||
|
|
||||||
|
Tue Oct 15 17:23:35 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h, ffi_mips.h: More clean up.
|
||||||
|
Commented out #define of FFI_DEBUG.
|
||||||
|
|
||||||
|
Tue Oct 15 13:01:06 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi_common.h: Added bool definition.
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h: Clean up based on LCLint output.
|
||||||
|
Added funny /*@...@*/ comments to annotate source.
|
||||||
|
|
||||||
|
Mon Oct 14 12:29:23 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Interface changes based on feedback from Jim
|
||||||
|
Blandy.
|
||||||
|
|
||||||
|
Fri Oct 11 16:49:35 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Small change for sparc support.
|
||||||
|
|
||||||
|
Thu Oct 10 14:53:37 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi_mips.h: Added FFI_TYPE_STRUCT_* definitions for
|
||||||
|
special structure return types.
|
||||||
|
|
||||||
|
Wed Oct 9 13:55:57 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Added SIZEOF_ARG definition for X86
|
||||||
|
|
||||||
|
Tue Oct 8 11:40:36 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in (FFI_FN): Added macro for eliminating compiler warnings.
|
||||||
|
Use it to case your function pointers to the proper type.
|
||||||
|
|
||||||
|
* ffi_mips.h (SIZEOF_ARG): Added magic to fix type promotion bug.
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added ffi_mips.h to EXTRA_DIST.
|
||||||
|
* Makefile: Rebuilt.
|
||||||
|
|
||||||
|
* ffi_mips.h: Created. Moved all common mips definitions here.
|
||||||
|
|
||||||
|
Mon Oct 7 10:58:12 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: The SGI assember is very picky about parens. Redefined
|
||||||
|
some macros to avoid problems.
|
||||||
|
|
||||||
|
* ffi.h.in: Added FFI_DEFAULT_ABI definitions. Also added
|
||||||
|
externs for pointer, and 64bit integral ffi_types.
|
||||||
|
|
||||||
|
Fri Oct 4 09:51:37 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Added FFI_ABI member to ffi_cif and changed
|
||||||
|
function prototypes accordingly.
|
||||||
|
Added #define @TARGET@. Now programs including ffi.h don't
|
||||||
|
have to specify this themselves.
|
||||||
|
|
||||||
|
Thu Oct 3 15:36:44 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Changed ffi_prep_cif's values from void* to void**
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added EXTRA_DIST for "make dist"
|
||||||
|
to work.
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
Wed Oct 2 10:16:59 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Created
|
||||||
|
* Makefile.in: Generated
|
||||||
|
|
||||||
|
* ffi_common.h: Added rcsid comment
|
||||||
|
|
||||||
|
Tue Oct 1 17:13:51 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h: Created
|
||||||
|
|
||||||
|
--- libffi/src ------------------------------------------------------------
|
||||||
|
|
||||||
|
Mon Oct 5 02:17:50 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* arm/ffi.c, arm/sysv.S: Created.
|
||||||
|
|
||||||
|
* Makefile.am: Added arm files.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Mon Oct 5 01:41:38 1998 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am (libffi_la_LDFLAGS): Incremented revision.
|
||||||
|
|
||||||
|
Sun Oct 4 16:27:17 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* alpha/osf.S (ffi_call_osf): Patch for DU assembler.
|
||||||
|
|
||||||
|
* ffitest.c (main): long long and long double return values work
|
||||||
|
for x86.
|
||||||
|
|
||||||
|
Fri Apr 17 11:50:58 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* ffitest.c (main): Floating point tests not executed for systems
|
||||||
|
with broken lond double (SunOS 4 w/ GCC).
|
||||||
|
|
||||||
|
* types.c: Fixed x86 alignment info for long long types.
|
||||||
|
|
||||||
|
Thu Apr 16 07:15:28 1998 Anthony Green <green@ada.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c: Added more notes about GCC bugs under Irix 6.
|
||||||
|
|
||||||
|
Wed Apr 15 08:42:22 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (struct5): New test function.
|
||||||
|
(main): New test with struct5.
|
||||||
|
|
||||||
|
Thu Mar 5 10:48:11 1998 Anthony Green <green@tootie.to.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (initialize_aggregate): Fix assertion for
|
||||||
|
nested structures.
|
||||||
|
|
||||||
|
Tue Feb 24 16:33:41 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Added long double support for sparc.
|
||||||
|
|
||||||
|
Sun Feb 22 00:52:18 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* powerpc/asm.h: New file.
|
||||||
|
* powerpc/ffi.c: New file.
|
||||||
|
* powerpc/sysv.S: New file.
|
||||||
|
* Makefile.am: PowerPC port.
|
||||||
|
* ffitest.c (main): Allow all tests to run even in presence of gcc
|
||||||
|
bug on PowerPC.
|
||||||
|
|
||||||
|
1998-02-17 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* mips/ffi.c: Fixed comment typo.
|
||||||
|
|
||||||
|
* x86/ffi.c (ffi_prep_cif_machdep), x86/sysv.S (retfloat):
|
||||||
|
Fixed x86 long double return handling.
|
||||||
|
|
||||||
|
* types.c: Fixed x86 long double alignment info.
|
||||||
|
|
||||||
|
1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* types.c: Add m68k support.
|
||||||
|
|
||||||
|
* ffitest.c (floating): Add long double parameter.
|
||||||
|
(return_ll, ldblit): New functions to test long long and long
|
||||||
|
double return value.
|
||||||
|
(main): Fix type error in assignment of ts[1-4]_type.elements.
|
||||||
|
Add tests for long long and long double arguments and return
|
||||||
|
values.
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif) [M68K]: Don't allocate argument for
|
||||||
|
struct value pointer.
|
||||||
|
|
||||||
|
* m68k/ffi.c, m68k/sysv.S: New files.
|
||||||
|
* Makefile.am: Add bits for m68k port. Add kludge to work around
|
||||||
|
automake deficiency.
|
||||||
|
(test): Don't require "." in $PATH.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Wed Feb 11 07:36:50 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Tue Feb 10 20:56:00 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* alpha/ffi.c, alpha/osf.S: New files.
|
||||||
|
* Makefile.am: Alpha port.
|
||||||
|
|
||||||
|
Tue Nov 18 14:12:07 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* mips/ffi.c (ffi_prep_cif_machdep): Initialize rstruct_flag
|
||||||
|
for n32.
|
||||||
|
|
||||||
|
Tue Jun 3 17:18:20 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Added hack to get structure tests working
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
Sat May 10 19:06:42 1997 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* Makefile.am (EXTRA_DIST): Explicitly list all distributable
|
||||||
|
files in subdirs.
|
||||||
|
(VERSION, CC): Removed.
|
||||||
|
|
||||||
|
Thu May 8 17:19:01 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Many changes for new automake and libtool.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Fri Nov 22 06:57:56 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Fixed test case for non mips machines.
|
||||||
|
|
||||||
|
Wed Nov 20 22:31:59 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* types.c: Added ffi_type_void declaration.
|
||||||
|
|
||||||
|
Tue Oct 29 13:07:19 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Fixed character constants.
|
||||||
|
(main): Emit warning for structure test 3 failure on Sun.
|
||||||
|
|
||||||
|
* Makefile.am (VPATH): Fixed VPATH def'n so automake won't
|
||||||
|
strip it out.
|
||||||
|
Moved distdir hack from libffi to automake.
|
||||||
|
(ffitest): Added missing -c for $(COMPILE) (change in automake).
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Tue Oct 15 13:08:20 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Added "make lint" production.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* prep_cif.c (STACK_ARG_SIZE): Improved STACK_ARG_SIZE macro.
|
||||||
|
Clean up based on LCLint output. Added funny /*@...@*/ comments to
|
||||||
|
annotate source.
|
||||||
|
|
||||||
|
* ffitest.c, debug.c: Cleaned up code.
|
||||||
|
|
||||||
|
Mon Oct 14 12:26:56 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c: Changes based on interface changes.
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Cleaned up interface based on
|
||||||
|
feedback from Jim Blandy.
|
||||||
|
|
||||||
|
Fri Oct 11 15:53:18 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c: Reordered tests while porting to sparc.
|
||||||
|
Made changes to handle lame structure passing for sparc.
|
||||||
|
Removed calls to fflush().
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Added special case for sparc
|
||||||
|
aggregate type arguments.
|
||||||
|
|
||||||
|
Thu Oct 10 09:56:51 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Added structure passing/returning tests.
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Perform proper initialization
|
||||||
|
of structure return types if needed.
|
||||||
|
(initialize_aggregate): Bug fix
|
||||||
|
|
||||||
|
Wed Oct 9 16:04:20 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* types.c: Added special definitions for x86 (double doesn't
|
||||||
|
need double word alignment).
|
||||||
|
|
||||||
|
* ffitest.c: Added many tests
|
||||||
|
|
||||||
|
Tue Oct 8 09:19:22 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Fixed assertion.
|
||||||
|
|
||||||
|
* debug.c (ffi_assert): Must return a non void now.
|
||||||
|
|
||||||
|
* Makefile.am: Added test production.
|
||||||
|
* Makefile: Rebuilt.
|
||||||
|
|
||||||
|
* ffitest.c (main): Created.
|
||||||
|
|
||||||
|
* types.c: Created. Stripped common code out of */ffi.c.
|
||||||
|
|
||||||
|
* prep_cif.c: Added missing stdlib.h include.
|
||||||
|
|
||||||
|
* debug.c (ffi_type_test): Used "a" to eliminate compiler
|
||||||
|
warnings in non-debug builds. Included ffi_common.h.
|
||||||
|
|
||||||
|
Mon Oct 7 15:36:42 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Added a rule for .s -> .o
|
||||||
|
This is required by the SGI compiler.
|
||||||
|
* Makefile: Rebuilt.
|
||||||
|
|
||||||
|
Fri Oct 4 09:51:08 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (initialize_aggregate): Moved abi specification
|
||||||
|
to ffi_prep_cif().
|
||||||
|
|
||||||
|
Thu Oct 3 15:37:37 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Changed values from void* to void**.
|
||||||
|
(initialize_aggregate): Fixed aggregate type initialization.
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added support code for "make dist".
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
Wed Oct 2 11:41:57 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* debug.c, prep_cif: Created.
|
||||||
|
|
||||||
|
* Makefile.am: Added debug.o and prep_cif.o to OBJ.
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
* Makefile.am (INCLUDES): Added missing -I../include
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
Tue Oct 1 17:11:51 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* error.c, Makefile.am: Created.
|
||||||
|
* Makefile.in: Generated.
|
||||||
|
|
||||||
|
--- libffi/src/x86 --------------------------------------------------------
|
||||||
|
|
||||||
|
Sun Oct 4 16:27:17 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* sysv.S (retlongdouble): Fixed long long return value support.
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Ditto.
|
||||||
|
|
||||||
|
Wed May 13 04:30:33 1998 Anthony Green <green@raft.ppp.tsoft.net>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fixed long double return value
|
||||||
|
support.
|
||||||
|
|
||||||
|
Wed Apr 15 08:43:20 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): small struct support was missing.
|
||||||
|
|
||||||
|
Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* objects.mak: Removed.
|
||||||
|
|
||||||
|
Mon Dec 2 15:12:58 1996 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* sysv.S: Use .balign, for a.out Linux boxes.
|
||||||
|
|
||||||
|
Tue Oct 15 13:06:50 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Clean up based on LCLint output.
|
||||||
|
Added funny /*@...@*/ comments to annotate source.
|
||||||
|
|
||||||
|
Fri Oct 11 16:43:38 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Added assertion for bad ABIs.
|
||||||
|
|
||||||
|
Wed Oct 9 13:57:27 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* sysv.S (retdouble): Fixed double return problems.
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Corrected fn arg definition.
|
||||||
|
(ffi_prep_cif_machdep): Fixed double return problems
|
||||||
|
|
||||||
|
Tue Oct 8 12:12:49 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Moved ffi_type definitions to types.c.
|
||||||
|
(ffi_prep_args): Fixed type promotion bug.
|
||||||
|
|
||||||
|
Mon Oct 7 15:53:06 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
|
||||||
|
|
||||||
|
Fri Oct 4 09:54:53 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Removed FFI_ABI arg, and swapped
|
||||||
|
remaining args.
|
||||||
|
|
||||||
|
Wed Oct 2 10:07:05 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c, sysv.S, objects.mak: Created.
|
||||||
|
(ffi_prep_cif): cif->rvalue no longer initialized to NULL.
|
||||||
|
(ffi_prep_cif_machdep): Moved machine independent cif processing
|
||||||
|
to src/prep_cif.c. Introduced ffi_prep_cif_machdep().
|
||||||
|
|
||||||
|
--- libffi/src/mips -------------------------------------------------------
|
||||||
|
|
||||||
|
Tue Feb 17 17:18:07 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* o32.S: Fixed typo in comment.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fixed argument processing.
|
||||||
|
|
||||||
|
Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* o32.s, n32.s: Wrappers for SGI tool support.
|
||||||
|
|
||||||
|
* objects.mak: Removed.
|
||||||
|
|
||||||
|
Tue Oct 29 14:37:45 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Changed int z to size_t z.
|
||||||
|
|
||||||
|
Tue Oct 15 13:17:25 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* n32.S: Fixed bad stack munging.
|
||||||
|
|
||||||
|
* ffi.c: Moved prototypes for ffi_call_?32() to here from
|
||||||
|
ffi_mips.h because extended_cif is not defined in ffi_mips.h.
|
||||||
|
|
||||||
|
Mon Oct 14 12:42:02 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Interface changes based on feedback from Jim Blandy.
|
||||||
|
|
||||||
|
Thu Oct 10 11:22:16 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* n32.S, ffi.c: Lots of changes to support passing and
|
||||||
|
returning structures with the n32 calling convention.
|
||||||
|
|
||||||
|
* n32.S: Fixed fn pointer bug.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fix for o32 structure
|
||||||
|
return values.
|
||||||
|
(ffi_prep_args): Fixed n32 structure passing when structures
|
||||||
|
partially fit in registers.
|
||||||
|
|
||||||
|
Wed Oct 9 13:49:25 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* objects.mak: Added n32.o.
|
||||||
|
|
||||||
|
* n32.S: Created.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Added magic to support proper
|
||||||
|
n32 processing.
|
||||||
|
|
||||||
|
Tue Oct 8 10:37:35 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Moved ffi_type definitions to types.c.
|
||||||
|
(ffi_prep_args): Fixed type promotion bug.
|
||||||
|
|
||||||
|
* o32.S: This code is only built for o32 compiles.
|
||||||
|
A lot of the #define cruft has moved to ffi_mips.h.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fixed arg flags. Second arg
|
||||||
|
is only processed if the first is either a float or double.
|
||||||
|
|
||||||
|
Mon Oct 7 15:33:59 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* o32.S: Modified to compile under each of o32, n32 and n64.
|
||||||
|
|
||||||
|
* ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
|
||||||
|
|
||||||
|
Fri Oct 4 09:53:25 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Removed FFI_ABI arg, and swapped
|
||||||
|
remaining args.
|
||||||
|
|
||||||
|
Wed Oct 2 17:41:22 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* o32.S: Removed crufty definitions.
|
||||||
|
|
||||||
|
Wed Oct 2 12:53:42 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif): cif->rvalue no longer initialized to NULL.
|
||||||
|
(ffi_prep_cif_machdep): Moved all machine independent cif processing
|
||||||
|
to src/prep_cif.c. Introduced ffi_prep_cif_machdep. Return types
|
||||||
|
of FFI_TYPE_STRUCT are no different than FFI_TYPE_INT.
|
||||||
|
|
||||||
|
Tue Oct 1 17:11:02 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c, o32.S, object.mak: Created
|
||||||
|
|
||||||
|
--- libffi/src/sparc ------------------------------------------------------
|
||||||
|
|
||||||
|
Tue Feb 24 16:33:18 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Added long double support.
|
||||||
|
|
||||||
|
Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* objects.mak: Removed.
|
||||||
|
|
||||||
|
Thu May 1 16:07:56 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* v8.S: Fixed minor portability problem reported by
|
||||||
|
Russ McManus <mcmanr@eq.gs.com>.
|
||||||
|
|
||||||
|
Tue Nov 26 14:12:43 1996 Anthony Green <green@csk3.cygnus.com>
|
||||||
|
|
||||||
|
* v8.S: Used STACKFRAME define elsewhere.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Zero out space when USING_PURIFY
|
||||||
|
is set.
|
||||||
|
(ffi_prep_cif_machdep): Allocate the correct stack frame
|
||||||
|
space for functions with < 6 args.
|
||||||
|
|
||||||
|
Tue Oct 29 15:08:55 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): int z is now size_t z.
|
||||||
|
|
||||||
|
Mon Oct 14 13:31:24 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* v8.S (ffi_call_V8): Gordon rewrites this again. It looks
|
||||||
|
great now.
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): The comment about hijacked registers
|
||||||
|
is no longer valid after gordoni hacked v8.S.
|
||||||
|
|
||||||
|
* v8.S (ffi_call_V8): Rewrote with gordoni. Much simpler.
|
||||||
|
|
||||||
|
* v8.S, ffi.c: ffi_call() had changed to accept more than
|
||||||
|
two args, so v8.S had to change (because it hijacks incoming
|
||||||
|
arg registers).
|
||||||
|
|
||||||
|
* ffi.c: Interface changes based on feedback from Jim Blandy.
|
||||||
|
|
||||||
|
Thu Oct 10 17:48:16 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c, v8.S, objects.mak: Created.
|
||||||
|
|
||||||
|
|
||||||
20
.svn/text-base/LICENSE.svn-base
Normal file
20
.svn/text-base/LICENSE.svn-base
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
libffi - Copyright (c) 1996-2003 Red Hat, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
``Software''), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
178
.svn/text-base/Makefile.am.svn-base
Normal file
178
.svn/text-base/Makefile.am.svn-base
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
## Process this with automake to create Makefile.in
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = foreign subdir-objects
|
||||||
|
ACLOCAL_AMFLAGS = -I .. -I ../config
|
||||||
|
|
||||||
|
SUBDIRS = include testsuite man
|
||||||
|
|
||||||
|
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
||||||
|
src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
|
||||||
|
src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
|
||||||
|
src/cris/ffi.c src/cris/sysv.S src/cris/ffitarget.h \
|
||||||
|
src/ia64/ffi.c src/ia64/ffitarget.h src/ia64/ia64_flags.h \
|
||||||
|
src/ia64/unix.S \
|
||||||
|
src/mips/ffi.c src/mips/n32.S src/mips/o32.S \
|
||||||
|
src/mips/ffitarget.h \
|
||||||
|
src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
|
||||||
|
src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
|
||||||
|
src/powerpc/ffi.c src/powerpc/sysv.S \
|
||||||
|
src/powerpc/linux64.S src/powerpc/linux64_closure.S \
|
||||||
|
src/powerpc/ppc_closure.S src/powerpc/asm.h \
|
||||||
|
src/powerpc/aix.S src/powerpc/darwin.S \
|
||||||
|
src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \
|
||||||
|
src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \
|
||||||
|
src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \
|
||||||
|
src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h \
|
||||||
|
src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h \
|
||||||
|
src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \
|
||||||
|
src/sparc/ffi.c src/x86/darwin64.S \
|
||||||
|
src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/darwin.S \
|
||||||
|
src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h \
|
||||||
|
src/pa/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
|
||||||
|
src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c
|
||||||
|
|
||||||
|
## ################################################################
|
||||||
|
|
||||||
|
##
|
||||||
|
## This section is for make and multilib madness.
|
||||||
|
##
|
||||||
|
|
||||||
|
# Work around what appears to be a GNU make bug handling MAKEFLAGS
|
||||||
|
# values defined in terms of make variables, as is the case for CC and
|
||||||
|
# friends when we are called from the top level Makefile.
|
||||||
|
AM_MAKEFLAGS = \
|
||||||
|
"AR_FLAGS=$(AR_FLAGS)" \
|
||||||
|
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
|
||||||
|
"CFLAGS=$(CFLAGS)" \
|
||||||
|
"CXXFLAGS=$(CXXFLAGS)" \
|
||||||
|
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
|
||||||
|
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||||
|
"INSTALL=$(INSTALL)" \
|
||||||
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
||||||
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
||||||
|
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
|
||||||
|
"JC1FLAGS=$(JC1FLAGS)" \
|
||||||
|
"LDFLAGS=$(LDFLAGS)" \
|
||||||
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||||
|
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
|
||||||
|
"MAKE=$(MAKE)" \
|
||||||
|
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
|
||||||
|
"PICFLAG=$(PICFLAG)" \
|
||||||
|
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
|
||||||
|
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
||||||
|
"SHELL=$(SHELL)" \
|
||||||
|
"exec_prefix=$(exec_prefix)" \
|
||||||
|
"infodir=$(infodir)" \
|
||||||
|
"libdir=$(libdir)" \
|
||||||
|
"prefix=$(prefix)" \
|
||||||
|
"AR=$(AR)" \
|
||||||
|
"AS=$(AS)" \
|
||||||
|
"CC=$(CC)" \
|
||||||
|
"CXX=$(CXX)" \
|
||||||
|
"LD=$(LD)" \
|
||||||
|
"NM=$(NM)" \
|
||||||
|
"RANLIB=$(RANLIB)" \
|
||||||
|
"DESTDIR=$(DESTDIR)"
|
||||||
|
|
||||||
|
MAKEOVERRIDES=
|
||||||
|
|
||||||
|
toolexeclib_LTLIBRARIES = libffi.la
|
||||||
|
noinst_LTLIBRARIES = libffi_convenience.la
|
||||||
|
|
||||||
|
libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c \
|
||||||
|
src/raw_api.c src/java_raw_api.c src/closures.c
|
||||||
|
|
||||||
|
nodist_libffi_la_SOURCES =
|
||||||
|
|
||||||
|
if MIPS
|
||||||
|
nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
|
||||||
|
endif
|
||||||
|
if X86
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S
|
||||||
|
endif
|
||||||
|
if X86_FREEBSD
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/freebsd.S
|
||||||
|
endif
|
||||||
|
if X86_WIN32
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
|
||||||
|
endif
|
||||||
|
if X86_WIN64
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win64.S
|
||||||
|
endif
|
||||||
|
if X86_DARWIN
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||||
|
endif
|
||||||
|
if SPARC
|
||||||
|
nodist_libffi_la_SOURCES += src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
|
||||||
|
endif
|
||||||
|
if ALPHA
|
||||||
|
nodist_libffi_la_SOURCES += src/alpha/ffi.c src/alpha/osf.S
|
||||||
|
endif
|
||||||
|
if IA64
|
||||||
|
nodist_libffi_la_SOURCES += src/ia64/ffi.c src/ia64/unix.S
|
||||||
|
endif
|
||||||
|
if M32R
|
||||||
|
nodist_libffi_la_SOURCES += src/m32r/sysv.S src/m32r/ffi.c
|
||||||
|
endif
|
||||||
|
if M68K
|
||||||
|
nodist_libffi_la_SOURCES += src/m68k/ffi.c src/m68k/sysv.S
|
||||||
|
endif
|
||||||
|
if POWERPC
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_AIX
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_DARWIN
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_FREEBSD
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
|
||||||
|
endif
|
||||||
|
if ARM
|
||||||
|
nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c
|
||||||
|
endif
|
||||||
|
if LIBFFI_CRIS
|
||||||
|
nodist_libffi_la_SOURCES += src/cris/sysv.S src/cris/ffi.c
|
||||||
|
endif
|
||||||
|
if FRV
|
||||||
|
nodist_libffi_la_SOURCES += src/frv/eabi.S src/frv/ffi.c
|
||||||
|
endif
|
||||||
|
if S390
|
||||||
|
nodist_libffi_la_SOURCES += src/s390/sysv.S src/s390/ffi.c
|
||||||
|
endif
|
||||||
|
if X86_64
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
|
||||||
|
endif
|
||||||
|
if SH
|
||||||
|
nodist_libffi_la_SOURCES += src/sh/sysv.S src/sh/ffi.c
|
||||||
|
endif
|
||||||
|
if SH64
|
||||||
|
nodist_libffi_la_SOURCES += src/sh64/sysv.S src/sh64/ffi.c
|
||||||
|
endif
|
||||||
|
if PA_LINUX
|
||||||
|
nodist_libffi_la_SOURCES += src/pa/linux.S src/pa/ffi.c
|
||||||
|
endif
|
||||||
|
if PA_HPUX
|
||||||
|
nodist_libffi_la_SOURCES += src/pa/hpux32.S src/pa/ffi.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
||||||
|
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||||
|
|
||||||
|
AM_CFLAGS = -Wall -g -fexceptions
|
||||||
|
|
||||||
|
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
|
||||||
|
|
||||||
|
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS)
|
||||||
|
|
||||||
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
||||||
|
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
||||||
|
|
||||||
|
# Multilib support. Automake should provide these on its own.
|
||||||
|
all-recursive: all-multi
|
||||||
|
install-recursive: install-multi
|
||||||
|
mostlyclean-recursive: mostlyclean-multi
|
||||||
|
clean-recursive: clean-multi
|
||||||
|
distclean-recursive: distclean-multi
|
||||||
|
maintainer-clean-recursive: maintainer-clean-multi
|
||||||
1516
.svn/text-base/Makefile.in.svn-base
Normal file
1516
.svn/text-base/Makefile.in.svn-base
Normal file
File diff suppressed because it is too large
Load Diff
340
.svn/text-base/README.svn-base
Normal file
340
.svn/text-base/README.svn-base
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
This directory contains the libffi package, which is not part of GCC but
|
||||||
|
shipped with GCC as convenience.
|
||||||
|
|
||||||
|
Status
|
||||||
|
======
|
||||||
|
|
||||||
|
libffi-3.0.8 was released on December 19, 2008. Check the libffi web
|
||||||
|
page for updates: <URL:http://sourceware.org/libffi/>.
|
||||||
|
|
||||||
|
|
||||||
|
What is libffi?
|
||||||
|
===============
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
Supported Platforms
|
||||||
|
===================
|
||||||
|
|
||||||
|
Libffi has been ported to many different platforms, although this
|
||||||
|
release was only tested on:
|
||||||
|
|
||||||
|
arm oabi linux
|
||||||
|
arm eabi linux
|
||||||
|
hppa linux
|
||||||
|
mips o32 linux (little endian)
|
||||||
|
powerpc darwin
|
||||||
|
powerpc freebsd
|
||||||
|
powerpc64 linux
|
||||||
|
sparc solaris
|
||||||
|
sparc64 freebsd
|
||||||
|
sparc64 solaris
|
||||||
|
x86 cygwin
|
||||||
|
x86 darwin
|
||||||
|
x86 freebsd
|
||||||
|
x86 linux
|
||||||
|
x86 openbsd
|
||||||
|
x86 solaris
|
||||||
|
x86-64 mingw
|
||||||
|
x86-64 darwin
|
||||||
|
x86-64 linux
|
||||||
|
x86-64 OS X
|
||||||
|
x86-64 freebsd
|
||||||
|
x86-64 solaris
|
||||||
|
|
||||||
|
Please send additional platform test results to
|
||||||
|
libffi-discuss@sourceware.org.
|
||||||
|
|
||||||
|
Installing libffi
|
||||||
|
=================
|
||||||
|
|
||||||
|
[Note: before actually performing any of these installation steps,
|
||||||
|
you may wish to read the "Platform Specific Notes" below.]
|
||||||
|
|
||||||
|
First you must configure the distribution for your particular
|
||||||
|
system. Go to the directory you wish to build libffi in and run the
|
||||||
|
"configure" program found in the root directory of the libffi source
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
You may want to tell configure where to install the libffi library and
|
||||||
|
header files. To do that, use the --prefix configure switch. Libffi
|
||||||
|
will install under /usr/local by default.
|
||||||
|
|
||||||
|
If you want to enable extra run-time debugging checks use the the
|
||||||
|
--enable-debug configure switch. This is useful when your program dies
|
||||||
|
mysteriously while using libffi.
|
||||||
|
|
||||||
|
Another useful configure switch is --enable-purify-safety. Using this
|
||||||
|
will add some extra code which will suppress certain warnings when you
|
||||||
|
are using Purify with libffi. Only use this switch when using
|
||||||
|
Purify, as it will slow down the library.
|
||||||
|
|
||||||
|
Configure has many other options. Use "configure --help" to see them all.
|
||||||
|
|
||||||
|
Once configure has finished, type "make". Note that you must be using
|
||||||
|
GNU make. You can ftp GNU make from prep.ai.mit.edu:/pub/gnu.
|
||||||
|
|
||||||
|
To ensure that libffi is working as advertised, type "make check".
|
||||||
|
This will require that you have DejaGNU installed.
|
||||||
|
|
||||||
|
To install the library and header files, type "make install".
|
||||||
|
|
||||||
|
|
||||||
|
Platform Specific Notes
|
||||||
|
=======================
|
||||||
|
|
||||||
|
MIPS - Irix 5.3 & 6.x
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Irix 6.2 and better supports three different calling conventions: o32,
|
||||||
|
n32 and n64. Currently, libffi only supports both o32 and n32 under
|
||||||
|
Irix 6.x, but only o32 under Irix 5.3. Libffi will automatically be
|
||||||
|
configured for whichever calling convention it was built for.
|
||||||
|
|
||||||
|
By default, the configure script will try to build libffi with the GNU
|
||||||
|
development tools. To build libffi with the SGI development tools, set
|
||||||
|
the environment variable CC to either "cc -32" or "cc -n32" before
|
||||||
|
running configure under Irix 6.x (depending on whether you want an o32
|
||||||
|
or n32 library), or just "cc" for Irix 5.3.
|
||||||
|
|
||||||
|
With the n32 calling convention, when returning structures smaller
|
||||||
|
than 16 bytes, be sure to provide an RVALUE that is 8 byte aligned.
|
||||||
|
Here's one way of forcing this:
|
||||||
|
|
||||||
|
double struct_storage[2];
|
||||||
|
my_small_struct *s = (my_small_struct *) struct_storage;
|
||||||
|
/* Use s for RVALUE */
|
||||||
|
|
||||||
|
If you don't do this you are liable to get spurious bus errors.
|
||||||
|
|
||||||
|
"long long" values are not supported yet.
|
||||||
|
|
||||||
|
You must use GNU Make to build libffi on SGI platforms.
|
||||||
|
|
||||||
|
|
||||||
|
PowerPC System V ABI
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
There are two `System V ABI's which libffi implements for PowerPC.
|
||||||
|
They differ only in how small structures are returned from functions.
|
||||||
|
|
||||||
|
In the FFI_SYSV version, structures that are 8 bytes or smaller are
|
||||||
|
returned in registers. This is what GCC does when it is configured
|
||||||
|
for solaris, and is what the System V ABI I have (dated September
|
||||||
|
1995) says.
|
||||||
|
|
||||||
|
In the FFI_GCC_SYSV version, all structures are returned the same way:
|
||||||
|
by passing a pointer as the first argument to the function. This is
|
||||||
|
what GCC does when it is configured for linux or a generic sysv
|
||||||
|
target.
|
||||||
|
|
||||||
|
EGCS 1.0.1 (and probably other versions of EGCS/GCC) also has a
|
||||||
|
inconsistency with the SysV ABI: When a procedure is called with many
|
||||||
|
floating-point arguments, some of them get put on the stack. They are
|
||||||
|
all supposed to be stored in double-precision format, even if they are
|
||||||
|
only single-precision, but EGCS stores single-precision arguments as
|
||||||
|
single-precision anyway. This causes one test to fail (the `many
|
||||||
|
arguments' test).
|
||||||
|
|
||||||
|
|
||||||
|
History
|
||||||
|
=======
|
||||||
|
|
||||||
|
3.0.7 Nov-11-08
|
||||||
|
Fix for ppc FreeBSD.
|
||||||
|
(thanks to Andreas Tobler)
|
||||||
|
|
||||||
|
3.0.6 Jul-17-08
|
||||||
|
Fix for closures on sh.
|
||||||
|
Mark the sh/sh64 stack as non-executable.
|
||||||
|
(both thanks to Kaz Kojima)
|
||||||
|
|
||||||
|
3.0.5 Apr-3-08
|
||||||
|
Fix libffi.pc file.
|
||||||
|
Fix #define ARM for IcedTea users.
|
||||||
|
Fix x86 closure bug.
|
||||||
|
|
||||||
|
3.0.4 Feb-24-08
|
||||||
|
Fix x86 OpenBSD configury.
|
||||||
|
|
||||||
|
3.0.3 Feb-22-08
|
||||||
|
Enable x86 OpenBSD thanks to Thomas Heller, and
|
||||||
|
x86-64 FreeBSD thanks to Björn König and Andreas Tobler.
|
||||||
|
Clean up test instruction in README.
|
||||||
|
|
||||||
|
3.0.2 Feb-21-08
|
||||||
|
Improved x86 FreeBSD support.
|
||||||
|
Thanks to Björn König.
|
||||||
|
|
||||||
|
3.0.1 Feb-15-08
|
||||||
|
Fix instruction cache flushing bug on MIPS.
|
||||||
|
Thanks to David Daney.
|
||||||
|
|
||||||
|
3.0.0 Feb-15-08
|
||||||
|
Many changes, mostly thanks to the GCC project.
|
||||||
|
Cygnus Solutions is now Red Hat.
|
||||||
|
|
||||||
|
[10 years go by...]
|
||||||
|
|
||||||
|
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-97
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
Authors & Credits
|
||||||
|
=================
|
||||||
|
|
||||||
|
libffi was originally written by Anthony Green <green@redhat.com>.
|
||||||
|
|
||||||
|
The developers of the GNU Compiler Collection project have made
|
||||||
|
innumerable valuable contributions. See the ChangeLog file for
|
||||||
|
details.
|
||||||
|
|
||||||
|
Some of the ideas behind libffi were inspired by Gianni Mariani's free
|
||||||
|
gencall library for Silicon Graphics machines.
|
||||||
|
|
||||||
|
The closure mechanism was designed and implemented by Kresten Krab
|
||||||
|
Thorup.
|
||||||
|
|
||||||
|
Major processor architecture ports were contributed by the following
|
||||||
|
developers:
|
||||||
|
|
||||||
|
alpha Richard Henderson
|
||||||
|
arm Raffaele Sena
|
||||||
|
cris Simon Posnjak, Hans-Peter Nilsson
|
||||||
|
frv Anthony Green
|
||||||
|
ia64 Hans Boehm
|
||||||
|
m32r Kazuhiro Inaoka
|
||||||
|
m68k Andreas Schwab
|
||||||
|
mips Anthony Green, Casey Marshall
|
||||||
|
mips64 David Daney
|
||||||
|
pa Randolph Chung, Dave Anglin, Andreas Tobler
|
||||||
|
powerpc Geoffrey Keating, Andreas Tobler,
|
||||||
|
David Edelsohn, John Hornkvist
|
||||||
|
powerpc64 Jakub Jelinek
|
||||||
|
s390 Gerhard Tonn, Ulrich Weigand
|
||||||
|
sh Kaz Kojima
|
||||||
|
sh64 Kaz Kojima
|
||||||
|
sparc Anthony Green, Gordon Irlam
|
||||||
|
x86 Anthony Green, Jon Beniston
|
||||||
|
x86-64 Bo Thorsen
|
||||||
|
|
||||||
|
Jesper Skov and Andrew Haley both did more than their fair share of
|
||||||
|
stepping through the code and tracking down bugs.
|
||||||
|
|
||||||
|
Thanks also to Tom Tromey for bug fixes, documentation and
|
||||||
|
configuration help.
|
||||||
|
|
||||||
|
Thanks to Jim Blandy, who provided some useful feedback on the libffi
|
||||||
|
interface.
|
||||||
|
|
||||||
|
Andreas Tobler has done a tremendous amount of work on the testsuite.
|
||||||
|
|
||||||
|
Alex Oliva solved the executable page problem for SElinux.
|
||||||
|
|
||||||
|
The list above is almost certainly incomplete and inaccurate. I'm
|
||||||
|
happy to make corrections or additions upon request.
|
||||||
|
|
||||||
|
If you have a problem, or have found a bug, please send a note to
|
||||||
|
green@redhat.com.
|
||||||
92
.svn/text-base/acinclude.m4.svn-base
Normal file
92
.svn/text-base/acinclude.m4.svn-base
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# mmap(2) blacklisting. Some platforms provide the mmap library routine
|
||||||
|
# but don't support all of the features we need from it.
|
||||||
|
AC_DEFUN([AC_FUNC_MMAP_BLACKLIST],
|
||||||
|
[
|
||||||
|
AC_CHECK_HEADER([sys/mman.h],
|
||||||
|
[libffi_header_sys_mman_h=yes], [libffi_header_sys_mman_h=no])
|
||||||
|
AC_CHECK_FUNC([mmap], [libffi_func_mmap=yes], [libffi_func_mmap=no])
|
||||||
|
if test "$libffi_header_sys_mman_h" != yes \
|
||||||
|
|| test "$libffi_func_mmap" != yes; then
|
||||||
|
ac_cv_func_mmap_file=no
|
||||||
|
ac_cv_func_mmap_dev_zero=no
|
||||||
|
ac_cv_func_mmap_anon=no
|
||||||
|
else
|
||||||
|
AC_CACHE_CHECK([whether read-only mmap of a plain file works],
|
||||||
|
ac_cv_func_mmap_file,
|
||||||
|
[# Add a system to this blacklist if
|
||||||
|
# mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
|
||||||
|
# memory area containing the same data that you'd get if you applied
|
||||||
|
# read() to the same fd. The only system known to have a problem here
|
||||||
|
# is VMS, where text files have record structure.
|
||||||
|
case "$host_os" in
|
||||||
|
vms* | ultrix*)
|
||||||
|
ac_cv_func_mmap_file=no ;;
|
||||||
|
*)
|
||||||
|
ac_cv_func_mmap_file=yes;;
|
||||||
|
esac])
|
||||||
|
AC_CACHE_CHECK([whether mmap from /dev/zero works],
|
||||||
|
ac_cv_func_mmap_dev_zero,
|
||||||
|
[# Add a system to this blacklist if it has mmap() but /dev/zero
|
||||||
|
# does not exist, or if mmapping /dev/zero does not give anonymous
|
||||||
|
# zeroed pages with both the following properties:
|
||||||
|
# 1. If you map N consecutive pages in with one call, and then
|
||||||
|
# unmap any subset of those pages, the pages that were not
|
||||||
|
# explicitly unmapped remain accessible.
|
||||||
|
# 2. If you map two adjacent blocks of memory and then unmap them
|
||||||
|
# both at once, they must both go away.
|
||||||
|
# Systems known to be in this category are Windows (all variants),
|
||||||
|
# VMS, and Darwin.
|
||||||
|
case "$host_os" in
|
||||||
|
vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
|
||||||
|
ac_cv_func_mmap_dev_zero=no ;;
|
||||||
|
*)
|
||||||
|
ac_cv_func_mmap_dev_zero=yes;;
|
||||||
|
esac])
|
||||||
|
|
||||||
|
# Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
|
||||||
|
AC_CACHE_CHECK([for MAP_ANON(YMOUS)], ac_cv_decl_map_anon,
|
||||||
|
[AC_TRY_COMPILE(
|
||||||
|
[#include <sys/types.h>
|
||||||
|
#include <sys/mman.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#ifndef MAP_ANONYMOUS
|
||||||
|
#define MAP_ANONYMOUS MAP_ANON
|
||||||
|
#endif
|
||||||
|
],
|
||||||
|
[int n = MAP_ANONYMOUS;],
|
||||||
|
ac_cv_decl_map_anon=yes,
|
||||||
|
ac_cv_decl_map_anon=no)])
|
||||||
|
|
||||||
|
if test $ac_cv_decl_map_anon = no; then
|
||||||
|
ac_cv_func_mmap_anon=no
|
||||||
|
else
|
||||||
|
AC_CACHE_CHECK([whether mmap with MAP_ANON(YMOUS) works],
|
||||||
|
ac_cv_func_mmap_anon,
|
||||||
|
[# Add a system to this blacklist if it has mmap() and MAP_ANON or
|
||||||
|
# MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
|
||||||
|
# doesn't give anonymous zeroed pages with the same properties listed
|
||||||
|
# above for use of /dev/zero.
|
||||||
|
# Systems known to be in this category are Windows, VMS, and SCO Unix.
|
||||||
|
case "$host_os" in
|
||||||
|
vms* | cygwin* | pe | mingw* | sco* | udk* )
|
||||||
|
ac_cv_func_mmap_anon=no ;;
|
||||||
|
*)
|
||||||
|
ac_cv_func_mmap_anon=yes;;
|
||||||
|
esac])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $ac_cv_func_mmap_file = yes; then
|
||||||
|
AC_DEFINE(HAVE_MMAP_FILE, 1,
|
||||||
|
[Define if read-only mmap of a plain file works.])
|
||||||
|
fi
|
||||||
|
if test $ac_cv_func_mmap_dev_zero = yes; then
|
||||||
|
AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
|
||||||
|
[Define if mmap of /dev/zero works.])
|
||||||
|
fi
|
||||||
|
if test $ac_cv_func_mmap_anon = yes; then
|
||||||
|
AC_DEFINE(HAVE_MMAP_ANON, 1,
|
||||||
|
[Define if mmap with MAP_ANON(YMOUS) works.])
|
||||||
|
fi
|
||||||
|
])
|
||||||
1037
.svn/text-base/aclocal.m4.svn-base
vendored
Normal file
1037
.svn/text-base/aclocal.m4.svn-base
vendored
Normal file
File diff suppressed because it is too large
Load Diff
386
.svn/text-base/configure.ac.svn-base
Normal file
386
.svn/text-base/configure.ac.svn-base
Normal file
@@ -0,0 +1,386 @@
|
|||||||
|
dnl Process this with autoconf to create configure
|
||||||
|
|
||||||
|
AC_PREREQ(2.64)
|
||||||
|
|
||||||
|
AC_INIT([libffi], [3.0.8], [http://gcc.gnu.org/bugs.html])
|
||||||
|
AC_CONFIG_HEADERS([fficonfig.h])
|
||||||
|
|
||||||
|
AM_ENABLE_MULTILIB(, ..)
|
||||||
|
|
||||||
|
AC_CANONICAL_SYSTEM
|
||||||
|
target_alias=${target_alias-$host_alias}
|
||||||
|
|
||||||
|
. ${srcdir}/configure.host
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE
|
||||||
|
|
||||||
|
# The same as in boehm-gc and libstdc++. Have to borrow it from there.
|
||||||
|
# We must force CC to /not/ be precious variables; otherwise
|
||||||
|
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
||||||
|
# As a side effect, we have to subst CFLAGS ourselves.
|
||||||
|
|
||||||
|
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
||||||
|
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
||||||
|
AC_PROG_CC
|
||||||
|
m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
||||||
|
|
||||||
|
AC_SUBST(CFLAGS)
|
||||||
|
|
||||||
|
AM_PROG_AS
|
||||||
|
AM_PROG_CC_C_O
|
||||||
|
AC_PROG_LIBTOOL
|
||||||
|
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS(sys/mman.h)
|
||||||
|
AC_CHECK_FUNCS(mmap)
|
||||||
|
AC_FUNC_MMAP_BLACKLIST
|
||||||
|
|
||||||
|
dnl The -no-testsuite modules omit the test subdir.
|
||||||
|
AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
|
||||||
|
|
||||||
|
TARGETDIR="unknown"
|
||||||
|
case "$host" in
|
||||||
|
alpha*-*-*)
|
||||||
|
TARGET=ALPHA; TARGETDIR=alpha;
|
||||||
|
# Support 128-bit long double, changable via command-line switch.
|
||||||
|
HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
arm*-*-*)
|
||||||
|
TARGET=ARM; TARGETDIR=arm
|
||||||
|
;;
|
||||||
|
|
||||||
|
amd64-*-freebsd*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
cris-*-*)
|
||||||
|
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||||
|
;;
|
||||||
|
|
||||||
|
frv-*-*)
|
||||||
|
TARGET=FRV; TARGETDIR=frv
|
||||||
|
;;
|
||||||
|
|
||||||
|
hppa*-*-linux* | parisc*-*-linux*)
|
||||||
|
TARGET=PA_LINUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
hppa*64-*-hpux*)
|
||||||
|
TARGET=PA64_HPUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
hppa*-*-hpux*)
|
||||||
|
TARGET=PA_HPUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
|
||||||
|
i386-*-freebsd* | i386-*-openbsd*)
|
||||||
|
TARGET=X86_FREEBSD; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
|
||||||
|
TARGET=X86_WIN32; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-darwin*)
|
||||||
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-solaris2.1[[0-9]]*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-*)
|
||||||
|
TARGET=X86; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
ia64*-*-*)
|
||||||
|
TARGET=IA64; TARGETDIR=ia64
|
||||||
|
;;
|
||||||
|
|
||||||
|
m32r*-*-*)
|
||||||
|
TARGET=M32R; TARGETDIR=m32r
|
||||||
|
;;
|
||||||
|
|
||||||
|
m68k-*-*)
|
||||||
|
TARGET=M68K; TARGETDIR=m68k
|
||||||
|
;;
|
||||||
|
|
||||||
|
mips-sgi-irix5.* | mips-sgi-irix6.*)
|
||||||
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
|
;;
|
||||||
|
mips*-*-linux*)
|
||||||
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
|
;;
|
||||||
|
|
||||||
|
powerpc*-*-linux* | powerpc-*-sysv*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-beos*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-darwin*)
|
||||||
|
TARGET=POWERPC_DARWIN; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-aix* | rs6000-*-aix*)
|
||||||
|
TARGET=POWERPC_AIX; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-freebsd*)
|
||||||
|
TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc*-*-rtems*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
|
||||||
|
s390-*-* | s390x-*-*)
|
||||||
|
TARGET=S390; TARGETDIR=s390
|
||||||
|
;;
|
||||||
|
|
||||||
|
sh-*-* | sh[[34]]*-*-*)
|
||||||
|
TARGET=SH; TARGETDIR=sh
|
||||||
|
;;
|
||||||
|
sh64-*-* | sh5*-*-*)
|
||||||
|
TARGET=SH64; TARGETDIR=sh64
|
||||||
|
;;
|
||||||
|
|
||||||
|
sparc*-*-*)
|
||||||
|
TARGET=SPARC; TARGETDIR=sparc
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-darwin*)
|
||||||
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-cygwin* | x86_64-*-mingw*)
|
||||||
|
TARGET=X86_WIN64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_SUBST(AM_RUNTESTFLAGS)
|
||||||
|
|
||||||
|
if test $TARGETDIR = unknown; then
|
||||||
|
AC_MSG_ERROR(["libffi has not been ported to $host."])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
|
||||||
|
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
||||||
|
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
||||||
|
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
||||||
|
AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
|
||||||
|
AM_CONDITIONAL(X86_WIN64, test x$TARGET = xX86_WIN64)
|
||||||
|
AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
|
||||||
|
AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
|
||||||
|
AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
|
||||||
|
AM_CONDITIONAL(M32R, test x$TARGET = xM32R)
|
||||||
|
AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
|
||||||
|
AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
|
||||||
|
AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
|
||||||
|
AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
|
||||||
|
AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
|
||||||
|
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
|
||||||
|
AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
|
||||||
|
AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
|
||||||
|
AM_CONDITIONAL(S390, test x$TARGET = xS390)
|
||||||
|
AM_CONDITIONAL(X86_64, test x$TARGET = xX86_64)
|
||||||
|
AM_CONDITIONAL(SH, test x$TARGET = xSH)
|
||||||
|
AM_CONDITIONAL(SH64, test x$TARGET = xSH64)
|
||||||
|
AM_CONDITIONAL(PA_LINUX, test x$TARGET = xPA_LINUX)
|
||||||
|
AM_CONDITIONAL(PA_HPUX, test x$TARGET = xPA_HPUX)
|
||||||
|
AM_CONDITIONAL(PA64_HPUX, test x$TARGET = xPA64_HPUX)
|
||||||
|
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_FUNCS(memcpy)
|
||||||
|
AC_FUNC_ALLOCA
|
||||||
|
|
||||||
|
AC_CHECK_SIZEOF(double)
|
||||||
|
AC_CHECK_SIZEOF(long double)
|
||||||
|
|
||||||
|
# Also AC_SUBST this variable for ffi.h.
|
||||||
|
if test -z "$HAVE_LONG_DOUBLE"; then
|
||||||
|
HAVE_LONG_DOUBLE=0
|
||||||
|
if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
|
||||||
|
if test $ac_cv_sizeof_long_double != 0; then
|
||||||
|
HAVE_LONG_DOUBLE=1
|
||||||
|
AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST(HAVE_LONG_DOUBLE)
|
||||||
|
|
||||||
|
AC_C_BIGENDIAN
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .cfi pseudo-op support],
|
||||||
|
libffi_cv_as_cfi_pseudo_op, [
|
||||||
|
libffi_cv_as_cfi_pseudo_op=unknown
|
||||||
|
AC_TRY_COMPILE([asm (".cfi_startproc\n\t.cfi_endproc");],,
|
||||||
|
[libffi_cv_as_cfi_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_cfi_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_cfi_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .cfi_* directives.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$TARGET = xSPARC; then
|
||||||
|
AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
|
||||||
|
libffi_cv_as_sparc_ua_pcrel, [
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
save_LDFLAGS="$LDFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fpic"
|
||||||
|
LDFLAGS="$LDFLAGS -shared"
|
||||||
|
AC_TRY_LINK([asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");],,
|
||||||
|
[libffi_cv_as_sparc_ua_pcrel=yes],
|
||||||
|
[libffi_cv_as_sparc_ua_pcrel=no])
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
LDFLAGS="$save_LDFLAGS"])
|
||||||
|
if test "x$libffi_cv_as_sparc_ua_pcrel" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
|
||||||
|
[Define if your assembler and linker support unaligned PC relative relocs.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .register pseudo-op support],
|
||||||
|
libffi_cv_as_register_pseudo_op, [
|
||||||
|
libffi_cv_as_register_pseudo_op=unknown
|
||||||
|
# Check if we have .register
|
||||||
|
AC_TRY_COMPILE([asm (".register %g2, #scratch");],,
|
||||||
|
[libffi_cv_as_register_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_register_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_register_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .register.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then
|
||||||
|
AC_CACHE_CHECK([assembler supports pc related relocs],
|
||||||
|
libffi_cv_as_x86_pcrel, [
|
||||||
|
libffi_cv_as_x86_pcrel=yes
|
||||||
|
echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
|
||||||
|
if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
||||||
|
libffi_cv_as_x86_pcrel=no
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_x86_pcrel" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_X86_PCREL, 1,
|
||||||
|
[Define if your assembler supports PC relative relocs.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
|
||||||
|
libffi_cv_ro_eh_frame, [
|
||||||
|
libffi_cv_ro_eh_frame=no
|
||||||
|
echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
|
||||||
|
if $CC $CFLAGS -S -fpic -fexceptions -o conftest.s conftest.c > /dev/null 2>&1; then
|
||||||
|
if grep '.section.*eh_frame.*"a"' conftest.s > /dev/null; then
|
||||||
|
libffi_cv_ro_eh_frame=yes
|
||||||
|
elif grep '.section.*eh_frame.*#alloc' conftest.c \
|
||||||
|
| grep -v '#write' > /dev/null; then
|
||||||
|
libffi_cv_ro_eh_frame=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f conftest.*
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_ro_eh_frame" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_RO_EH_FRAME, 1,
|
||||||
|
[Define if .eh_frame sections should be read-only.])
|
||||||
|
AC_DEFINE(EH_FRAME_FLAGS, "a",
|
||||||
|
[Define to the flags needed for the .section .eh_frame directive.])
|
||||||
|
else
|
||||||
|
AC_DEFINE(EH_FRAME_FLAGS, "aw",
|
||||||
|
[Define to the flags needed for the .section .eh_frame directive.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([for __attribute__((visibility("hidden")))],
|
||||||
|
libffi_cv_hidden_visibility_attribute, [
|
||||||
|
echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1; }' > conftest.c
|
||||||
|
libffi_cv_hidden_visibility_attribute=no
|
||||||
|
if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
|
||||||
|
if grep '\.hidden.*foo' conftest.s >/dev/null; then
|
||||||
|
libffi_cv_hidden_visibility_attribute=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f conftest.*
|
||||||
|
])
|
||||||
|
if test $libffi_cv_hidden_visibility_attribute = yes; then
|
||||||
|
AC_DEFINE(HAVE_HIDDEN_VISIBILITY_ATTRIBUTE, 1,
|
||||||
|
[Define if __attribute__((visibility("hidden"))) is supported.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AH_BOTTOM([
|
||||||
|
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name) .hidden name
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name)
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_SUBST(TARGET)
|
||||||
|
AC_SUBST(TARGETDIR)
|
||||||
|
|
||||||
|
AC_SUBST(SHELL)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(debug,
|
||||||
|
[ --enable-debug debugging mode],
|
||||||
|
if test "$enable_debug" = "yes"; then
|
||||||
|
AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(structs,
|
||||||
|
[ --disable-structs omit code for struct support],
|
||||||
|
if test "$enable_structs" = "no"; then
|
||||||
|
AC_DEFINE(FFI_NO_STRUCTS, 1, [Define this is you do not want support for aggregate types.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(raw-api,
|
||||||
|
[ --disable-raw-api make the raw api unavailable],
|
||||||
|
if test "$enable_raw_api" = "no"; then
|
||||||
|
AC_DEFINE(FFI_NO_RAW_API, 1, [Define this is you do not want support for the raw API.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(purify-safety,
|
||||||
|
[ --enable-purify-safety purify-safe mode],
|
||||||
|
if test "$enable_purify_safety" = "yes"; then
|
||||||
|
AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
if test -n "$with_cross_host" &&
|
||||||
|
test x"$with_cross_host" != x"no"; then
|
||||||
|
toolexecdir='$(exec_prefix)/$(target_alias)'
|
||||||
|
toolexeclibdir='$(toolexecdir)/lib'
|
||||||
|
else
|
||||||
|
toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
|
||||||
|
toolexeclibdir='$(libdir)'
|
||||||
|
fi
|
||||||
|
multi_os_directory=`$CC -print-multi-os-directory`
|
||||||
|
case $multi_os_directory in
|
||||||
|
.) ;; # Avoid trailing /.
|
||||||
|
*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
|
||||||
|
esac
|
||||||
|
AC_SUBST(toolexecdir)
|
||||||
|
AC_SUBST(toolexeclibdir)
|
||||||
|
|
||||||
|
if test "${multilib}" = "yes"; then
|
||||||
|
multilib_arg="--enable-multilib"
|
||||||
|
else
|
||||||
|
multilib_arg=
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CONFIG_COMMANDS(include, [test -d include || mkdir include])
|
||||||
|
AC_CONFIG_COMMANDS(src, [
|
||||||
|
test -d src || mkdir src
|
||||||
|
test -d src/$TARGETDIR || mkdir src/$TARGETDIR
|
||||||
|
], [TARGETDIR="$TARGETDIR"])
|
||||||
|
|
||||||
|
AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h)
|
||||||
|
|
||||||
|
AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile)
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
11
.svn/text-base/configure.host.svn-base
Normal file
11
.svn/text-base/configure.host.svn-base
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# configure.host
|
||||||
|
#
|
||||||
|
# This shell script handles all host based configuration for libffi.
|
||||||
|
#
|
||||||
|
|
||||||
|
# THIS TABLE IS SORTED. KEEP IT THAT WAY.
|
||||||
|
case "${host}" in
|
||||||
|
frv*-elf)
|
||||||
|
LDFLAGS=`echo $LDFLAGS | sed "s/\-B[^ ]*libgloss\/frv\///"`\ -B`pwd`/../libgloss/frv/
|
||||||
|
;;
|
||||||
|
esac
|
||||||
14923
.svn/text-base/configure.svn-base
Normal file
14923
.svn/text-base/configure.svn-base
Normal file
File diff suppressed because it is too large
Load Diff
181
.svn/text-base/fficonfig.h.in.svn-base
Normal file
181
.svn/text-base/fficonfig.h.in.svn-base
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
/* fficonfig.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Define if building universal (internal helper macro) */
|
||||||
|
#undef AC_APPLE_UNIVERSAL_BUILD
|
||||||
|
|
||||||
|
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
||||||
|
systems. This function is required for `alloca.c' support on those systems.
|
||||||
|
*/
|
||||||
|
#undef CRAY_STACKSEG_END
|
||||||
|
|
||||||
|
/* Define to 1 if using `alloca.c'. */
|
||||||
|
#undef C_ALLOCA
|
||||||
|
|
||||||
|
/* Define to the flags needed for the .section .eh_frame directive. */
|
||||||
|
#undef EH_FRAME_FLAGS
|
||||||
|
|
||||||
|
/* Define this if you want extra debugging. */
|
||||||
|
#undef FFI_DEBUG
|
||||||
|
|
||||||
|
/* Define this is you do not want support for the raw API. */
|
||||||
|
#undef FFI_NO_RAW_API
|
||||||
|
|
||||||
|
/* Define this is you do not want support for aggregate types. */
|
||||||
|
#undef FFI_NO_STRUCTS
|
||||||
|
|
||||||
|
/* Define to 1 if you have `alloca', as a function or macro. */
|
||||||
|
#undef HAVE_ALLOCA
|
||||||
|
|
||||||
|
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||||
|
*/
|
||||||
|
#undef HAVE_ALLOCA_H
|
||||||
|
|
||||||
|
/* Define if your assembler supports .cfi_* directives. */
|
||||||
|
#undef HAVE_AS_CFI_PSEUDO_OP
|
||||||
|
|
||||||
|
/* Define if your assembler supports .register. */
|
||||||
|
#undef HAVE_AS_REGISTER_PSEUDO_OP
|
||||||
|
|
||||||
|
/* Define if your assembler and linker support unaligned PC relative relocs.
|
||||||
|
*/
|
||||||
|
#undef HAVE_AS_SPARC_UA_PCREL
|
||||||
|
|
||||||
|
/* Define if your assembler supports PC relative relocs. */
|
||||||
|
#undef HAVE_AS_X86_PCREL
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
|
#undef HAVE_DLFCN_H
|
||||||
|
|
||||||
|
/* Define if __attribute__((visibility("hidden"))) is supported. */
|
||||||
|
#undef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define if you have the long double type and it is bigger than a double */
|
||||||
|
#undef HAVE_LONG_DOUBLE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `memcpy' function. */
|
||||||
|
#undef HAVE_MEMCPY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#undef HAVE_MEMORY_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mmap' function. */
|
||||||
|
#undef HAVE_MMAP
|
||||||
|
|
||||||
|
/* Define if mmap with MAP_ANON(YMOUS) works. */
|
||||||
|
#undef HAVE_MMAP_ANON
|
||||||
|
|
||||||
|
/* Define if mmap of /dev/zero works. */
|
||||||
|
#undef HAVE_MMAP_DEV_ZERO
|
||||||
|
|
||||||
|
/* Define if read-only mmap of a plain file works. */
|
||||||
|
#undef HAVE_MMAP_FILE
|
||||||
|
|
||||||
|
/* Define if .eh_frame sections should be read-only. */
|
||||||
|
#undef HAVE_RO_EH_FRAME
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||||
|
#undef HAVE_SYS_MMAN_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||||
|
*/
|
||||||
|
#undef LT_OBJDIR
|
||||||
|
|
||||||
|
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||||
|
#undef NO_MINUS_C_MINUS_O
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#undef PACKAGE
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#undef PACKAGE_BUGREPORT
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
|
||||||
|
/* Define to the home page for this package. */
|
||||||
|
#undef PACKAGE_URL
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
|
||||||
|
/* The size of `double', as computed by sizeof. */
|
||||||
|
#undef SIZEOF_DOUBLE
|
||||||
|
|
||||||
|
/* The size of `long double', as computed by sizeof. */
|
||||||
|
#undef SIZEOF_LONG_DOUBLE
|
||||||
|
|
||||||
|
/* If using the C implementation of alloca, define if you know the
|
||||||
|
direction of stack growth for your system; otherwise it will be
|
||||||
|
automatically deduced at runtime.
|
||||||
|
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||||
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||||
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||||
|
#undef STACK_DIRECTION
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
|
/* Define this if you are using Purify and want to suppress spurious messages.
|
||||||
|
*/
|
||||||
|
#undef USING_PURIFY
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#undef VERSION
|
||||||
|
|
||||||
|
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||||
|
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||||
|
#if defined AC_APPLE_UNIVERSAL_BUILD
|
||||||
|
# if defined __BIG_ENDIAN__
|
||||||
|
# define WORDS_BIGENDIAN 1
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# ifndef WORDS_BIGENDIAN
|
||||||
|
# undef WORDS_BIGENDIAN
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name) .hidden name
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name)
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
6
.svn/text-base/libtool-version.svn-base
Normal file
6
.svn/text-base/libtool-version.svn-base
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# This file is used to maintain libtool version info for libffi. See
|
||||||
|
# the libtool manual to understand the meaning of the fields. This is
|
||||||
|
# a separate file so that version updates don't involve re-running
|
||||||
|
# automake.
|
||||||
|
# CURRENT:REVISION:AGE
|
||||||
|
4:1:0
|
||||||
1
.svn/text-base/stamp-h.in.svn-base
Normal file
1
.svn/text-base/stamp-h.in.svn-base
Normal file
@@ -0,0 +1 @@
|
|||||||
|
timestamp
|
||||||
182
.svn/tmp/Makefile.am.tmp
Normal file
182
.svn/tmp/Makefile.am.tmp
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
## Process this with automake to create Makefile.in
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = foreign subdir-objects
|
||||||
|
ACLOCAL_AMFLAGS = -I .. -I ../config
|
||||||
|
|
||||||
|
SUBDIRS = include testsuite man
|
||||||
|
|
||||||
|
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
||||||
|
src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
|
||||||
|
src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
|
||||||
|
src/cris/ffi.c src/cris/sysv.S src/cris/ffitarget.h \
|
||||||
|
src/ia64/ffi.c src/ia64/ffitarget.h src/ia64/ia64_flags.h \
|
||||||
|
src/ia64/unix.S \
|
||||||
|
src/mips/ffi.c src/mips/n32.S src/mips/o32.S \
|
||||||
|
src/mips/ffitarget.h \
|
||||||
|
src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
|
||||||
|
src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
|
||||||
|
src/powerpc/ffi.c src/powerpc/sysv.S \
|
||||||
|
src/powerpc/linux64.S src/powerpc/linux64_closure.S \
|
||||||
|
src/powerpc/ppc_closure.S src/powerpc/asm.h \
|
||||||
|
src/powerpc/aix.S src/powerpc/darwin.S \
|
||||||
|
src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \
|
||||||
|
src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \
|
||||||
|
src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \
|
||||||
|
src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h \
|
||||||
|
src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h \
|
||||||
|
src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \
|
||||||
|
src/sparc/ffi.c src/x86/darwin64.S \
|
||||||
|
src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/darwin.S \
|
||||||
|
src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h \
|
||||||
|
src/pa/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
|
||||||
|
src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
||||||
|
src/moxie/ffi.c src/moxie/eabi.S
|
||||||
|
|
||||||
|
## ################################################################
|
||||||
|
|
||||||
|
##
|
||||||
|
## This section is for make and multilib madness.
|
||||||
|
##
|
||||||
|
|
||||||
|
# Work around what appears to be a GNU make bug handling MAKEFLAGS
|
||||||
|
# values defined in terms of make variables, as is the case for CC and
|
||||||
|
# friends when we are called from the top level Makefile.
|
||||||
|
AM_MAKEFLAGS = \
|
||||||
|
"AR_FLAGS=$(AR_FLAGS)" \
|
||||||
|
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
|
||||||
|
"CFLAGS=$(CFLAGS)" \
|
||||||
|
"CXXFLAGS=$(CXXFLAGS)" \
|
||||||
|
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
|
||||||
|
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||||
|
"INSTALL=$(INSTALL)" \
|
||||||
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
||||||
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
||||||
|
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
|
||||||
|
"JC1FLAGS=$(JC1FLAGS)" \
|
||||||
|
"LDFLAGS=$(LDFLAGS)" \
|
||||||
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||||
|
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
|
||||||
|
"MAKE=$(MAKE)" \
|
||||||
|
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
|
||||||
|
"PICFLAG=$(PICFLAG)" \
|
||||||
|
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
|
||||||
|
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
||||||
|
"SHELL=$(SHELL)" \
|
||||||
|
"exec_prefix=$(exec_prefix)" \
|
||||||
|
"infodir=$(infodir)" \
|
||||||
|
"libdir=$(libdir)" \
|
||||||
|
"prefix=$(prefix)" \
|
||||||
|
"AR=$(AR)" \
|
||||||
|
"AS=$(AS)" \
|
||||||
|
"CC=$(CC)" \
|
||||||
|
"CXX=$(CXX)" \
|
||||||
|
"LD=$(LD)" \
|
||||||
|
"NM=$(NM)" \
|
||||||
|
"RANLIB=$(RANLIB)" \
|
||||||
|
"DESTDIR=$(DESTDIR)"
|
||||||
|
|
||||||
|
MAKEOVERRIDES=
|
||||||
|
|
||||||
|
toolexeclib_LTLIBRARIES = libffi.la
|
||||||
|
noinst_LTLIBRARIES = libffi_convenience.la
|
||||||
|
|
||||||
|
libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c \
|
||||||
|
src/raw_api.c src/java_raw_api.c src/closures.c
|
||||||
|
|
||||||
|
nodist_libffi_la_SOURCES =
|
||||||
|
|
||||||
|
if MIPS
|
||||||
|
nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
|
||||||
|
endif
|
||||||
|
if X86
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S
|
||||||
|
endif
|
||||||
|
if X86_FREEBSD
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/freebsd.S
|
||||||
|
endif
|
||||||
|
if X86_WIN32
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
|
||||||
|
endif
|
||||||
|
if X86_WIN64
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win64.S
|
||||||
|
endif
|
||||||
|
if X86_DARWIN
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||||
|
endif
|
||||||
|
if SPARC
|
||||||
|
nodist_libffi_la_SOURCES += src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
|
||||||
|
endif
|
||||||
|
if ALPHA
|
||||||
|
nodist_libffi_la_SOURCES += src/alpha/ffi.c src/alpha/osf.S
|
||||||
|
endif
|
||||||
|
if IA64
|
||||||
|
nodist_libffi_la_SOURCES += src/ia64/ffi.c src/ia64/unix.S
|
||||||
|
endif
|
||||||
|
if M32R
|
||||||
|
nodist_libffi_la_SOURCES += src/m32r/sysv.S src/m32r/ffi.c
|
||||||
|
endif
|
||||||
|
if M68K
|
||||||
|
nodist_libffi_la_SOURCES += src/m68k/ffi.c src/m68k/sysv.S
|
||||||
|
endif
|
||||||
|
if POWERPC
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_AIX
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_DARWIN
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_FREEBSD
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
|
||||||
|
endif
|
||||||
|
if ARM
|
||||||
|
nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c
|
||||||
|
endif
|
||||||
|
if LIBFFI_CRIS
|
||||||
|
nodist_libffi_la_SOURCES += src/cris/sysv.S src/cris/ffi.c
|
||||||
|
endif
|
||||||
|
if FRV
|
||||||
|
nodist_libffi_la_SOURCES += src/frv/eabi.S src/frv/ffi.c
|
||||||
|
endif
|
||||||
|
if MOXIE
|
||||||
|
nodist_libffi_la_SOURCES += src/moxie/eabi.S src/moxie/ffi.c
|
||||||
|
endif
|
||||||
|
if S390
|
||||||
|
nodist_libffi_la_SOURCES += src/s390/sysv.S src/s390/ffi.c
|
||||||
|
endif
|
||||||
|
if X86_64
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
|
||||||
|
endif
|
||||||
|
if SH
|
||||||
|
nodist_libffi_la_SOURCES += src/sh/sysv.S src/sh/ffi.c
|
||||||
|
endif
|
||||||
|
if SH64
|
||||||
|
nodist_libffi_la_SOURCES += src/sh64/sysv.S src/sh64/ffi.c
|
||||||
|
endif
|
||||||
|
if PA_LINUX
|
||||||
|
nodist_libffi_la_SOURCES += src/pa/linux.S src/pa/ffi.c
|
||||||
|
endif
|
||||||
|
if PA_HPUX
|
||||||
|
nodist_libffi_la_SOURCES += src/pa/hpux32.S src/pa/ffi.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
||||||
|
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||||
|
|
||||||
|
AM_CFLAGS = -Wall -g -fexceptions
|
||||||
|
|
||||||
|
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
|
||||||
|
|
||||||
|
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS)
|
||||||
|
|
||||||
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
||||||
|
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
||||||
|
|
||||||
|
# Multilib support. Automake should provide these on its own.
|
||||||
|
all-recursive: all-multi
|
||||||
|
install-recursive: install-multi
|
||||||
|
mostlyclean-recursive: mostlyclean-multi
|
||||||
|
clean-recursive: clean-multi
|
||||||
|
distclean-recursive: distclean-multi
|
||||||
|
maintainer-clean-recursive: maintainer-clean-multi
|
||||||
390
.svn/tmp/configure.ac.tmp
Normal file
390
.svn/tmp/configure.ac.tmp
Normal file
@@ -0,0 +1,390 @@
|
|||||||
|
dnl Process this with autoconf to create configure
|
||||||
|
|
||||||
|
AC_PREREQ(2.64)
|
||||||
|
|
||||||
|
AC_INIT([libffi], [3.0.8], [http://gcc.gnu.org/bugs.html])
|
||||||
|
AC_CONFIG_HEADERS([fficonfig.h])
|
||||||
|
|
||||||
|
AM_ENABLE_MULTILIB(, ..)
|
||||||
|
|
||||||
|
AC_CANONICAL_SYSTEM
|
||||||
|
target_alias=${target_alias-$host_alias}
|
||||||
|
|
||||||
|
. ${srcdir}/configure.host
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE
|
||||||
|
|
||||||
|
# The same as in boehm-gc and libstdc++. Have to borrow it from there.
|
||||||
|
# We must force CC to /not/ be precious variables; otherwise
|
||||||
|
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
||||||
|
# As a side effect, we have to subst CFLAGS ourselves.
|
||||||
|
|
||||||
|
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
||||||
|
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
||||||
|
AC_PROG_CC
|
||||||
|
m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
||||||
|
|
||||||
|
AC_SUBST(CFLAGS)
|
||||||
|
|
||||||
|
AM_PROG_AS
|
||||||
|
AM_PROG_CC_C_O
|
||||||
|
AC_PROG_LIBTOOL
|
||||||
|
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS(sys/mman.h)
|
||||||
|
AC_CHECK_FUNCS(mmap)
|
||||||
|
AC_FUNC_MMAP_BLACKLIST
|
||||||
|
|
||||||
|
dnl The -no-testsuite modules omit the test subdir.
|
||||||
|
AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
|
||||||
|
|
||||||
|
TARGETDIR="unknown"
|
||||||
|
case "$host" in
|
||||||
|
alpha*-*-*)
|
||||||
|
TARGET=ALPHA; TARGETDIR=alpha;
|
||||||
|
# Support 128-bit long double, changable via command-line switch.
|
||||||
|
HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
arm*-*-*)
|
||||||
|
TARGET=ARM; TARGETDIR=arm
|
||||||
|
;;
|
||||||
|
|
||||||
|
amd64-*-freebsd*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
cris-*-*)
|
||||||
|
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||||
|
;;
|
||||||
|
|
||||||
|
frv-*-*)
|
||||||
|
TARGET=FRV; TARGETDIR=frv
|
||||||
|
;;
|
||||||
|
|
||||||
|
hppa*-*-linux* | parisc*-*-linux*)
|
||||||
|
TARGET=PA_LINUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
hppa*64-*-hpux*)
|
||||||
|
TARGET=PA64_HPUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
hppa*-*-hpux*)
|
||||||
|
TARGET=PA_HPUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
|
||||||
|
i386-*-freebsd* | i386-*-openbsd*)
|
||||||
|
TARGET=X86_FREEBSD; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
|
||||||
|
TARGET=X86_WIN32; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-darwin*)
|
||||||
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-solaris2.1[[0-9]]*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-*)
|
||||||
|
TARGET=X86; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
ia64*-*-*)
|
||||||
|
TARGET=IA64; TARGETDIR=ia64
|
||||||
|
;;
|
||||||
|
|
||||||
|
m32r*-*-*)
|
||||||
|
TARGET=M32R; TARGETDIR=m32r
|
||||||
|
;;
|
||||||
|
|
||||||
|
m68k-*-*)
|
||||||
|
TARGET=M68K; TARGETDIR=m68k
|
||||||
|
;;
|
||||||
|
|
||||||
|
mips-sgi-irix5.* | mips-sgi-irix6.*)
|
||||||
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
|
;;
|
||||||
|
mips*-*-linux*)
|
||||||
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
|
;;
|
||||||
|
|
||||||
|
moxie-*-*)
|
||||||
|
TARGET=MOXIE; TARGETDIR=moxie
|
||||||
|
;;
|
||||||
|
|
||||||
|
powerpc*-*-linux* | powerpc-*-sysv*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-beos*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-darwin*)
|
||||||
|
TARGET=POWERPC_DARWIN; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-aix* | rs6000-*-aix*)
|
||||||
|
TARGET=POWERPC_AIX; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-freebsd*)
|
||||||
|
TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc*-*-rtems*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
|
||||||
|
s390-*-* | s390x-*-*)
|
||||||
|
TARGET=S390; TARGETDIR=s390
|
||||||
|
;;
|
||||||
|
|
||||||
|
sh-*-* | sh[[34]]*-*-*)
|
||||||
|
TARGET=SH; TARGETDIR=sh
|
||||||
|
;;
|
||||||
|
sh64-*-* | sh5*-*-*)
|
||||||
|
TARGET=SH64; TARGETDIR=sh64
|
||||||
|
;;
|
||||||
|
|
||||||
|
sparc*-*-*)
|
||||||
|
TARGET=SPARC; TARGETDIR=sparc
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-darwin*)
|
||||||
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-cygwin* | x86_64-*-mingw*)
|
||||||
|
TARGET=X86_WIN64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_SUBST(AM_RUNTESTFLAGS)
|
||||||
|
|
||||||
|
if test $TARGETDIR = unknown; then
|
||||||
|
AC_MSG_ERROR(["libffi has not been ported to $host."])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
|
||||||
|
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
||||||
|
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
||||||
|
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
||||||
|
AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
|
||||||
|
AM_CONDITIONAL(X86_WIN64, test x$TARGET = xX86_WIN64)
|
||||||
|
AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
|
||||||
|
AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
|
||||||
|
AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
|
||||||
|
AM_CONDITIONAL(M32R, test x$TARGET = xM32R)
|
||||||
|
AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
|
||||||
|
AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
|
||||||
|
AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
|
||||||
|
AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
|
||||||
|
AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
|
||||||
|
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
|
||||||
|
AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
|
||||||
|
AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
|
||||||
|
AM_CONDITIONAL(S390, test x$TARGET = xS390)
|
||||||
|
AM_CONDITIONAL(X86_64, test x$TARGET = xX86_64)
|
||||||
|
AM_CONDITIONAL(SH, test x$TARGET = xSH)
|
||||||
|
AM_CONDITIONAL(SH64, test x$TARGET = xSH64)
|
||||||
|
AM_CONDITIONAL(PA_LINUX, test x$TARGET = xPA_LINUX)
|
||||||
|
AM_CONDITIONAL(PA_HPUX, test x$TARGET = xPA_HPUX)
|
||||||
|
AM_CONDITIONAL(PA64_HPUX, test x$TARGET = xPA64_HPUX)
|
||||||
|
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_FUNCS(memcpy)
|
||||||
|
AC_FUNC_ALLOCA
|
||||||
|
|
||||||
|
AC_CHECK_SIZEOF(double)
|
||||||
|
AC_CHECK_SIZEOF(long double)
|
||||||
|
|
||||||
|
# Also AC_SUBST this variable for ffi.h.
|
||||||
|
if test -z "$HAVE_LONG_DOUBLE"; then
|
||||||
|
HAVE_LONG_DOUBLE=0
|
||||||
|
if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
|
||||||
|
if test $ac_cv_sizeof_long_double != 0; then
|
||||||
|
HAVE_LONG_DOUBLE=1
|
||||||
|
AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST(HAVE_LONG_DOUBLE)
|
||||||
|
|
||||||
|
AC_C_BIGENDIAN
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .cfi pseudo-op support],
|
||||||
|
libffi_cv_as_cfi_pseudo_op, [
|
||||||
|
libffi_cv_as_cfi_pseudo_op=unknown
|
||||||
|
AC_TRY_COMPILE([asm (".cfi_startproc\n\t.cfi_endproc");],,
|
||||||
|
[libffi_cv_as_cfi_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_cfi_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_cfi_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .cfi_* directives.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$TARGET = xSPARC; then
|
||||||
|
AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
|
||||||
|
libffi_cv_as_sparc_ua_pcrel, [
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
save_LDFLAGS="$LDFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fpic"
|
||||||
|
LDFLAGS="$LDFLAGS -shared"
|
||||||
|
AC_TRY_LINK([asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");],,
|
||||||
|
[libffi_cv_as_sparc_ua_pcrel=yes],
|
||||||
|
[libffi_cv_as_sparc_ua_pcrel=no])
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
LDFLAGS="$save_LDFLAGS"])
|
||||||
|
if test "x$libffi_cv_as_sparc_ua_pcrel" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
|
||||||
|
[Define if your assembler and linker support unaligned PC relative relocs.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .register pseudo-op support],
|
||||||
|
libffi_cv_as_register_pseudo_op, [
|
||||||
|
libffi_cv_as_register_pseudo_op=unknown
|
||||||
|
# Check if we have .register
|
||||||
|
AC_TRY_COMPILE([asm (".register %g2, #scratch");],,
|
||||||
|
[libffi_cv_as_register_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_register_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_register_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .register.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then
|
||||||
|
AC_CACHE_CHECK([assembler supports pc related relocs],
|
||||||
|
libffi_cv_as_x86_pcrel, [
|
||||||
|
libffi_cv_as_x86_pcrel=yes
|
||||||
|
echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
|
||||||
|
if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
||||||
|
libffi_cv_as_x86_pcrel=no
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_x86_pcrel" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_X86_PCREL, 1,
|
||||||
|
[Define if your assembler supports PC relative relocs.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
|
||||||
|
libffi_cv_ro_eh_frame, [
|
||||||
|
libffi_cv_ro_eh_frame=no
|
||||||
|
echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
|
||||||
|
if $CC $CFLAGS -S -fpic -fexceptions -o conftest.s conftest.c > /dev/null 2>&1; then
|
||||||
|
if grep '.section.*eh_frame.*"a"' conftest.s > /dev/null; then
|
||||||
|
libffi_cv_ro_eh_frame=yes
|
||||||
|
elif grep '.section.*eh_frame.*#alloc' conftest.c \
|
||||||
|
| grep -v '#write' > /dev/null; then
|
||||||
|
libffi_cv_ro_eh_frame=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f conftest.*
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_ro_eh_frame" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_RO_EH_FRAME, 1,
|
||||||
|
[Define if .eh_frame sections should be read-only.])
|
||||||
|
AC_DEFINE(EH_FRAME_FLAGS, "a",
|
||||||
|
[Define to the flags needed for the .section .eh_frame directive.])
|
||||||
|
else
|
||||||
|
AC_DEFINE(EH_FRAME_FLAGS, "aw",
|
||||||
|
[Define to the flags needed for the .section .eh_frame directive.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([for __attribute__((visibility("hidden")))],
|
||||||
|
libffi_cv_hidden_visibility_attribute, [
|
||||||
|
echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1; }' > conftest.c
|
||||||
|
libffi_cv_hidden_visibility_attribute=no
|
||||||
|
if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
|
||||||
|
if grep '\.hidden.*foo' conftest.s >/dev/null; then
|
||||||
|
libffi_cv_hidden_visibility_attribute=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f conftest.*
|
||||||
|
])
|
||||||
|
if test $libffi_cv_hidden_visibility_attribute = yes; then
|
||||||
|
AC_DEFINE(HAVE_HIDDEN_VISIBILITY_ATTRIBUTE, 1,
|
||||||
|
[Define if __attribute__((visibility("hidden"))) is supported.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AH_BOTTOM([
|
||||||
|
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name) .hidden name
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name)
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_SUBST(TARGET)
|
||||||
|
AC_SUBST(TARGETDIR)
|
||||||
|
|
||||||
|
AC_SUBST(SHELL)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(debug,
|
||||||
|
[ --enable-debug debugging mode],
|
||||||
|
if test "$enable_debug" = "yes"; then
|
||||||
|
AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(structs,
|
||||||
|
[ --disable-structs omit code for struct support],
|
||||||
|
if test "$enable_structs" = "no"; then
|
||||||
|
AC_DEFINE(FFI_NO_STRUCTS, 1, [Define this is you do not want support for aggregate types.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(raw-api,
|
||||||
|
[ --disable-raw-api make the raw api unavailable],
|
||||||
|
if test "$enable_raw_api" = "no"; then
|
||||||
|
AC_DEFINE(FFI_NO_RAW_API, 1, [Define this is you do not want support for the raw API.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(purify-safety,
|
||||||
|
[ --enable-purify-safety purify-safe mode],
|
||||||
|
if test "$enable_purify_safety" = "yes"; then
|
||||||
|
AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
if test -n "$with_cross_host" &&
|
||||||
|
test x"$with_cross_host" != x"no"; then
|
||||||
|
toolexecdir='$(exec_prefix)/$(target_alias)'
|
||||||
|
toolexeclibdir='$(toolexecdir)/lib'
|
||||||
|
else
|
||||||
|
toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
|
||||||
|
toolexeclibdir='$(libdir)'
|
||||||
|
fi
|
||||||
|
multi_os_directory=`$CC -print-multi-os-directory`
|
||||||
|
case $multi_os_directory in
|
||||||
|
.) ;; # Avoid trailing /.
|
||||||
|
*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
|
||||||
|
esac
|
||||||
|
AC_SUBST(toolexecdir)
|
||||||
|
AC_SUBST(toolexeclibdir)
|
||||||
|
|
||||||
|
if test "${multilib}" = "yes"; then
|
||||||
|
multilib_arg="--enable-multilib"
|
||||||
|
else
|
||||||
|
multilib_arg=
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CONFIG_COMMANDS(include, [test -d include || mkdir include])
|
||||||
|
AC_CONFIG_COMMANDS(src, [
|
||||||
|
test -d src || mkdir src
|
||||||
|
test -d src/$TARGETDIR || mkdir src/$TARGETDIR
|
||||||
|
], [TARGETDIR="$TARGETDIR"])
|
||||||
|
|
||||||
|
AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h)
|
||||||
|
|
||||||
|
AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile)
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
14927
.svn/tmp/configure.tmp
Normal file
14927
.svn/tmp/configure.tmp
Normal file
File diff suppressed because it is too large
Load Diff
40
ChangeLog.libgcj
Normal file
40
ChangeLog.libgcj
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
|
||||||
|
|
||||||
|
* configure.in: Add in AC_PREREQ(2.13)
|
||||||
|
|
||||||
|
2003-02-20 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
|
||||||
|
config.status.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
2002-01-27 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
|
||||||
|
Remove USE_LIBDIR conditional.
|
||||||
|
* Makefile.am (toolexecdir, toolexeclibdir): Don't override.
|
||||||
|
* Makefile.in, configure: Rebuilt.
|
||||||
|
|
||||||
|
Mon Aug 9 18:33:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
|
* include/Makefile.in: Rebuilt.
|
||||||
|
* Makefile.in: Rebuilt
|
||||||
|
* Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
|
||||||
|
builds.
|
||||||
|
Use USE_LIBDIR.
|
||||||
|
|
||||||
|
* configure: Rebuilt.
|
||||||
|
* configure.in (USE_LIBDIR): Define for native builds.
|
||||||
|
Use lowercase in configure --help explanations.
|
||||||
|
|
||||||
|
1999-08-08 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* include/ffi.h.in (FFI_FN): Remove `...'.
|
||||||
|
|
||||||
|
1999-08-08 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* Makefile.am (AM_CFLAGS): Compile with -fexceptions.
|
||||||
|
|
||||||
|
* src/x86/sysv.S: Add exception handling metadata.
|
||||||
|
|
||||||
764
ChangeLog.v1
Normal file
764
ChangeLog.v1
Normal file
@@ -0,0 +1,764 @@
|
|||||||
|
The libffi version 1 ChangeLog archive.
|
||||||
|
|
||||||
|
Version 1 of libffi had per-directory ChangeLogs. Current and future
|
||||||
|
versions have a single ChangeLog file in the root directory. The
|
||||||
|
version 1 ChangeLogs have all been concatonated into this file for
|
||||||
|
future reference only.
|
||||||
|
|
||||||
|
--- libffi ----------------------------------------------------------------
|
||||||
|
|
||||||
|
Mon Oct 5 02:17:50 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Boosted rev.
|
||||||
|
* configure, Makefile.in, aclocal.m4: Rebuilt.
|
||||||
|
* README: Boosted rev and updated release notes.
|
||||||
|
|
||||||
|
Mon Oct 5 01:03:03 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Boosted rev.
|
||||||
|
* configure, Makefile.in, aclocal.m4: Rebuilt.
|
||||||
|
* README: Boosted rev and updated release notes.
|
||||||
|
|
||||||
|
1998-07-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* m68k/ffi.c (ffi_prep_cif_machdep): Use bitmask for cif->flags.
|
||||||
|
Correctly handle small structures.
|
||||||
|
(ffi_prep_args): Also handle small structures.
|
||||||
|
(ffi_call): Pass size of return type to ffi_call_SYSV.
|
||||||
|
* m68k/sysv.S: Adjust for above changes. Correctly align small
|
||||||
|
structures in the return value.
|
||||||
|
|
||||||
|
* types.c (uint64, sint64) [M68K]: Change alignment to 4.
|
||||||
|
|
||||||
|
Fri Apr 17 17:26:58 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Boosted rev.
|
||||||
|
* configure,Makefile.in,aclocal.m4: Rebuilt.
|
||||||
|
* README: Boosted rev and added release notes.
|
||||||
|
|
||||||
|
Sun Feb 22 00:50:41 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* configure.in: Add PowerPC config bits.
|
||||||
|
|
||||||
|
1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* configure.in: Add m68k config bits. Change AC_CANONICAL_SYSTEM
|
||||||
|
to AC_CANONICAL_HOST, this is not a compiler. Use $host instead
|
||||||
|
of $target. Remove AC_CHECK_SIZEOF(char), we already know the
|
||||||
|
result. Fix argument of AC_ARG_ENABLE.
|
||||||
|
* configure, fficonfig.h.in: Rebuilt.
|
||||||
|
|
||||||
|
Tue Feb 10 20:53:40 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Add Alpha config bits.
|
||||||
|
|
||||||
|
Tue May 13 13:39:20 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* README: Updated dates and reworded Irix comments.
|
||||||
|
|
||||||
|
* configure.in: Removed AC_PROG_RANLIB.
|
||||||
|
|
||||||
|
* Makefile.in, aclocal.m4, config.guess, config.sub, configure,
|
||||||
|
ltmain.sh, */Makefile.in: libtoolized again and rebuilt with
|
||||||
|
automake and autoconf.
|
||||||
|
|
||||||
|
Sat May 10 18:44:50 1997 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* configure, aclocal.m4: Rebuilt.
|
||||||
|
* configure.in: Don't compute EXTRADIST; now handled in
|
||||||
|
src/Makefile.in. Removed macros implied by AM_INIT_AUTOMAKE.
|
||||||
|
Don't run AM_MAINTAINER_MODE.
|
||||||
|
|
||||||
|
Thu May 8 14:34:05 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* missing, ltmain.sh, ltconfig.sh: Created. These are new files
|
||||||
|
required by automake and libtool.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.14. Added notes.
|
||||||
|
|
||||||
|
* acconfig.h: Moved PACKAGE and VERSION for new automake.
|
||||||
|
|
||||||
|
* configure.in: Changes for libtool.
|
||||||
|
|
||||||
|
* Makefile.am (check): make test now make check. Uses libtool now.
|
||||||
|
|
||||||
|
* Makefile.in, configure.in, aclocal.h, fficonfig.h.in: Rebuilt.
|
||||||
|
|
||||||
|
Thu May 1 16:27:07 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* missing: Added file required by new automake.
|
||||||
|
|
||||||
|
Tue Nov 26 14:10:42 1996 Anthony Green <green@csk3.cygnus.com>
|
||||||
|
|
||||||
|
* acconfig.h: Added USING_PURIFY flag. This is defined when
|
||||||
|
--enable-purify-safety was used at configure time.
|
||||||
|
|
||||||
|
* configure.in (allsources): Added --enable-purify-safety switch.
|
||||||
|
(VERSION): Boosted rev to 1.13.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Fri Nov 22 06:46:12 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.12.
|
||||||
|
Removed special CFLAGS hack for gcc.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.12. Added notes.
|
||||||
|
|
||||||
|
* Many files: Cygnus Support changed to Cygnus Solutions.
|
||||||
|
|
||||||
|
Wed Oct 30 11:15:25 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.11.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.11. Added notes about GNU make.
|
||||||
|
|
||||||
|
Tue Oct 29 12:25:12 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Fixed -Wall trick.
|
||||||
|
(VERSION): Boosted rev.
|
||||||
|
* configure: Rebuilt
|
||||||
|
|
||||||
|
* acconfig.h: Needed for --enable-debug configure switch.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.09. Added more notes on building
|
||||||
|
libffi, and LCLint.
|
||||||
|
|
||||||
|
* configure.in: Added --enable-debug switch. Boosted rev to
|
||||||
|
1.09.
|
||||||
|
* configure: Rebuilt
|
||||||
|
|
||||||
|
Tue Oct 15 13:11:28 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.08
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Added n32 bug fix notes.
|
||||||
|
|
||||||
|
* Makefile.am: Added "make lint" production.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Mon Oct 14 10:54:46 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README: Added web page reference.
|
||||||
|
|
||||||
|
* configure.in, README: Boosted rev to 1.05
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Fixed n32 sample code.
|
||||||
|
|
||||||
|
Fri Oct 11 17:09:28 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README: Added sparc notes.
|
||||||
|
|
||||||
|
* configure.in, README: Boosted rev to 1.04.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Thu Oct 10 10:31:03 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in, README: Boosted rev to 1.03.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Added struct notes.
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added LICENSE to distribution.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* README: Removed Linux section. No special notes now
|
||||||
|
because aggregates arg/return types work.
|
||||||
|
|
||||||
|
Wed Oct 9 16:16:42 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README, configure.in (VERSION): Boosted rev to 1.02
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Tue Oct 8 11:56:33 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README (NOTE): Added n32 notes.
|
||||||
|
|
||||||
|
* Makefile.am: Added test production.
|
||||||
|
* Makefile: Rebuilt
|
||||||
|
|
||||||
|
* README: spell checked!
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.01
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Mon Oct 7 15:50:22 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Added nasty bit to support SGI tools.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Added SGI notes. Added note about automake bug.
|
||||||
|
|
||||||
|
Mon Oct 7 11:00:28 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* README: Rewrote intro, and fixed examples.
|
||||||
|
|
||||||
|
Fri Oct 4 10:19:55 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: -D$TARGET is no longer used as a compiler switch.
|
||||||
|
It is now inserted into ffi.h at configure time.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* FFI_ABI and FFI_STATUS are now ffi_abi and ffi_status.
|
||||||
|
|
||||||
|
Thu Oct 3 13:47:34 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* README, LICENSE: Created. Wrote some docs.
|
||||||
|
|
||||||
|
* configure.in: Don't barf on i586-unknown-linuxaout.
|
||||||
|
Added EXTRADIST code for "make dist".
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* */Makefile.in: Rebuilt with patched automake.
|
||||||
|
|
||||||
|
Tue Oct 1 17:12:25 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am, aclocal.m4, config.guess, config.sub,
|
||||||
|
configure.in, fficonfig.h.in, install-sh, mkinstalldirs,
|
||||||
|
stamp-h.in: Created
|
||||||
|
* Makefile.in, configure: Generated
|
||||||
|
|
||||||
|
--- libffi/include --------------------------------------------------------
|
||||||
|
|
||||||
|
Tue Feb 24 13:09:36 1998 Anthony Green <green@gerbil.cygnus.com>
|
||||||
|
|
||||||
|
* ffi_mips.h: Updated FFI_TYPE_STRUCT_* values based on
|
||||||
|
ffi.h.in changes. This is a work-around for SGI's "simple"
|
||||||
|
assembler.
|
||||||
|
|
||||||
|
Sun Feb 22 00:51:55 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* ffi.h.in: PowerPC support.
|
||||||
|
|
||||||
|
1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* ffi.h.in: Add m68k support.
|
||||||
|
(FFI_TYPE_LONGDOUBLE): Make it a separate value.
|
||||||
|
|
||||||
|
Tue Feb 10 20:55:16 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in (SIZEOF_ARG): Use a pointer type by default.
|
||||||
|
|
||||||
|
* ffi.h.in: Alpha support.
|
||||||
|
|
||||||
|
Fri Nov 22 06:48:45 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h: Cygnus Support -> Cygnus Solutions.
|
||||||
|
|
||||||
|
Wed Nov 20 22:31:01 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Added ffi_type_void definition.
|
||||||
|
|
||||||
|
Tue Oct 29 12:22:40 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am (hack_DATA): Always install ffi_mips.h.
|
||||||
|
|
||||||
|
* ffi.h.in: Removed FFI_DEBUG. It's now in the correct
|
||||||
|
place (acconfig.h).
|
||||||
|
Added #include <stddef.h> for size_t definition.
|
||||||
|
|
||||||
|
Tue Oct 15 17:23:35 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h, ffi_mips.h: More clean up.
|
||||||
|
Commented out #define of FFI_DEBUG.
|
||||||
|
|
||||||
|
Tue Oct 15 13:01:06 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi_common.h: Added bool definition.
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h: Clean up based on LCLint output.
|
||||||
|
Added funny /*@...@*/ comments to annotate source.
|
||||||
|
|
||||||
|
Mon Oct 14 12:29:23 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Interface changes based on feedback from Jim
|
||||||
|
Blandy.
|
||||||
|
|
||||||
|
Fri Oct 11 16:49:35 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Small change for sparc support.
|
||||||
|
|
||||||
|
Thu Oct 10 14:53:37 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi_mips.h: Added FFI_TYPE_STRUCT_* definitions for
|
||||||
|
special structure return types.
|
||||||
|
|
||||||
|
Wed Oct 9 13:55:57 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Added SIZEOF_ARG definition for X86
|
||||||
|
|
||||||
|
Tue Oct 8 11:40:36 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in (FFI_FN): Added macro for eliminating compiler warnings.
|
||||||
|
Use it to case your function pointers to the proper type.
|
||||||
|
|
||||||
|
* ffi_mips.h (SIZEOF_ARG): Added magic to fix type promotion bug.
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added ffi_mips.h to EXTRA_DIST.
|
||||||
|
* Makefile: Rebuilt.
|
||||||
|
|
||||||
|
* ffi_mips.h: Created. Moved all common mips definitions here.
|
||||||
|
|
||||||
|
Mon Oct 7 10:58:12 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: The SGI assember is very picky about parens. Redefined
|
||||||
|
some macros to avoid problems.
|
||||||
|
|
||||||
|
* ffi.h.in: Added FFI_DEFAULT_ABI definitions. Also added
|
||||||
|
externs for pointer, and 64bit integral ffi_types.
|
||||||
|
|
||||||
|
Fri Oct 4 09:51:37 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Added FFI_ABI member to ffi_cif and changed
|
||||||
|
function prototypes accordingly.
|
||||||
|
Added #define @TARGET@. Now programs including ffi.h don't
|
||||||
|
have to specify this themselves.
|
||||||
|
|
||||||
|
Thu Oct 3 15:36:44 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Changed ffi_prep_cif's values from void* to void**
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added EXTRA_DIST for "make dist"
|
||||||
|
to work.
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
Wed Oct 2 10:16:59 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Created
|
||||||
|
* Makefile.in: Generated
|
||||||
|
|
||||||
|
* ffi_common.h: Added rcsid comment
|
||||||
|
|
||||||
|
Tue Oct 1 17:13:51 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h: Created
|
||||||
|
|
||||||
|
--- libffi/src ------------------------------------------------------------
|
||||||
|
|
||||||
|
Mon Oct 5 02:17:50 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* arm/ffi.c, arm/sysv.S: Created.
|
||||||
|
|
||||||
|
* Makefile.am: Added arm files.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Mon Oct 5 01:41:38 1998 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am (libffi_la_LDFLAGS): Incremented revision.
|
||||||
|
|
||||||
|
Sun Oct 4 16:27:17 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* alpha/osf.S (ffi_call_osf): Patch for DU assembler.
|
||||||
|
|
||||||
|
* ffitest.c (main): long long and long double return values work
|
||||||
|
for x86.
|
||||||
|
|
||||||
|
Fri Apr 17 11:50:58 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* ffitest.c (main): Floating point tests not executed for systems
|
||||||
|
with broken lond double (SunOS 4 w/ GCC).
|
||||||
|
|
||||||
|
* types.c: Fixed x86 alignment info for long long types.
|
||||||
|
|
||||||
|
Thu Apr 16 07:15:28 1998 Anthony Green <green@ada.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c: Added more notes about GCC bugs under Irix 6.
|
||||||
|
|
||||||
|
Wed Apr 15 08:42:22 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (struct5): New test function.
|
||||||
|
(main): New test with struct5.
|
||||||
|
|
||||||
|
Thu Mar 5 10:48:11 1998 Anthony Green <green@tootie.to.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (initialize_aggregate): Fix assertion for
|
||||||
|
nested structures.
|
||||||
|
|
||||||
|
Tue Feb 24 16:33:41 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Added long double support for sparc.
|
||||||
|
|
||||||
|
Sun Feb 22 00:52:18 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* powerpc/asm.h: New file.
|
||||||
|
* powerpc/ffi.c: New file.
|
||||||
|
* powerpc/sysv.S: New file.
|
||||||
|
* Makefile.am: PowerPC port.
|
||||||
|
* ffitest.c (main): Allow all tests to run even in presence of gcc
|
||||||
|
bug on PowerPC.
|
||||||
|
|
||||||
|
1998-02-17 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* mips/ffi.c: Fixed comment typo.
|
||||||
|
|
||||||
|
* x86/ffi.c (ffi_prep_cif_machdep), x86/sysv.S (retfloat):
|
||||||
|
Fixed x86 long double return handling.
|
||||||
|
|
||||||
|
* types.c: Fixed x86 long double alignment info.
|
||||||
|
|
||||||
|
1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* types.c: Add m68k support.
|
||||||
|
|
||||||
|
* ffitest.c (floating): Add long double parameter.
|
||||||
|
(return_ll, ldblit): New functions to test long long and long
|
||||||
|
double return value.
|
||||||
|
(main): Fix type error in assignment of ts[1-4]_type.elements.
|
||||||
|
Add tests for long long and long double arguments and return
|
||||||
|
values.
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif) [M68K]: Don't allocate argument for
|
||||||
|
struct value pointer.
|
||||||
|
|
||||||
|
* m68k/ffi.c, m68k/sysv.S: New files.
|
||||||
|
* Makefile.am: Add bits for m68k port. Add kludge to work around
|
||||||
|
automake deficiency.
|
||||||
|
(test): Don't require "." in $PATH.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Wed Feb 11 07:36:50 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Tue Feb 10 20:56:00 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* alpha/ffi.c, alpha/osf.S: New files.
|
||||||
|
* Makefile.am: Alpha port.
|
||||||
|
|
||||||
|
Tue Nov 18 14:12:07 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* mips/ffi.c (ffi_prep_cif_machdep): Initialize rstruct_flag
|
||||||
|
for n32.
|
||||||
|
|
||||||
|
Tue Jun 3 17:18:20 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Added hack to get structure tests working
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
Sat May 10 19:06:42 1997 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* Makefile.am (EXTRA_DIST): Explicitly list all distributable
|
||||||
|
files in subdirs.
|
||||||
|
(VERSION, CC): Removed.
|
||||||
|
|
||||||
|
Thu May 8 17:19:01 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Many changes for new automake and libtool.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Fri Nov 22 06:57:56 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Fixed test case for non mips machines.
|
||||||
|
|
||||||
|
Wed Nov 20 22:31:59 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* types.c: Added ffi_type_void declaration.
|
||||||
|
|
||||||
|
Tue Oct 29 13:07:19 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Fixed character constants.
|
||||||
|
(main): Emit warning for structure test 3 failure on Sun.
|
||||||
|
|
||||||
|
* Makefile.am (VPATH): Fixed VPATH def'n so automake won't
|
||||||
|
strip it out.
|
||||||
|
Moved distdir hack from libffi to automake.
|
||||||
|
(ffitest): Added missing -c for $(COMPILE) (change in automake).
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Tue Oct 15 13:08:20 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Added "make lint" production.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* prep_cif.c (STACK_ARG_SIZE): Improved STACK_ARG_SIZE macro.
|
||||||
|
Clean up based on LCLint output. Added funny /*@...@*/ comments to
|
||||||
|
annotate source.
|
||||||
|
|
||||||
|
* ffitest.c, debug.c: Cleaned up code.
|
||||||
|
|
||||||
|
Mon Oct 14 12:26:56 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c: Changes based on interface changes.
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Cleaned up interface based on
|
||||||
|
feedback from Jim Blandy.
|
||||||
|
|
||||||
|
Fri Oct 11 15:53:18 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c: Reordered tests while porting to sparc.
|
||||||
|
Made changes to handle lame structure passing for sparc.
|
||||||
|
Removed calls to fflush().
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Added special case for sparc
|
||||||
|
aggregate type arguments.
|
||||||
|
|
||||||
|
Thu Oct 10 09:56:51 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Added structure passing/returning tests.
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Perform proper initialization
|
||||||
|
of structure return types if needed.
|
||||||
|
(initialize_aggregate): Bug fix
|
||||||
|
|
||||||
|
Wed Oct 9 16:04:20 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* types.c: Added special definitions for x86 (double doesn't
|
||||||
|
need double word alignment).
|
||||||
|
|
||||||
|
* ffitest.c: Added many tests
|
||||||
|
|
||||||
|
Tue Oct 8 09:19:22 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Fixed assertion.
|
||||||
|
|
||||||
|
* debug.c (ffi_assert): Must return a non void now.
|
||||||
|
|
||||||
|
* Makefile.am: Added test production.
|
||||||
|
* Makefile: Rebuilt.
|
||||||
|
|
||||||
|
* ffitest.c (main): Created.
|
||||||
|
|
||||||
|
* types.c: Created. Stripped common code out of */ffi.c.
|
||||||
|
|
||||||
|
* prep_cif.c: Added missing stdlib.h include.
|
||||||
|
|
||||||
|
* debug.c (ffi_type_test): Used "a" to eliminate compiler
|
||||||
|
warnings in non-debug builds. Included ffi_common.h.
|
||||||
|
|
||||||
|
Mon Oct 7 15:36:42 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Added a rule for .s -> .o
|
||||||
|
This is required by the SGI compiler.
|
||||||
|
* Makefile: Rebuilt.
|
||||||
|
|
||||||
|
Fri Oct 4 09:51:08 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (initialize_aggregate): Moved abi specification
|
||||||
|
to ffi_prep_cif().
|
||||||
|
|
||||||
|
Thu Oct 3 15:37:37 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Changed values from void* to void**.
|
||||||
|
(initialize_aggregate): Fixed aggregate type initialization.
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added support code for "make dist".
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
Wed Oct 2 11:41:57 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* debug.c, prep_cif: Created.
|
||||||
|
|
||||||
|
* Makefile.am: Added debug.o and prep_cif.o to OBJ.
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
* Makefile.am (INCLUDES): Added missing -I../include
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
Tue Oct 1 17:11:51 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* error.c, Makefile.am: Created.
|
||||||
|
* Makefile.in: Generated.
|
||||||
|
|
||||||
|
--- libffi/src/x86 --------------------------------------------------------
|
||||||
|
|
||||||
|
Sun Oct 4 16:27:17 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* sysv.S (retlongdouble): Fixed long long return value support.
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Ditto.
|
||||||
|
|
||||||
|
Wed May 13 04:30:33 1998 Anthony Green <green@raft.ppp.tsoft.net>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fixed long double return value
|
||||||
|
support.
|
||||||
|
|
||||||
|
Wed Apr 15 08:43:20 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): small struct support was missing.
|
||||||
|
|
||||||
|
Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* objects.mak: Removed.
|
||||||
|
|
||||||
|
Mon Dec 2 15:12:58 1996 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* sysv.S: Use .balign, for a.out Linux boxes.
|
||||||
|
|
||||||
|
Tue Oct 15 13:06:50 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Clean up based on LCLint output.
|
||||||
|
Added funny /*@...@*/ comments to annotate source.
|
||||||
|
|
||||||
|
Fri Oct 11 16:43:38 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Added assertion for bad ABIs.
|
||||||
|
|
||||||
|
Wed Oct 9 13:57:27 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* sysv.S (retdouble): Fixed double return problems.
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Corrected fn arg definition.
|
||||||
|
(ffi_prep_cif_machdep): Fixed double return problems
|
||||||
|
|
||||||
|
Tue Oct 8 12:12:49 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Moved ffi_type definitions to types.c.
|
||||||
|
(ffi_prep_args): Fixed type promotion bug.
|
||||||
|
|
||||||
|
Mon Oct 7 15:53:06 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
|
||||||
|
|
||||||
|
Fri Oct 4 09:54:53 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Removed FFI_ABI arg, and swapped
|
||||||
|
remaining args.
|
||||||
|
|
||||||
|
Wed Oct 2 10:07:05 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c, sysv.S, objects.mak: Created.
|
||||||
|
(ffi_prep_cif): cif->rvalue no longer initialized to NULL.
|
||||||
|
(ffi_prep_cif_machdep): Moved machine independent cif processing
|
||||||
|
to src/prep_cif.c. Introduced ffi_prep_cif_machdep().
|
||||||
|
|
||||||
|
--- libffi/src/mips -------------------------------------------------------
|
||||||
|
|
||||||
|
Tue Feb 17 17:18:07 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* o32.S: Fixed typo in comment.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fixed argument processing.
|
||||||
|
|
||||||
|
Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* o32.s, n32.s: Wrappers for SGI tool support.
|
||||||
|
|
||||||
|
* objects.mak: Removed.
|
||||||
|
|
||||||
|
Tue Oct 29 14:37:45 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Changed int z to size_t z.
|
||||||
|
|
||||||
|
Tue Oct 15 13:17:25 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* n32.S: Fixed bad stack munging.
|
||||||
|
|
||||||
|
* ffi.c: Moved prototypes for ffi_call_?32() to here from
|
||||||
|
ffi_mips.h because extended_cif is not defined in ffi_mips.h.
|
||||||
|
|
||||||
|
Mon Oct 14 12:42:02 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Interface changes based on feedback from Jim Blandy.
|
||||||
|
|
||||||
|
Thu Oct 10 11:22:16 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* n32.S, ffi.c: Lots of changes to support passing and
|
||||||
|
returning structures with the n32 calling convention.
|
||||||
|
|
||||||
|
* n32.S: Fixed fn pointer bug.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fix for o32 structure
|
||||||
|
return values.
|
||||||
|
(ffi_prep_args): Fixed n32 structure passing when structures
|
||||||
|
partially fit in registers.
|
||||||
|
|
||||||
|
Wed Oct 9 13:49:25 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* objects.mak: Added n32.o.
|
||||||
|
|
||||||
|
* n32.S: Created.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Added magic to support proper
|
||||||
|
n32 processing.
|
||||||
|
|
||||||
|
Tue Oct 8 10:37:35 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Moved ffi_type definitions to types.c.
|
||||||
|
(ffi_prep_args): Fixed type promotion bug.
|
||||||
|
|
||||||
|
* o32.S: This code is only built for o32 compiles.
|
||||||
|
A lot of the #define cruft has moved to ffi_mips.h.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fixed arg flags. Second arg
|
||||||
|
is only processed if the first is either a float or double.
|
||||||
|
|
||||||
|
Mon Oct 7 15:33:59 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* o32.S: Modified to compile under each of o32, n32 and n64.
|
||||||
|
|
||||||
|
* ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
|
||||||
|
|
||||||
|
Fri Oct 4 09:53:25 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Removed FFI_ABI arg, and swapped
|
||||||
|
remaining args.
|
||||||
|
|
||||||
|
Wed Oct 2 17:41:22 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* o32.S: Removed crufty definitions.
|
||||||
|
|
||||||
|
Wed Oct 2 12:53:42 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif): cif->rvalue no longer initialized to NULL.
|
||||||
|
(ffi_prep_cif_machdep): Moved all machine independent cif processing
|
||||||
|
to src/prep_cif.c. Introduced ffi_prep_cif_machdep. Return types
|
||||||
|
of FFI_TYPE_STRUCT are no different than FFI_TYPE_INT.
|
||||||
|
|
||||||
|
Tue Oct 1 17:11:02 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c, o32.S, object.mak: Created
|
||||||
|
|
||||||
|
--- libffi/src/sparc ------------------------------------------------------
|
||||||
|
|
||||||
|
Tue Feb 24 16:33:18 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Added long double support.
|
||||||
|
|
||||||
|
Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* objects.mak: Removed.
|
||||||
|
|
||||||
|
Thu May 1 16:07:56 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* v8.S: Fixed minor portability problem reported by
|
||||||
|
Russ McManus <mcmanr@eq.gs.com>.
|
||||||
|
|
||||||
|
Tue Nov 26 14:12:43 1996 Anthony Green <green@csk3.cygnus.com>
|
||||||
|
|
||||||
|
* v8.S: Used STACKFRAME define elsewhere.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Zero out space when USING_PURIFY
|
||||||
|
is set.
|
||||||
|
(ffi_prep_cif_machdep): Allocate the correct stack frame
|
||||||
|
space for functions with < 6 args.
|
||||||
|
|
||||||
|
Tue Oct 29 15:08:55 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): int z is now size_t z.
|
||||||
|
|
||||||
|
Mon Oct 14 13:31:24 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* v8.S (ffi_call_V8): Gordon rewrites this again. It looks
|
||||||
|
great now.
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): The comment about hijacked registers
|
||||||
|
is no longer valid after gordoni hacked v8.S.
|
||||||
|
|
||||||
|
* v8.S (ffi_call_V8): Rewrote with gordoni. Much simpler.
|
||||||
|
|
||||||
|
* v8.S, ffi.c: ffi_call() had changed to accept more than
|
||||||
|
two args, so v8.S had to change (because it hijacks incoming
|
||||||
|
arg registers).
|
||||||
|
|
||||||
|
* ffi.c: Interface changes based on feedback from Jim Blandy.
|
||||||
|
|
||||||
|
Thu Oct 10 17:48:16 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c, v8.S, objects.mak: Created.
|
||||||
|
|
||||||
|
|
||||||
20
LICENSE
Normal file
20
LICENSE
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
libffi - Copyright (c) 1996-2003 Red Hat, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
``Software''), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
182
Makefile.am
Normal file
182
Makefile.am
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
## Process this with automake to create Makefile.in
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = foreign subdir-objects
|
||||||
|
ACLOCAL_AMFLAGS = -I .. -I ../config
|
||||||
|
|
||||||
|
SUBDIRS = include testsuite man
|
||||||
|
|
||||||
|
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
||||||
|
src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
|
||||||
|
src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
|
||||||
|
src/cris/ffi.c src/cris/sysv.S src/cris/ffitarget.h \
|
||||||
|
src/ia64/ffi.c src/ia64/ffitarget.h src/ia64/ia64_flags.h \
|
||||||
|
src/ia64/unix.S \
|
||||||
|
src/mips/ffi.c src/mips/n32.S src/mips/o32.S \
|
||||||
|
src/mips/ffitarget.h \
|
||||||
|
src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
|
||||||
|
src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
|
||||||
|
src/powerpc/ffi.c src/powerpc/sysv.S \
|
||||||
|
src/powerpc/linux64.S src/powerpc/linux64_closure.S \
|
||||||
|
src/powerpc/ppc_closure.S src/powerpc/asm.h \
|
||||||
|
src/powerpc/aix.S src/powerpc/darwin.S \
|
||||||
|
src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \
|
||||||
|
src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \
|
||||||
|
src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \
|
||||||
|
src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h \
|
||||||
|
src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h \
|
||||||
|
src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \
|
||||||
|
src/sparc/ffi.c src/x86/darwin64.S \
|
||||||
|
src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/darwin.S \
|
||||||
|
src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h \
|
||||||
|
src/pa/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
|
||||||
|
src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
||||||
|
src/moxie/ffi.c src/moxie/eabi.S
|
||||||
|
|
||||||
|
## ################################################################
|
||||||
|
|
||||||
|
##
|
||||||
|
## This section is for make and multilib madness.
|
||||||
|
##
|
||||||
|
|
||||||
|
# Work around what appears to be a GNU make bug handling MAKEFLAGS
|
||||||
|
# values defined in terms of make variables, as is the case for CC and
|
||||||
|
# friends when we are called from the top level Makefile.
|
||||||
|
AM_MAKEFLAGS = \
|
||||||
|
"AR_FLAGS=$(AR_FLAGS)" \
|
||||||
|
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
|
||||||
|
"CFLAGS=$(CFLAGS)" \
|
||||||
|
"CXXFLAGS=$(CXXFLAGS)" \
|
||||||
|
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
|
||||||
|
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||||
|
"INSTALL=$(INSTALL)" \
|
||||||
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
||||||
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
||||||
|
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
|
||||||
|
"JC1FLAGS=$(JC1FLAGS)" \
|
||||||
|
"LDFLAGS=$(LDFLAGS)" \
|
||||||
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||||
|
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
|
||||||
|
"MAKE=$(MAKE)" \
|
||||||
|
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
|
||||||
|
"PICFLAG=$(PICFLAG)" \
|
||||||
|
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
|
||||||
|
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
||||||
|
"SHELL=$(SHELL)" \
|
||||||
|
"exec_prefix=$(exec_prefix)" \
|
||||||
|
"infodir=$(infodir)" \
|
||||||
|
"libdir=$(libdir)" \
|
||||||
|
"prefix=$(prefix)" \
|
||||||
|
"AR=$(AR)" \
|
||||||
|
"AS=$(AS)" \
|
||||||
|
"CC=$(CC)" \
|
||||||
|
"CXX=$(CXX)" \
|
||||||
|
"LD=$(LD)" \
|
||||||
|
"NM=$(NM)" \
|
||||||
|
"RANLIB=$(RANLIB)" \
|
||||||
|
"DESTDIR=$(DESTDIR)"
|
||||||
|
|
||||||
|
MAKEOVERRIDES=
|
||||||
|
|
||||||
|
toolexeclib_LTLIBRARIES = libffi.la
|
||||||
|
noinst_LTLIBRARIES = libffi_convenience.la
|
||||||
|
|
||||||
|
libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c \
|
||||||
|
src/raw_api.c src/java_raw_api.c src/closures.c
|
||||||
|
|
||||||
|
nodist_libffi_la_SOURCES =
|
||||||
|
|
||||||
|
if MIPS
|
||||||
|
nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
|
||||||
|
endif
|
||||||
|
if X86
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S
|
||||||
|
endif
|
||||||
|
if X86_FREEBSD
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/freebsd.S
|
||||||
|
endif
|
||||||
|
if X86_WIN32
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
|
||||||
|
endif
|
||||||
|
if X86_WIN64
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win64.S
|
||||||
|
endif
|
||||||
|
if X86_DARWIN
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||||
|
endif
|
||||||
|
if SPARC
|
||||||
|
nodist_libffi_la_SOURCES += src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
|
||||||
|
endif
|
||||||
|
if ALPHA
|
||||||
|
nodist_libffi_la_SOURCES += src/alpha/ffi.c src/alpha/osf.S
|
||||||
|
endif
|
||||||
|
if IA64
|
||||||
|
nodist_libffi_la_SOURCES += src/ia64/ffi.c src/ia64/unix.S
|
||||||
|
endif
|
||||||
|
if M32R
|
||||||
|
nodist_libffi_la_SOURCES += src/m32r/sysv.S src/m32r/ffi.c
|
||||||
|
endif
|
||||||
|
if M68K
|
||||||
|
nodist_libffi_la_SOURCES += src/m68k/ffi.c src/m68k/sysv.S
|
||||||
|
endif
|
||||||
|
if POWERPC
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_AIX
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_DARWIN
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_FREEBSD
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
|
||||||
|
endif
|
||||||
|
if ARM
|
||||||
|
nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c
|
||||||
|
endif
|
||||||
|
if LIBFFI_CRIS
|
||||||
|
nodist_libffi_la_SOURCES += src/cris/sysv.S src/cris/ffi.c
|
||||||
|
endif
|
||||||
|
if FRV
|
||||||
|
nodist_libffi_la_SOURCES += src/frv/eabi.S src/frv/ffi.c
|
||||||
|
endif
|
||||||
|
if MOXIE
|
||||||
|
nodist_libffi_la_SOURCES += src/moxie/eabi.S src/moxie/ffi.c
|
||||||
|
endif
|
||||||
|
if S390
|
||||||
|
nodist_libffi_la_SOURCES += src/s390/sysv.S src/s390/ffi.c
|
||||||
|
endif
|
||||||
|
if X86_64
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
|
||||||
|
endif
|
||||||
|
if SH
|
||||||
|
nodist_libffi_la_SOURCES += src/sh/sysv.S src/sh/ffi.c
|
||||||
|
endif
|
||||||
|
if SH64
|
||||||
|
nodist_libffi_la_SOURCES += src/sh64/sysv.S src/sh64/ffi.c
|
||||||
|
endif
|
||||||
|
if PA_LINUX
|
||||||
|
nodist_libffi_la_SOURCES += src/pa/linux.S src/pa/ffi.c
|
||||||
|
endif
|
||||||
|
if PA_HPUX
|
||||||
|
nodist_libffi_la_SOURCES += src/pa/hpux32.S src/pa/ffi.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
||||||
|
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||||
|
|
||||||
|
AM_CFLAGS = -Wall -g -fexceptions
|
||||||
|
|
||||||
|
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
|
||||||
|
|
||||||
|
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS)
|
||||||
|
|
||||||
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
||||||
|
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
||||||
|
|
||||||
|
# Multilib support. Automake should provide these on its own.
|
||||||
|
all-recursive: all-multi
|
||||||
|
install-recursive: install-multi
|
||||||
|
mostlyclean-recursive: mostlyclean-multi
|
||||||
|
clean-recursive: clean-multi
|
||||||
|
distclean-recursive: distclean-multi
|
||||||
|
maintainer-clean-recursive: maintainer-clean-multi
|
||||||
1516
Makefile.in
Normal file
1516
Makefile.in
Normal file
File diff suppressed because it is too large
Load Diff
340
README
Normal file
340
README
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
This directory contains the libffi package, which is not part of GCC but
|
||||||
|
shipped with GCC as convenience.
|
||||||
|
|
||||||
|
Status
|
||||||
|
======
|
||||||
|
|
||||||
|
libffi-3.0.8 was released on December 19, 2008. Check the libffi web
|
||||||
|
page for updates: <URL:http://sourceware.org/libffi/>.
|
||||||
|
|
||||||
|
|
||||||
|
What is libffi?
|
||||||
|
===============
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
Supported Platforms
|
||||||
|
===================
|
||||||
|
|
||||||
|
Libffi has been ported to many different platforms, although this
|
||||||
|
release was only tested on:
|
||||||
|
|
||||||
|
arm oabi linux
|
||||||
|
arm eabi linux
|
||||||
|
hppa linux
|
||||||
|
mips o32 linux (little endian)
|
||||||
|
powerpc darwin
|
||||||
|
powerpc freebsd
|
||||||
|
powerpc64 linux
|
||||||
|
sparc solaris
|
||||||
|
sparc64 freebsd
|
||||||
|
sparc64 solaris
|
||||||
|
x86 cygwin
|
||||||
|
x86 darwin
|
||||||
|
x86 freebsd
|
||||||
|
x86 linux
|
||||||
|
x86 openbsd
|
||||||
|
x86 solaris
|
||||||
|
x86-64 mingw
|
||||||
|
x86-64 darwin
|
||||||
|
x86-64 linux
|
||||||
|
x86-64 OS X
|
||||||
|
x86-64 freebsd
|
||||||
|
x86-64 solaris
|
||||||
|
|
||||||
|
Please send additional platform test results to
|
||||||
|
libffi-discuss@sourceware.org.
|
||||||
|
|
||||||
|
Installing libffi
|
||||||
|
=================
|
||||||
|
|
||||||
|
[Note: before actually performing any of these installation steps,
|
||||||
|
you may wish to read the "Platform Specific Notes" below.]
|
||||||
|
|
||||||
|
First you must configure the distribution for your particular
|
||||||
|
system. Go to the directory you wish to build libffi in and run the
|
||||||
|
"configure" program found in the root directory of the libffi source
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
You may want to tell configure where to install the libffi library and
|
||||||
|
header files. To do that, use the --prefix configure switch. Libffi
|
||||||
|
will install under /usr/local by default.
|
||||||
|
|
||||||
|
If you want to enable extra run-time debugging checks use the the
|
||||||
|
--enable-debug configure switch. This is useful when your program dies
|
||||||
|
mysteriously while using libffi.
|
||||||
|
|
||||||
|
Another useful configure switch is --enable-purify-safety. Using this
|
||||||
|
will add some extra code which will suppress certain warnings when you
|
||||||
|
are using Purify with libffi. Only use this switch when using
|
||||||
|
Purify, as it will slow down the library.
|
||||||
|
|
||||||
|
Configure has many other options. Use "configure --help" to see them all.
|
||||||
|
|
||||||
|
Once configure has finished, type "make". Note that you must be using
|
||||||
|
GNU make. You can ftp GNU make from prep.ai.mit.edu:/pub/gnu.
|
||||||
|
|
||||||
|
To ensure that libffi is working as advertised, type "make check".
|
||||||
|
This will require that you have DejaGNU installed.
|
||||||
|
|
||||||
|
To install the library and header files, type "make install".
|
||||||
|
|
||||||
|
|
||||||
|
Platform Specific Notes
|
||||||
|
=======================
|
||||||
|
|
||||||
|
MIPS - Irix 5.3 & 6.x
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Irix 6.2 and better supports three different calling conventions: o32,
|
||||||
|
n32 and n64. Currently, libffi only supports both o32 and n32 under
|
||||||
|
Irix 6.x, but only o32 under Irix 5.3. Libffi will automatically be
|
||||||
|
configured for whichever calling convention it was built for.
|
||||||
|
|
||||||
|
By default, the configure script will try to build libffi with the GNU
|
||||||
|
development tools. To build libffi with the SGI development tools, set
|
||||||
|
the environment variable CC to either "cc -32" or "cc -n32" before
|
||||||
|
running configure under Irix 6.x (depending on whether you want an o32
|
||||||
|
or n32 library), or just "cc" for Irix 5.3.
|
||||||
|
|
||||||
|
With the n32 calling convention, when returning structures smaller
|
||||||
|
than 16 bytes, be sure to provide an RVALUE that is 8 byte aligned.
|
||||||
|
Here's one way of forcing this:
|
||||||
|
|
||||||
|
double struct_storage[2];
|
||||||
|
my_small_struct *s = (my_small_struct *) struct_storage;
|
||||||
|
/* Use s for RVALUE */
|
||||||
|
|
||||||
|
If you don't do this you are liable to get spurious bus errors.
|
||||||
|
|
||||||
|
"long long" values are not supported yet.
|
||||||
|
|
||||||
|
You must use GNU Make to build libffi on SGI platforms.
|
||||||
|
|
||||||
|
|
||||||
|
PowerPC System V ABI
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
There are two `System V ABI's which libffi implements for PowerPC.
|
||||||
|
They differ only in how small structures are returned from functions.
|
||||||
|
|
||||||
|
In the FFI_SYSV version, structures that are 8 bytes or smaller are
|
||||||
|
returned in registers. This is what GCC does when it is configured
|
||||||
|
for solaris, and is what the System V ABI I have (dated September
|
||||||
|
1995) says.
|
||||||
|
|
||||||
|
In the FFI_GCC_SYSV version, all structures are returned the same way:
|
||||||
|
by passing a pointer as the first argument to the function. This is
|
||||||
|
what GCC does when it is configured for linux or a generic sysv
|
||||||
|
target.
|
||||||
|
|
||||||
|
EGCS 1.0.1 (and probably other versions of EGCS/GCC) also has a
|
||||||
|
inconsistency with the SysV ABI: When a procedure is called with many
|
||||||
|
floating-point arguments, some of them get put on the stack. They are
|
||||||
|
all supposed to be stored in double-precision format, even if they are
|
||||||
|
only single-precision, but EGCS stores single-precision arguments as
|
||||||
|
single-precision anyway. This causes one test to fail (the `many
|
||||||
|
arguments' test).
|
||||||
|
|
||||||
|
|
||||||
|
History
|
||||||
|
=======
|
||||||
|
|
||||||
|
3.0.7 Nov-11-08
|
||||||
|
Fix for ppc FreeBSD.
|
||||||
|
(thanks to Andreas Tobler)
|
||||||
|
|
||||||
|
3.0.6 Jul-17-08
|
||||||
|
Fix for closures on sh.
|
||||||
|
Mark the sh/sh64 stack as non-executable.
|
||||||
|
(both thanks to Kaz Kojima)
|
||||||
|
|
||||||
|
3.0.5 Apr-3-08
|
||||||
|
Fix libffi.pc file.
|
||||||
|
Fix #define ARM for IcedTea users.
|
||||||
|
Fix x86 closure bug.
|
||||||
|
|
||||||
|
3.0.4 Feb-24-08
|
||||||
|
Fix x86 OpenBSD configury.
|
||||||
|
|
||||||
|
3.0.3 Feb-22-08
|
||||||
|
Enable x86 OpenBSD thanks to Thomas Heller, and
|
||||||
|
x86-64 FreeBSD thanks to Björn König and Andreas Tobler.
|
||||||
|
Clean up test instruction in README.
|
||||||
|
|
||||||
|
3.0.2 Feb-21-08
|
||||||
|
Improved x86 FreeBSD support.
|
||||||
|
Thanks to Björn König.
|
||||||
|
|
||||||
|
3.0.1 Feb-15-08
|
||||||
|
Fix instruction cache flushing bug on MIPS.
|
||||||
|
Thanks to David Daney.
|
||||||
|
|
||||||
|
3.0.0 Feb-15-08
|
||||||
|
Many changes, mostly thanks to the GCC project.
|
||||||
|
Cygnus Solutions is now Red Hat.
|
||||||
|
|
||||||
|
[10 years go by...]
|
||||||
|
|
||||||
|
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-97
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
Authors & Credits
|
||||||
|
=================
|
||||||
|
|
||||||
|
libffi was originally written by Anthony Green <green@redhat.com>.
|
||||||
|
|
||||||
|
The developers of the GNU Compiler Collection project have made
|
||||||
|
innumerable valuable contributions. See the ChangeLog file for
|
||||||
|
details.
|
||||||
|
|
||||||
|
Some of the ideas behind libffi were inspired by Gianni Mariani's free
|
||||||
|
gencall library for Silicon Graphics machines.
|
||||||
|
|
||||||
|
The closure mechanism was designed and implemented by Kresten Krab
|
||||||
|
Thorup.
|
||||||
|
|
||||||
|
Major processor architecture ports were contributed by the following
|
||||||
|
developers:
|
||||||
|
|
||||||
|
alpha Richard Henderson
|
||||||
|
arm Raffaele Sena
|
||||||
|
cris Simon Posnjak, Hans-Peter Nilsson
|
||||||
|
frv Anthony Green
|
||||||
|
ia64 Hans Boehm
|
||||||
|
m32r Kazuhiro Inaoka
|
||||||
|
m68k Andreas Schwab
|
||||||
|
mips Anthony Green, Casey Marshall
|
||||||
|
mips64 David Daney
|
||||||
|
pa Randolph Chung, Dave Anglin, Andreas Tobler
|
||||||
|
powerpc Geoffrey Keating, Andreas Tobler,
|
||||||
|
David Edelsohn, John Hornkvist
|
||||||
|
powerpc64 Jakub Jelinek
|
||||||
|
s390 Gerhard Tonn, Ulrich Weigand
|
||||||
|
sh Kaz Kojima
|
||||||
|
sh64 Kaz Kojima
|
||||||
|
sparc Anthony Green, Gordon Irlam
|
||||||
|
x86 Anthony Green, Jon Beniston
|
||||||
|
x86-64 Bo Thorsen
|
||||||
|
|
||||||
|
Jesper Skov and Andrew Haley both did more than their fair share of
|
||||||
|
stepping through the code and tracking down bugs.
|
||||||
|
|
||||||
|
Thanks also to Tom Tromey for bug fixes, documentation and
|
||||||
|
configuration help.
|
||||||
|
|
||||||
|
Thanks to Jim Blandy, who provided some useful feedback on the libffi
|
||||||
|
interface.
|
||||||
|
|
||||||
|
Andreas Tobler has done a tremendous amount of work on the testsuite.
|
||||||
|
|
||||||
|
Alex Oliva solved the executable page problem for SElinux.
|
||||||
|
|
||||||
|
The list above is almost certainly incomplete and inaccurate. I'm
|
||||||
|
happy to make corrections or additions upon request.
|
||||||
|
|
||||||
|
If you have a problem, or have found a bug, please send a note to
|
||||||
|
green@redhat.com.
|
||||||
92
acinclude.m4
Normal file
92
acinclude.m4
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# mmap(2) blacklisting. Some platforms provide the mmap library routine
|
||||||
|
# but don't support all of the features we need from it.
|
||||||
|
AC_DEFUN([AC_FUNC_MMAP_BLACKLIST],
|
||||||
|
[
|
||||||
|
AC_CHECK_HEADER([sys/mman.h],
|
||||||
|
[libffi_header_sys_mman_h=yes], [libffi_header_sys_mman_h=no])
|
||||||
|
AC_CHECK_FUNC([mmap], [libffi_func_mmap=yes], [libffi_func_mmap=no])
|
||||||
|
if test "$libffi_header_sys_mman_h" != yes \
|
||||||
|
|| test "$libffi_func_mmap" != yes; then
|
||||||
|
ac_cv_func_mmap_file=no
|
||||||
|
ac_cv_func_mmap_dev_zero=no
|
||||||
|
ac_cv_func_mmap_anon=no
|
||||||
|
else
|
||||||
|
AC_CACHE_CHECK([whether read-only mmap of a plain file works],
|
||||||
|
ac_cv_func_mmap_file,
|
||||||
|
[# Add a system to this blacklist if
|
||||||
|
# mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
|
||||||
|
# memory area containing the same data that you'd get if you applied
|
||||||
|
# read() to the same fd. The only system known to have a problem here
|
||||||
|
# is VMS, where text files have record structure.
|
||||||
|
case "$host_os" in
|
||||||
|
vms* | ultrix*)
|
||||||
|
ac_cv_func_mmap_file=no ;;
|
||||||
|
*)
|
||||||
|
ac_cv_func_mmap_file=yes;;
|
||||||
|
esac])
|
||||||
|
AC_CACHE_CHECK([whether mmap from /dev/zero works],
|
||||||
|
ac_cv_func_mmap_dev_zero,
|
||||||
|
[# Add a system to this blacklist if it has mmap() but /dev/zero
|
||||||
|
# does not exist, or if mmapping /dev/zero does not give anonymous
|
||||||
|
# zeroed pages with both the following properties:
|
||||||
|
# 1. If you map N consecutive pages in with one call, and then
|
||||||
|
# unmap any subset of those pages, the pages that were not
|
||||||
|
# explicitly unmapped remain accessible.
|
||||||
|
# 2. If you map two adjacent blocks of memory and then unmap them
|
||||||
|
# both at once, they must both go away.
|
||||||
|
# Systems known to be in this category are Windows (all variants),
|
||||||
|
# VMS, and Darwin.
|
||||||
|
case "$host_os" in
|
||||||
|
vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
|
||||||
|
ac_cv_func_mmap_dev_zero=no ;;
|
||||||
|
*)
|
||||||
|
ac_cv_func_mmap_dev_zero=yes;;
|
||||||
|
esac])
|
||||||
|
|
||||||
|
# Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
|
||||||
|
AC_CACHE_CHECK([for MAP_ANON(YMOUS)], ac_cv_decl_map_anon,
|
||||||
|
[AC_TRY_COMPILE(
|
||||||
|
[#include <sys/types.h>
|
||||||
|
#include <sys/mman.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#ifndef MAP_ANONYMOUS
|
||||||
|
#define MAP_ANONYMOUS MAP_ANON
|
||||||
|
#endif
|
||||||
|
],
|
||||||
|
[int n = MAP_ANONYMOUS;],
|
||||||
|
ac_cv_decl_map_anon=yes,
|
||||||
|
ac_cv_decl_map_anon=no)])
|
||||||
|
|
||||||
|
if test $ac_cv_decl_map_anon = no; then
|
||||||
|
ac_cv_func_mmap_anon=no
|
||||||
|
else
|
||||||
|
AC_CACHE_CHECK([whether mmap with MAP_ANON(YMOUS) works],
|
||||||
|
ac_cv_func_mmap_anon,
|
||||||
|
[# Add a system to this blacklist if it has mmap() and MAP_ANON or
|
||||||
|
# MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
|
||||||
|
# doesn't give anonymous zeroed pages with the same properties listed
|
||||||
|
# above for use of /dev/zero.
|
||||||
|
# Systems known to be in this category are Windows, VMS, and SCO Unix.
|
||||||
|
case "$host_os" in
|
||||||
|
vms* | cygwin* | pe | mingw* | sco* | udk* )
|
||||||
|
ac_cv_func_mmap_anon=no ;;
|
||||||
|
*)
|
||||||
|
ac_cv_func_mmap_anon=yes;;
|
||||||
|
esac])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $ac_cv_func_mmap_file = yes; then
|
||||||
|
AC_DEFINE(HAVE_MMAP_FILE, 1,
|
||||||
|
[Define if read-only mmap of a plain file works.])
|
||||||
|
fi
|
||||||
|
if test $ac_cv_func_mmap_dev_zero = yes; then
|
||||||
|
AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
|
||||||
|
[Define if mmap of /dev/zero works.])
|
||||||
|
fi
|
||||||
|
if test $ac_cv_func_mmap_anon = yes; then
|
||||||
|
AC_DEFINE(HAVE_MMAP_ANON, 1,
|
||||||
|
[Define if mmap with MAP_ANON(YMOUS) works.])
|
||||||
|
fi
|
||||||
|
])
|
||||||
1037
aclocal.m4
vendored
Normal file
1037
aclocal.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
390
configure.ac
Normal file
390
configure.ac
Normal file
@@ -0,0 +1,390 @@
|
|||||||
|
dnl Process this with autoconf to create configure
|
||||||
|
|
||||||
|
AC_PREREQ(2.64)
|
||||||
|
|
||||||
|
AC_INIT([libffi], [3.0.8], [http://gcc.gnu.org/bugs.html])
|
||||||
|
AC_CONFIG_HEADERS([fficonfig.h])
|
||||||
|
|
||||||
|
AM_ENABLE_MULTILIB(, ..)
|
||||||
|
|
||||||
|
AC_CANONICAL_SYSTEM
|
||||||
|
target_alias=${target_alias-$host_alias}
|
||||||
|
|
||||||
|
. ${srcdir}/configure.host
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE
|
||||||
|
|
||||||
|
# The same as in boehm-gc and libstdc++. Have to borrow it from there.
|
||||||
|
# We must force CC to /not/ be precious variables; otherwise
|
||||||
|
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
||||||
|
# As a side effect, we have to subst CFLAGS ourselves.
|
||||||
|
|
||||||
|
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
||||||
|
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
||||||
|
AC_PROG_CC
|
||||||
|
m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
||||||
|
|
||||||
|
AC_SUBST(CFLAGS)
|
||||||
|
|
||||||
|
AM_PROG_AS
|
||||||
|
AM_PROG_CC_C_O
|
||||||
|
AC_PROG_LIBTOOL
|
||||||
|
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS(sys/mman.h)
|
||||||
|
AC_CHECK_FUNCS(mmap)
|
||||||
|
AC_FUNC_MMAP_BLACKLIST
|
||||||
|
|
||||||
|
dnl The -no-testsuite modules omit the test subdir.
|
||||||
|
AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
|
||||||
|
|
||||||
|
TARGETDIR="unknown"
|
||||||
|
case "$host" in
|
||||||
|
alpha*-*-*)
|
||||||
|
TARGET=ALPHA; TARGETDIR=alpha;
|
||||||
|
# Support 128-bit long double, changable via command-line switch.
|
||||||
|
HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
arm*-*-*)
|
||||||
|
TARGET=ARM; TARGETDIR=arm
|
||||||
|
;;
|
||||||
|
|
||||||
|
amd64-*-freebsd*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
cris-*-*)
|
||||||
|
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||||
|
;;
|
||||||
|
|
||||||
|
frv-*-*)
|
||||||
|
TARGET=FRV; TARGETDIR=frv
|
||||||
|
;;
|
||||||
|
|
||||||
|
hppa*-*-linux* | parisc*-*-linux*)
|
||||||
|
TARGET=PA_LINUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
hppa*64-*-hpux*)
|
||||||
|
TARGET=PA64_HPUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
hppa*-*-hpux*)
|
||||||
|
TARGET=PA_HPUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
|
||||||
|
i386-*-freebsd* | i386-*-openbsd*)
|
||||||
|
TARGET=X86_FREEBSD; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
|
||||||
|
TARGET=X86_WIN32; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-darwin*)
|
||||||
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-solaris2.1[[0-9]]*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-*)
|
||||||
|
TARGET=X86; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
ia64*-*-*)
|
||||||
|
TARGET=IA64; TARGETDIR=ia64
|
||||||
|
;;
|
||||||
|
|
||||||
|
m32r*-*-*)
|
||||||
|
TARGET=M32R; TARGETDIR=m32r
|
||||||
|
;;
|
||||||
|
|
||||||
|
m68k-*-*)
|
||||||
|
TARGET=M68K; TARGETDIR=m68k
|
||||||
|
;;
|
||||||
|
|
||||||
|
mips-sgi-irix5.* | mips-sgi-irix6.*)
|
||||||
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
|
;;
|
||||||
|
mips*-*-linux*)
|
||||||
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
|
;;
|
||||||
|
|
||||||
|
moxie-*-*)
|
||||||
|
TARGET=MOXIE; TARGETDIR=moxie
|
||||||
|
;;
|
||||||
|
|
||||||
|
powerpc*-*-linux* | powerpc-*-sysv*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-beos*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-darwin*)
|
||||||
|
TARGET=POWERPC_DARWIN; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-aix* | rs6000-*-aix*)
|
||||||
|
TARGET=POWERPC_AIX; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-freebsd*)
|
||||||
|
TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc*-*-rtems*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
|
||||||
|
s390-*-* | s390x-*-*)
|
||||||
|
TARGET=S390; TARGETDIR=s390
|
||||||
|
;;
|
||||||
|
|
||||||
|
sh-*-* | sh[[34]]*-*-*)
|
||||||
|
TARGET=SH; TARGETDIR=sh
|
||||||
|
;;
|
||||||
|
sh64-*-* | sh5*-*-*)
|
||||||
|
TARGET=SH64; TARGETDIR=sh64
|
||||||
|
;;
|
||||||
|
|
||||||
|
sparc*-*-*)
|
||||||
|
TARGET=SPARC; TARGETDIR=sparc
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-darwin*)
|
||||||
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-cygwin* | x86_64-*-mingw*)
|
||||||
|
TARGET=X86_WIN64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_SUBST(AM_RUNTESTFLAGS)
|
||||||
|
|
||||||
|
if test $TARGETDIR = unknown; then
|
||||||
|
AC_MSG_ERROR(["libffi has not been ported to $host."])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
|
||||||
|
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
||||||
|
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
||||||
|
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
||||||
|
AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
|
||||||
|
AM_CONDITIONAL(X86_WIN64, test x$TARGET = xX86_WIN64)
|
||||||
|
AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
|
||||||
|
AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
|
||||||
|
AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
|
||||||
|
AM_CONDITIONAL(M32R, test x$TARGET = xM32R)
|
||||||
|
AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
|
||||||
|
AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
|
||||||
|
AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
|
||||||
|
AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
|
||||||
|
AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
|
||||||
|
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
|
||||||
|
AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
|
||||||
|
AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
|
||||||
|
AM_CONDITIONAL(S390, test x$TARGET = xS390)
|
||||||
|
AM_CONDITIONAL(X86_64, test x$TARGET = xX86_64)
|
||||||
|
AM_CONDITIONAL(SH, test x$TARGET = xSH)
|
||||||
|
AM_CONDITIONAL(SH64, test x$TARGET = xSH64)
|
||||||
|
AM_CONDITIONAL(PA_LINUX, test x$TARGET = xPA_LINUX)
|
||||||
|
AM_CONDITIONAL(PA_HPUX, test x$TARGET = xPA_HPUX)
|
||||||
|
AM_CONDITIONAL(PA64_HPUX, test x$TARGET = xPA64_HPUX)
|
||||||
|
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_FUNCS(memcpy)
|
||||||
|
AC_FUNC_ALLOCA
|
||||||
|
|
||||||
|
AC_CHECK_SIZEOF(double)
|
||||||
|
AC_CHECK_SIZEOF(long double)
|
||||||
|
|
||||||
|
# Also AC_SUBST this variable for ffi.h.
|
||||||
|
if test -z "$HAVE_LONG_DOUBLE"; then
|
||||||
|
HAVE_LONG_DOUBLE=0
|
||||||
|
if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
|
||||||
|
if test $ac_cv_sizeof_long_double != 0; then
|
||||||
|
HAVE_LONG_DOUBLE=1
|
||||||
|
AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST(HAVE_LONG_DOUBLE)
|
||||||
|
|
||||||
|
AC_C_BIGENDIAN
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .cfi pseudo-op support],
|
||||||
|
libffi_cv_as_cfi_pseudo_op, [
|
||||||
|
libffi_cv_as_cfi_pseudo_op=unknown
|
||||||
|
AC_TRY_COMPILE([asm (".cfi_startproc\n\t.cfi_endproc");],,
|
||||||
|
[libffi_cv_as_cfi_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_cfi_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_cfi_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .cfi_* directives.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$TARGET = xSPARC; then
|
||||||
|
AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
|
||||||
|
libffi_cv_as_sparc_ua_pcrel, [
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
save_LDFLAGS="$LDFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fpic"
|
||||||
|
LDFLAGS="$LDFLAGS -shared"
|
||||||
|
AC_TRY_LINK([asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");],,
|
||||||
|
[libffi_cv_as_sparc_ua_pcrel=yes],
|
||||||
|
[libffi_cv_as_sparc_ua_pcrel=no])
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
LDFLAGS="$save_LDFLAGS"])
|
||||||
|
if test "x$libffi_cv_as_sparc_ua_pcrel" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
|
||||||
|
[Define if your assembler and linker support unaligned PC relative relocs.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .register pseudo-op support],
|
||||||
|
libffi_cv_as_register_pseudo_op, [
|
||||||
|
libffi_cv_as_register_pseudo_op=unknown
|
||||||
|
# Check if we have .register
|
||||||
|
AC_TRY_COMPILE([asm (".register %g2, #scratch");],,
|
||||||
|
[libffi_cv_as_register_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_register_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_register_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .register.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then
|
||||||
|
AC_CACHE_CHECK([assembler supports pc related relocs],
|
||||||
|
libffi_cv_as_x86_pcrel, [
|
||||||
|
libffi_cv_as_x86_pcrel=yes
|
||||||
|
echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
|
||||||
|
if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
||||||
|
libffi_cv_as_x86_pcrel=no
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_x86_pcrel" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_X86_PCREL, 1,
|
||||||
|
[Define if your assembler supports PC relative relocs.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
|
||||||
|
libffi_cv_ro_eh_frame, [
|
||||||
|
libffi_cv_ro_eh_frame=no
|
||||||
|
echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
|
||||||
|
if $CC $CFLAGS -S -fpic -fexceptions -o conftest.s conftest.c > /dev/null 2>&1; then
|
||||||
|
if grep '.section.*eh_frame.*"a"' conftest.s > /dev/null; then
|
||||||
|
libffi_cv_ro_eh_frame=yes
|
||||||
|
elif grep '.section.*eh_frame.*#alloc' conftest.c \
|
||||||
|
| grep -v '#write' > /dev/null; then
|
||||||
|
libffi_cv_ro_eh_frame=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f conftest.*
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_ro_eh_frame" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_RO_EH_FRAME, 1,
|
||||||
|
[Define if .eh_frame sections should be read-only.])
|
||||||
|
AC_DEFINE(EH_FRAME_FLAGS, "a",
|
||||||
|
[Define to the flags needed for the .section .eh_frame directive.])
|
||||||
|
else
|
||||||
|
AC_DEFINE(EH_FRAME_FLAGS, "aw",
|
||||||
|
[Define to the flags needed for the .section .eh_frame directive.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([for __attribute__((visibility("hidden")))],
|
||||||
|
libffi_cv_hidden_visibility_attribute, [
|
||||||
|
echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1; }' > conftest.c
|
||||||
|
libffi_cv_hidden_visibility_attribute=no
|
||||||
|
if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
|
||||||
|
if grep '\.hidden.*foo' conftest.s >/dev/null; then
|
||||||
|
libffi_cv_hidden_visibility_attribute=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f conftest.*
|
||||||
|
])
|
||||||
|
if test $libffi_cv_hidden_visibility_attribute = yes; then
|
||||||
|
AC_DEFINE(HAVE_HIDDEN_VISIBILITY_ATTRIBUTE, 1,
|
||||||
|
[Define if __attribute__((visibility("hidden"))) is supported.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AH_BOTTOM([
|
||||||
|
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name) .hidden name
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name)
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_SUBST(TARGET)
|
||||||
|
AC_SUBST(TARGETDIR)
|
||||||
|
|
||||||
|
AC_SUBST(SHELL)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(debug,
|
||||||
|
[ --enable-debug debugging mode],
|
||||||
|
if test "$enable_debug" = "yes"; then
|
||||||
|
AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(structs,
|
||||||
|
[ --disable-structs omit code for struct support],
|
||||||
|
if test "$enable_structs" = "no"; then
|
||||||
|
AC_DEFINE(FFI_NO_STRUCTS, 1, [Define this is you do not want support for aggregate types.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(raw-api,
|
||||||
|
[ --disable-raw-api make the raw api unavailable],
|
||||||
|
if test "$enable_raw_api" = "no"; then
|
||||||
|
AC_DEFINE(FFI_NO_RAW_API, 1, [Define this is you do not want support for the raw API.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(purify-safety,
|
||||||
|
[ --enable-purify-safety purify-safe mode],
|
||||||
|
if test "$enable_purify_safety" = "yes"; then
|
||||||
|
AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
if test -n "$with_cross_host" &&
|
||||||
|
test x"$with_cross_host" != x"no"; then
|
||||||
|
toolexecdir='$(exec_prefix)/$(target_alias)'
|
||||||
|
toolexeclibdir='$(toolexecdir)/lib'
|
||||||
|
else
|
||||||
|
toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
|
||||||
|
toolexeclibdir='$(libdir)'
|
||||||
|
fi
|
||||||
|
multi_os_directory=`$CC -print-multi-os-directory`
|
||||||
|
case $multi_os_directory in
|
||||||
|
.) ;; # Avoid trailing /.
|
||||||
|
*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
|
||||||
|
esac
|
||||||
|
AC_SUBST(toolexecdir)
|
||||||
|
AC_SUBST(toolexeclibdir)
|
||||||
|
|
||||||
|
if test "${multilib}" = "yes"; then
|
||||||
|
multilib_arg="--enable-multilib"
|
||||||
|
else
|
||||||
|
multilib_arg=
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CONFIG_COMMANDS(include, [test -d include || mkdir include])
|
||||||
|
AC_CONFIG_COMMANDS(src, [
|
||||||
|
test -d src || mkdir src
|
||||||
|
test -d src/$TARGETDIR || mkdir src/$TARGETDIR
|
||||||
|
], [TARGETDIR="$TARGETDIR"])
|
||||||
|
|
||||||
|
AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h)
|
||||||
|
|
||||||
|
AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile)
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
11
configure.host
Normal file
11
configure.host
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# configure.host
|
||||||
|
#
|
||||||
|
# This shell script handles all host based configuration for libffi.
|
||||||
|
#
|
||||||
|
|
||||||
|
# THIS TABLE IS SORTED. KEEP IT THAT WAY.
|
||||||
|
case "${host}" in
|
||||||
|
frv*-elf)
|
||||||
|
LDFLAGS=`echo $LDFLAGS | sed "s/\-B[^ ]*libgloss\/frv\///"`\ -B`pwd`/../libgloss/frv/
|
||||||
|
;;
|
||||||
|
esac
|
||||||
164
doc/.svn/entries
Normal file
164
doc/.svn/entries
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
10
|
||||||
|
|
||||||
|
dir
|
||||||
|
152280
|
||||||
|
svn://gcc.gnu.org/svn/gcc/trunk/libffi/doc
|
||||||
|
svn://gcc.gnu.org/svn/gcc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-06-09T10:21:19.356122Z
|
||||||
|
148309
|
||||||
|
aph
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
138bc75d-0d04-0410-961f-82ee72b054a4
|
||||||
|
|
||||||
|
libffi.texi
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-06-10T05:25:05.000000Z
|
||||||
|
2c36d1d9259ed7b885ff66784a65d3a0
|
||||||
|
2009-06-09T10:21:19.356122Z
|
||||||
|
148309
|
||||||
|
aph
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
15350
|
||||||
|
|
||||||
|
stamp-vti
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-06-10T05:25:05.000000Z
|
||||||
|
7123a892595757886f0ee120347f9565
|
||||||
|
2009-06-09T10:21:19.356122Z
|
||||||
|
148309
|
||||||
|
aph
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
101
|
||||||
|
|
||||||
|
libffi.info
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-06-10T05:25:05.000000Z
|
||||||
|
5f18f2f020ebe104a830fecfe6f6bb22
|
||||||
|
2009-06-09T10:21:19.356122Z
|
||||||
|
148309
|
||||||
|
aph
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
18511
|
||||||
|
|
||||||
|
version.texi
|
||||||
|
file
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2009-06-10T05:25:05.000000Z
|
||||||
|
7123a892595757886f0ee120347f9565
|
||||||
|
2009-06-09T10:21:19.356122Z
|
||||||
|
148309
|
||||||
|
aph
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
101
|
||||||
|
|
||||||
533
doc/.svn/text-base/libffi.info.svn-base
Normal file
533
doc/.svn/text-base/libffi.info.svn-base
Normal file
@@ -0,0 +1,533 @@
|
|||||||
|
This is doc/libffi.info, produced by makeinfo version 4.12 from
|
||||||
|
./doc/libffi.texi.
|
||||||
|
|
||||||
|
This manual is for Libffi, a portable foreign-function interface
|
||||||
|
library.
|
||||||
|
|
||||||
|
Copyright (C) 2008 Red Hat, Inc.
|
||||||
|
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2, or
|
||||||
|
(at your option) any later version. A copy of the license is
|
||||||
|
included in the section entitled "GNU General Public License".
|
||||||
|
|
||||||
|
|
||||||
|
INFO-DIR-SECTION
|
||||||
|
START-INFO-DIR-ENTRY
|
||||||
|
* libffi: (libffi). Portable foreign-function interface library.
|
||||||
|
END-INFO-DIR-ENTRY
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Top, Next: Introduction, Up: (dir)
|
||||||
|
|
||||||
|
libffi
|
||||||
|
******
|
||||||
|
|
||||||
|
This manual is for Libffi, a portable foreign-function interface
|
||||||
|
library.
|
||||||
|
|
||||||
|
Copyright (C) 2008 Red Hat, Inc.
|
||||||
|
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2, or
|
||||||
|
(at your option) any later version. A copy of the license is
|
||||||
|
included in the section entitled "GNU General Public License".
|
||||||
|
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
* Introduction:: What is libffi?
|
||||||
|
* Using libffi:: How to use libffi.
|
||||||
|
* Missing Features:: Things libffi can't do.
|
||||||
|
* Index:: Index.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Introduction, Next: Using libffi, Prev: Top, Up: Top
|
||||||
|
|
||||||
|
1 What is libffi?
|
||||||
|
*****************
|
||||||
|
|
||||||
|
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 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. The calling convention is also sometimes called the "ABI" or
|
||||||
|
"Application Binary Interface".
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Using libffi, Next: Missing Features, Prev: Introduction, Up: Top
|
||||||
|
|
||||||
|
2 Using libffi
|
||||||
|
**************
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
* The Basics:: The basic libffi API.
|
||||||
|
* Simple Example:: A simple example.
|
||||||
|
* Types:: libffi type descriptions.
|
||||||
|
* Multiple ABIs:: Different passing styles on one platform.
|
||||||
|
* The Closure API:: Writing a generic function.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: The Basics, Next: Simple Example, Up: Using libffi
|
||||||
|
|
||||||
|
2.1 The Basics
|
||||||
|
==============
|
||||||
|
|
||||||
|
`Libffi' assumes that you have a pointer to the function you wish to
|
||||||
|
call and that you know the number and types of arguments to pass it, as
|
||||||
|
well as the return type of the function.
|
||||||
|
|
||||||
|
The first thing you must do is create an `ffi_cif' object that
|
||||||
|
matches the signature of the function you wish to call. This is a
|
||||||
|
separate step because it is common to make multiple calls using a
|
||||||
|
single `ffi_cif'. The "cif" in `ffi_cif' stands for Call InterFace.
|
||||||
|
To prepare a call interface object, use the function `ffi_prep_cif'.
|
||||||
|
|
||||||
|
-- Function: ffi_status ffi_prep_cif (ffi_cif *CIF, ffi_abi ABI,
|
||||||
|
unsigned int NARGS, ffi_type *RTYPE, ffi_type **ARGTYPES)
|
||||||
|
This initializes CIF according to the given parameters.
|
||||||
|
|
||||||
|
ABI is the ABI to use; normally `FFI_DEFAULT_ABI' is what you
|
||||||
|
want. *note Multiple ABIs:: for more information.
|
||||||
|
|
||||||
|
NARGS is the number of arguments that this function accepts.
|
||||||
|
`libffi' does not yet handle varargs functions; see *note Missing
|
||||||
|
Features:: for more information.
|
||||||
|
|
||||||
|
RTYPE is a pointer to an `ffi_type' structure that describes the
|
||||||
|
return type of the function. *Note Types::.
|
||||||
|
|
||||||
|
ARGTYPES is a vector of `ffi_type' pointers. ARGTYPES must have
|
||||||
|
NARGS elements. If NARGS is 0, this argument is ignored.
|
||||||
|
|
||||||
|
`ffi_prep_cif' returns a `libffi' status code, of type
|
||||||
|
`ffi_status'. This will be either `FFI_OK' if everything worked
|
||||||
|
properly; `FFI_BAD_TYPEDEF' if one of the `ffi_type' objects is
|
||||||
|
incorrect; or `FFI_BAD_ABI' if the ABI parameter is invalid.
|
||||||
|
|
||||||
|
To call a function using an initialized `ffi_cif', use the
|
||||||
|
`ffi_call' function:
|
||||||
|
|
||||||
|
-- Function: void ffi_call (ffi_cif *CIF, void *FN, void *RVALUE, void
|
||||||
|
**AVALUES)
|
||||||
|
This calls the function FN according to the description given in
|
||||||
|
CIF. CIF must have already been prepared using `ffi_prep_cif'.
|
||||||
|
|
||||||
|
RVALUE is a pointer to a chunk of memory that will hold the result
|
||||||
|
of the function call. This must be large enough to hold the
|
||||||
|
result and must be suitably aligned; it is the caller's
|
||||||
|
responsibility to ensure this. If CIF declares that the function
|
||||||
|
returns `void' (using `ffi_type_void'), then RVALUE is ignored.
|
||||||
|
If RVALUE is `NULL', then the return value is discarded.
|
||||||
|
|
||||||
|
AVALUES is a vector of `void *' pointers that point to the memory
|
||||||
|
locations holding the argument values for a call. If CIF declares
|
||||||
|
that the function has no arguments (i.e., NARGS was 0), then
|
||||||
|
AVALUES is ignored.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Simple Example, Next: Types, Prev: The Basics, Up: Using libffi
|
||||||
|
|
||||||
|
2.2 Simple Example
|
||||||
|
==================
|
||||||
|
|
||||||
|
Here is a trivial example that calls `puts' a few times.
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <ffi.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
ffi_cif cif;
|
||||||
|
ffi_type *args[1];
|
||||||
|
void *values[1];
|
||||||
|
char *s;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
/* Initialize the argument info vectors */
|
||||||
|
args[0] = &ffi_type_pointer;
|
||||||
|
values[0] = &s;
|
||||||
|
|
||||||
|
/* Initialize the cif */
|
||||||
|
if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
|
||||||
|
&ffi_type_uint, args) == FFI_OK)
|
||||||
|
{
|
||||||
|
s = "Hello World!";
|
||||||
|
ffi_call(&cif, puts, &rc, values);
|
||||||
|
/* rc now holds the result of the call to puts */
|
||||||
|
|
||||||
|
/* values holds a pointer to the function's arg, so to
|
||||||
|
call puts() again all we need to do is change the
|
||||||
|
value of s */
|
||||||
|
s = "This is cool!";
|
||||||
|
ffi_call(&cif, puts, &rc, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Types, Next: Multiple ABIs, Prev: Simple Example, Up: Using libffi
|
||||||
|
|
||||||
|
2.3 Types
|
||||||
|
=========
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
* Primitive Types:: Built-in types.
|
||||||
|
* Structures:: Structure types.
|
||||||
|
* Type Example:: Structure type example.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Primitive Types, Next: Structures, Up: Types
|
||||||
|
|
||||||
|
2.3.1 Primitive Types
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
`Libffi' provides a number of built-in type descriptors that can be
|
||||||
|
used to describe argument and return types:
|
||||||
|
|
||||||
|
`ffi_type_void'
|
||||||
|
The type `void'. This cannot be used for argument types, only for
|
||||||
|
return values.
|
||||||
|
|
||||||
|
`ffi_type_uint8'
|
||||||
|
An unsigned, 8-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_sint8'
|
||||||
|
A signed, 8-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_uint16'
|
||||||
|
An unsigned, 16-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_sint16'
|
||||||
|
A signed, 16-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_uint32'
|
||||||
|
An unsigned, 32-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_sint32'
|
||||||
|
A signed, 32-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_uint64'
|
||||||
|
An unsigned, 64-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_sint64'
|
||||||
|
A signed, 64-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_float'
|
||||||
|
The C `float' type.
|
||||||
|
|
||||||
|
`ffi_type_double'
|
||||||
|
The C `double' type.
|
||||||
|
|
||||||
|
`ffi_type_uchar'
|
||||||
|
The C `unsigned char' type.
|
||||||
|
|
||||||
|
`ffi_type_schar'
|
||||||
|
The C `signed char' type. (Note that there is not an exact
|
||||||
|
equivalent to the C `char' type in `libffi'; ordinarily you should
|
||||||
|
either use `ffi_type_schar' or `ffi_type_uchar' depending on
|
||||||
|
whether `char' is signed.)
|
||||||
|
|
||||||
|
`ffi_type_ushort'
|
||||||
|
The C `unsigned short' type.
|
||||||
|
|
||||||
|
`ffi_type_sshort'
|
||||||
|
The C `short' type.
|
||||||
|
|
||||||
|
`ffi_type_uint'
|
||||||
|
The C `unsigned int' type.
|
||||||
|
|
||||||
|
`ffi_type_sint'
|
||||||
|
The C `int' type.
|
||||||
|
|
||||||
|
`ffi_type_ulong'
|
||||||
|
The C `unsigned long' type.
|
||||||
|
|
||||||
|
`ffi_type_slong'
|
||||||
|
The C `long' type.
|
||||||
|
|
||||||
|
`ffi_type_longdouble'
|
||||||
|
On platforms that have a C `long double' type, this is defined.
|
||||||
|
On other platforms, it is not.
|
||||||
|
|
||||||
|
`ffi_type_pointer'
|
||||||
|
A generic `void *' pointer. You should use this for all pointers,
|
||||||
|
regardless of their real type.
|
||||||
|
|
||||||
|
Each of these is of type `ffi_type', so you must take the address
|
||||||
|
when passing to `ffi_prep_cif'.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Structures, Next: Type Example, Prev: Primitive Types, Up: Types
|
||||||
|
|
||||||
|
2.3.2 Structures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Although `libffi' has no special support for unions or bit-fields, it
|
||||||
|
is perfectly happy passing structures back and forth. You must first
|
||||||
|
describe the structure to `libffi' by creating a new `ffi_type' object
|
||||||
|
for it.
|
||||||
|
|
||||||
|
-- ffi_type:
|
||||||
|
The `ffi_type' has the following members:
|
||||||
|
`size_t size'
|
||||||
|
This is set by `libffi'; you should initialize it to zero.
|
||||||
|
|
||||||
|
`unsigned short alignment'
|
||||||
|
This is set by `libffi'; you should initialize it to zero.
|
||||||
|
|
||||||
|
`unsigned short type'
|
||||||
|
For a structure, this should be set to `FFI_TYPE_STRUCT'.
|
||||||
|
|
||||||
|
`ffi_type **elements'
|
||||||
|
This is a `NULL'-terminated array of pointers to `ffi_type'
|
||||||
|
objects. There is one element per field of the struct.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Type Example, Prev: Structures, Up: Types
|
||||||
|
|
||||||
|
2.3.3 Type Example
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The following example initializes a `ffi_type' object representing the
|
||||||
|
`tm' struct from Linux's `time.h'.
|
||||||
|
|
||||||
|
Here is how the struct is defined:
|
||||||
|
|
||||||
|
struct tm {
|
||||||
|
int tm_sec;
|
||||||
|
int tm_min;
|
||||||
|
int tm_hour;
|
||||||
|
int tm_mday;
|
||||||
|
int tm_mon;
|
||||||
|
int tm_year;
|
||||||
|
int tm_wday;
|
||||||
|
int tm_yday;
|
||||||
|
int tm_isdst;
|
||||||
|
/* Those are for future use. */
|
||||||
|
long int __tm_gmtoff__;
|
||||||
|
__const char *__tm_zone__;
|
||||||
|
};
|
||||||
|
|
||||||
|
Here is the corresponding code to describe this struct to `libffi':
|
||||||
|
|
||||||
|
{
|
||||||
|
ffi_type tm_type;
|
||||||
|
ffi_type *tm_type_elements[12];
|
||||||
|
int i;
|
||||||
|
|
||||||
|
tm_type.size = tm_type.alignment = 0;
|
||||||
|
tm_type.elements = &tm_type_elements;
|
||||||
|
|
||||||
|
for (i = 0; i < 9; i++)
|
||||||
|
tm_type_elements[i] = &ffi_type_sint;
|
||||||
|
|
||||||
|
tm_type_elements[9] = &ffi_type_slong;
|
||||||
|
tm_type_elements[10] = &ffi_type_pointer;
|
||||||
|
tm_type_elements[11] = NULL;
|
||||||
|
|
||||||
|
/* tm_type can now be used to represent tm argument types and
|
||||||
|
return types for ffi_prep_cif() */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Multiple ABIs, Next: The Closure API, Prev: Types, Up: Using libffi
|
||||||
|
|
||||||
|
2.4 Multiple ABIs
|
||||||
|
=================
|
||||||
|
|
||||||
|
A given platform may provide multiple different ABIs at once. For
|
||||||
|
instance, the x86 platform has both `stdcall' and `fastcall' functions.
|
||||||
|
|
||||||
|
`libffi' provides some support for this. However, this is
|
||||||
|
necessarily platform-specific.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: The Closure API, Prev: Multiple ABIs, Up: Using libffi
|
||||||
|
|
||||||
|
2.5 The Closure API
|
||||||
|
===================
|
||||||
|
|
||||||
|
`libffi' also provides a way to write a generic function - a function
|
||||||
|
that can accept and decode any combination of arguments. This can be
|
||||||
|
useful when writing an interpreter, or to provide wrappers for
|
||||||
|
arbitrary functions.
|
||||||
|
|
||||||
|
This facility is called the "closure API". Closures are not
|
||||||
|
supported on all platforms; you can check the `FFI_CLOSURES' define to
|
||||||
|
determine whether they are supported on the current platform.
|
||||||
|
|
||||||
|
Because closures work by assembling a tiny function at runtime, they
|
||||||
|
require special allocation on platforms that have a non-executable
|
||||||
|
heap. Memory management for closures is handled by a pair of functions:
|
||||||
|
|
||||||
|
-- Function: void *ffi_closure_alloc (size_t SIZE, void **CODE)
|
||||||
|
Allocate a chunk of memory holding SIZE bytes. This returns a
|
||||||
|
pointer to the writable address, and sets *CODE to the
|
||||||
|
corresponding executable address.
|
||||||
|
|
||||||
|
SIZE should be sufficient to hold a `ffi_closure' object.
|
||||||
|
|
||||||
|
-- Function: void ffi_closure_free (void *WRITABLE)
|
||||||
|
Free memory allocated using `ffi_closure_alloc'. The argument is
|
||||||
|
the writable address that was returned.
|
||||||
|
|
||||||
|
Once you have allocated the memory for a closure, you must construct
|
||||||
|
a `ffi_cif' describing the function call. Finally you can prepare the
|
||||||
|
closure function:
|
||||||
|
|
||||||
|
-- Function: ffi_status ffi_prep_closure_loc (ffi_closure *CLOSURE,
|
||||||
|
ffi_cif *CIF, void (*FUN) (ffi_cif *CIF, void *RET, void
|
||||||
|
**ARGS, void *USER_DATA), void *USER_DATA, void *CODELOC)
|
||||||
|
Prepare a closure function.
|
||||||
|
|
||||||
|
CLOSURE is the address of a `ffi_closure' object; this is the
|
||||||
|
writable address returned by `ffi_closure_alloc'.
|
||||||
|
|
||||||
|
CIF is the `ffi_cif' describing the function parameters.
|
||||||
|
|
||||||
|
USER_DATA is an arbitrary datum that is passed, uninterpreted, to
|
||||||
|
your closure function.
|
||||||
|
|
||||||
|
CODELOC is the executable address returned by `ffi_closure_alloc'.
|
||||||
|
|
||||||
|
FUN is the function which will be called when the closure is
|
||||||
|
invoked. It is called with the arguments:
|
||||||
|
CIF
|
||||||
|
The `ffi_cif' passed to `ffi_prep_closure_loc'.
|
||||||
|
|
||||||
|
RET
|
||||||
|
A pointer to the memory used for the function's return value.
|
||||||
|
FUN must fill this, unless the function is declared as
|
||||||
|
returning `void'.
|
||||||
|
|
||||||
|
ARGS
|
||||||
|
A vector of pointers to memory holding the arguments to the
|
||||||
|
function.
|
||||||
|
|
||||||
|
USER_DATA
|
||||||
|
The same USER_DATA that was passed to `ffi_prep_closure_loc'.
|
||||||
|
|
||||||
|
`ffi_prep_closure_loc' will return `FFI_OK' if everything went ok,
|
||||||
|
and something else on error.
|
||||||
|
|
||||||
|
After calling `ffi_prep_closure_loc', you can cast CODELOC to the
|
||||||
|
appropriate pointer-to-function type.
|
||||||
|
|
||||||
|
You may see old code referring to `ffi_prep_closure'. This function
|
||||||
|
is deprecated, as it cannot handle the need for separate writable and
|
||||||
|
executable addresses.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Missing Features, Next: Index, Prev: Using libffi, Up: Top
|
||||||
|
|
||||||
|
3 Missing Features
|
||||||
|
******************
|
||||||
|
|
||||||
|
`libffi' is missing a few features. We welcome patches to add support
|
||||||
|
for these.
|
||||||
|
|
||||||
|
* There is no support for calling varargs functions. This may work
|
||||||
|
on some platforms, depending on how the ABI is defined, but it is
|
||||||
|
not reliable.
|
||||||
|
|
||||||
|
* There is no support for bit fields in structures.
|
||||||
|
|
||||||
|
* The closure API is
|
||||||
|
|
||||||
|
* The "raw" API is undocumented.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Index, Prev: Missing Features, Up: Top
|
||||||
|
|
||||||
|
Index
|
||||||
|
*****
|
||||||
|
|
||||||
|
| ||||||