* README: Update some comments.
* Makefile.am (SUBDIRS): Add include so ffi.h gets installed.
* Makefile.in: Rebuilt.
* include/ffi.h: Change ALPHA to __alpha__ and SPARC to __sparc__.
* types.c: Ditto.
* prep_cif.c (ffi_prep_cif): Ditto.
* alpha/ffi.c, alpha/osf.S, sparc/ffi.c, sparc/v8.S, sparc/v9.S:
Include ffi_private.h.
* include/ffi_private.h (FFI_TYPE_LAST): Define.
This commit is contained in:
@@ -1,3 +1,25 @@
|
||||
Sun Apr 22 12:37:44 2001 Anthony Green <green@redhat.com>
|
||||
|
||||
* README: Update some comments.
|
||||
|
||||
* Makefile.am (SUBDIRS): Add include so ffi.h gets installed.
|
||||
* Makefile.in: Rebuilt.
|
||||
|
||||
* include/ffi.h: Change ALPHA to __alpha__ and SPARC to __sparc__.
|
||||
* types.c: Ditto.
|
||||
* prep_cif.c (ffi_prep_cif): Ditto.
|
||||
|
||||
* alpha/ffi.c, alpha/osf.S, sparc/ffi.c, sparc/v8.S, sparc/v9.S:
|
||||
Include ffi_private.h.
|
||||
|
||||
* include/ffi_private.h (FFI_TYPE_LAST): Define.
|
||||
|
||||
Sun Apr 22 11:41:55 2001 Anthony Green <green@redhat.com>
|
||||
|
||||
* Revolutionary changes. Target independent ffi.h. dejagnu
|
||||
testing infrastructure. Moved source files around. Configure no
|
||||
longer depends on run tests.
|
||||
|
||||
Sat Apr 14 20:49:46 2001 Anthony Green <green@cygnus.com>
|
||||
|
||||
* mips/ffi.c: Include mips/mips.h.
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
AUTOMAKE_OPTIONS = foreign no-installinfo
|
||||
|
||||
if TESTSUBDIR
|
||||
SUBDIRS = testsuite
|
||||
SUBDIRS = include testsuite
|
||||
else
|
||||
SUBDIRS = include
|
||||
endif
|
||||
|
||||
EXTRA_DIST = LICENSE README ChangeLog.v1 alpha/ffi.c arm/ffi.c \
|
||||
|
||||
@@ -80,8 +80,8 @@ VERSION = @VERSION@
|
||||
libffi_basedir = @libffi_basedir@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign no-installinfo
|
||||
|
||||
@TESTSUBDIR_TRUE@SUBDIRS = testsuite
|
||||
@TESTSUBDIR_TRUE@SUBDIRS = include testsuite
|
||||
@TESTSUBDIR_FALSE@SUBDIRS = include
|
||||
|
||||
EXTRA_DIST = LICENSE README ChangeLog.v1 alpha/ffi.c arm/ffi.c ia64/ffi.c m68k/ffi.c mips/ffi.c powerpc/ffi.c s390/ffi.c sparc/ffi.c x86/ffi.c alpha/osf.S arm/sysv.S ia64/unix.S m68k/sysv.S mips/n32.S mips/o32.S powerpc/sysv.S s390/sysv.S sparc/v8.S sparc/v9.S x86/win32.S x86/sysv.S
|
||||
|
||||
@@ -137,7 +137,7 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
DIST_SUBDIRS = testsuite
|
||||
DIST_SUBDIRS = include testsuite include
|
||||
DEP_FILES = .deps/debug.P .deps/java_raw_api.P .deps/prep_cif.P \
|
||||
.deps/raw_api.P .deps/t-asm.P .deps/t-ffi.P .deps/types.P
|
||||
SOURCES = $(libffi_la_SOURCES)
|
||||
|
||||
@@ -63,7 +63,7 @@ Libffi has been ported to:
|
||||
Sparc, 64-bit - Linux (Sparc v9)
|
||||
|
||||
|
||||
Libffi has been tested with GCC 2.95 and newer compilers.
|
||||
Libffi has been tested with GCC 3.00 and newer compilers.
|
||||
|
||||
You must use GNU make to build libffi.
|
||||
|
||||
@@ -379,18 +379,20 @@ single-precision anyway. This causes one test to fail (the `many
|
||||
arguments' test).
|
||||
|
||||
|
||||
What's With The Crazy Comments?
|
||||
===============================
|
||||
|
||||
You might notice a number of cryptic comments in the code, delimited
|
||||
by /*@ and @*/. These are annotations read by the program LCLint, a
|
||||
tool for statically checking C programs. You can read all about it at
|
||||
<http://larch-www.lcs.mit.edu:8001/larch/lclint/index.html>.
|
||||
|
||||
|
||||
History
|
||||
=======
|
||||
|
||||
2.00 ???-??-01
|
||||
|
||||
Many configure improvements. No more run tests required at
|
||||
configure time so cross compiling should work well. ffi.h is
|
||||
target independent now and may be installed safely anywhere.
|
||||
ffitest replaced with dejagnu testing infrastructure. s390
|
||||
port from ????. ia64 port from Hans Boehm. General
|
||||
performance improvements. Closures designed and implemented
|
||||
by Kresten Krab Thorup and ported to ia64 and powerpc by Hans
|
||||
Boehm and ???? respectively.
|
||||
|
||||
1.20 Oct-5-98
|
||||
Raffaele Sena produces ARM port.
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
#include <ffi.h>
|
||||
#include <ffi_private.h>
|
||||
#include <ffi_common.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
|
||||
#define LIBFFI_ASM
|
||||
#include <ffi.h>
|
||||
|
||||
#include <ffi_private.h>
|
||||
|
||||
.arch ev6
|
||||
.text
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include <float.h>
|
||||
|
||||
/* This is lame. Long double support is barely there under SunOS 4.x */
|
||||
#if defined(SPARC) && (SIZEOF_LONG_DOUBLE != 16)
|
||||
#if defined(__sparc__) && (SIZEOF_LONG_DOUBLE != 16)
|
||||
#define BROKEN_LONG_DOUBLE
|
||||
#endif
|
||||
|
||||
@@ -222,7 +222,7 @@ int main(/*@unused@*/ int argc, /*@unused@*/ char *argv[])
|
||||
signed int si1;
|
||||
signed int si2;
|
||||
|
||||
#if defined(ALPHA) || defined(IA64) || defined(SPARC64) || (defined(__mips__) && (_MIPS_SIM == _ABIN32))
|
||||
#if defined(__alpha__) || defined(IA64) || defined(SPARC64) || (defined(__mips__) && (_MIPS_SIM == _ABIN32))
|
||||
long long rint;
|
||||
#else
|
||||
int rint;
|
||||
|
||||
@@ -2,8 +2,5 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
EXTRA_DIST = ffi.h.in ffi_common.h ffi_mips.h
|
||||
|
||||
hackdir=$(includedir)
|
||||
|
||||
hack_DATA=fficonfig.h ffi.h ffi_mips.h
|
||||
noinst_HEADERS=ffi_common.h ffi_private.h
|
||||
include_HEADERS=ffi.h
|
||||
|
||||
@@ -81,15 +81,12 @@ libffi_basedir = @libffi_basedir@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
EXTRA_DIST = ffi.h.in ffi_common.h ffi_mips.h
|
||||
|
||||
hackdir = $(includedir)
|
||||
|
||||
hack_DATA = fficonfig.h ffi.h ffi_mips.h
|
||||
noinst_HEADERS = ffi_common.h ffi_private.h
|
||||
include_HEADERS = ffi.h
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = ../fficonfig.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
DATA = $(hack_DATA)
|
||||
HEADERS = $(include_HEADERS) $(noinst_HEADERS)
|
||||
|
||||
DIST_COMMON = Makefile.am Makefile.in
|
||||
|
||||
@@ -108,27 +105,49 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
|
||||
install-hackDATA: $(hack_DATA)
|
||||
install-includeHEADERS: $(include_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(hackdir)
|
||||
@list='$(hack_DATA)'; for p in $$list; do \
|
||||
if test -f $(srcdir)/$$p; then \
|
||||
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(hackdir)/$$p"; \
|
||||
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(hackdir)/$$p; \
|
||||
else if test -f $$p; then \
|
||||
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(hackdir)/$$p"; \
|
||||
$(INSTALL_DATA) $$p $(DESTDIR)$(hackdir)/$$p; \
|
||||
fi; fi; \
|
||||
$(mkinstalldirs) $(DESTDIR)$(includedir)
|
||||
@list='$(include_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
|
||||
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
|
||||
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
|
||||
done
|
||||
|
||||
uninstall-hackDATA:
|
||||
uninstall-includeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(hack_DATA)'; for p in $$list; do \
|
||||
rm -f $(DESTDIR)$(hackdir)/$$p; \
|
||||
list='$(include_HEADERS)'; for p in $$list; do \
|
||||
rm -f $(DESTDIR)$(includedir)/$$p; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
here=`pwd` && cd $(srcdir) \
|
||||
&& mkid -f$$here/ID $$unique $(LISP)
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|
||||
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|
||||
|
||||
mostlyclean-tags:
|
||||
|
||||
clean-tags:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID
|
||||
|
||||
maintainer-clean-tags:
|
||||
|
||||
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
||||
|
||||
@@ -161,20 +180,20 @@ installcheck: installcheck-am
|
||||
install-exec-am:
|
||||
install-exec: install-exec-am
|
||||
|
||||
install-data-am: install-hackDATA
|
||||
install-data-am: install-includeHEADERS
|
||||
install-data: install-data-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
install: install-am
|
||||
uninstall-am: uninstall-hackDATA
|
||||
uninstall-am: uninstall-includeHEADERS
|
||||
uninstall: uninstall-am
|
||||
all-am: Makefile $(DATA)
|
||||
all-am: Makefile $(HEADERS)
|
||||
all-redirect: all-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(hackdir)
|
||||
$(mkinstalldirs) $(DESTDIR)$(includedir)
|
||||
|
||||
|
||||
mostlyclean-generic:
|
||||
@@ -186,30 +205,32 @@ distclean-generic:
|
||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||
|
||||
maintainer-clean-generic:
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
mostlyclean-am: mostlyclean-tags mostlyclean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
clean-am: clean-tags clean-generic mostlyclean-am
|
||||
|
||||
clean: clean-am
|
||||
|
||||
distclean-am: distclean-generic clean-am
|
||||
distclean-am: distclean-tags distclean-generic clean-am
|
||||
-rm -f libtool
|
||||
|
||||
distclean: distclean-am
|
||||
|
||||
maintainer-clean-am: maintainer-clean-generic distclean-am
|
||||
maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
|
||||
distclean-am
|
||||
@echo "This command is intended for maintainers to use;"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
|
||||
.PHONY: uninstall-hackDATA install-hackDATA tags distdir info-am info \
|
||||
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
|
||||
install-exec install-data-am install-data install-am install \
|
||||
uninstall-am uninstall all-redirect all-am all installdirs \
|
||||
mostlyclean-generic distclean-generic clean-generic \
|
||||
.PHONY: uninstall-includeHEADERS install-includeHEADERS tags \
|
||||
mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
|
||||
distdir info-am info dvi-am dvi check check-am installcheck-am \
|
||||
installcheck install-exec-am install-exec install-data-am install-data \
|
||||
install-am install uninstall-am uninstall all-redirect all-am all \
|
||||
installdirs mostlyclean-generic distclean-generic clean-generic \
|
||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||
|
||||
|
||||
|
||||
@@ -67,14 +67,6 @@ extern "C" {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* ---- System specific configurations ----------------------------------- */
|
||||
|
||||
#ifdef SPARC
|
||||
#if defined(__arch64__) || defined(__sparcv9)
|
||||
#define SPARC64
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef LIBFFI_ASM
|
||||
|
||||
/* ---- Generic type definitions ----------------------------------------- */
|
||||
@@ -299,7 +291,7 @@ struct ffi_ia64_trampoline_struct {
|
||||
};
|
||||
#define FFI_NATIVE_RAW_API 0
|
||||
|
||||
#elif defined(ALPHA)
|
||||
#elif defined(__alpha__)
|
||||
|
||||
#define FFI_CLOSURES 1
|
||||
#define FFI_TRAMPOLINE_SIZE 24
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
#define FFI_TYPE_SINT64 12
|
||||
#define FFI_TYPE_STRUCT 13 /* If this changes, update ffi_mips.h. */
|
||||
#define FFI_TYPE_POINTER 14
|
||||
#define FFI_TYPE_LAST 14
|
||||
|
||||
#if _MIPS_SIM==_ABIN32 && defined(_ABIN32)
|
||||
#define SIZEOF_ARG 8
|
||||
|
||||
@@ -107,7 +107,7 @@ ffi_status ffi_prep_cif(/*@out@*/ /*@partial@*/ ffi_cif *cif,
|
||||
#ifndef M68K
|
||||
/* Make space for the return structure pointer */
|
||||
if (cif->rtype->type == FFI_TYPE_STRUCT
|
||||
#ifdef SPARC
|
||||
#ifdef __sparc__
|
||||
&& (cif->abi != FFI_V9 || cif->rtype->size > 32)
|
||||
#endif
|
||||
)
|
||||
@@ -123,7 +123,7 @@ ffi_status ffi_prep_cif(/*@out@*/ /*@partial@*/ ffi_cif *cif,
|
||||
if (((*ptr)->size == 0) && (initialize_aggregate((*ptr)) != FFI_OK))
|
||||
return FFI_BAD_TYPEDEF;
|
||||
|
||||
#ifdef SPARC
|
||||
#ifdef __sparc__
|
||||
if (((*ptr)->type == FFI_TYPE_STRUCT
|
||||
&& ((*ptr)->size > 16 || cif->abi != FFI_V9))
|
||||
|| ((*ptr)->type == FFI_TYPE_LONGDOUBLE
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
#include <ffi.h>
|
||||
#include <ffi_private.h>
|
||||
#include <ffi_common.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
|
||||
#define LIBFFI_ASM
|
||||
#include <ffi.h>
|
||||
|
||||
#include <ffi_private.h>
|
||||
|
||||
#define STACKFRAME 96 /* Minimum stack framesize for SPARC */
|
||||
#define ARGS (64+4) /* Offset of register area in frame */
|
||||
|
||||
|
||||
@@ -25,8 +25,9 @@
|
||||
|
||||
#define LIBFFI_ASM
|
||||
#include <ffi.h>
|
||||
|
||||
#ifdef SPARC64
|
||||
#include <ffi_private.h>
|
||||
|
||||
#if defined(__arch64__) || defined(__sparcv9)
|
||||
/* Only compile this in for 64bit builds, because otherwise the object file
|
||||
will have inproper architecture due to used instructions. */
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ FFI_INTEGRAL_TYPEDEF(uint32, 4, 4, FFI_TYPE_UINT32);
|
||||
FFI_INTEGRAL_TYPEDEF(sint32, 4, 4, FFI_TYPE_SINT32);
|
||||
FFI_INTEGRAL_TYPEDEF(float, 4, 4, FFI_TYPE_FLOAT);
|
||||
|
||||
#if defined ALPHA || defined SPARC64
|
||||
#if defined __alpha__ || defined SPARC64
|
||||
|
||||
FFI_INTEGRAL_TYPEDEF(pointer, 8, 8, FFI_TYPE_POINTER);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user