* 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:
green
2001-04-22 19:38:34 +00:00
parent bc7144b01b
commit 6fdb7de0fe
16 changed files with 113 additions and 71 deletions

View File

@@ -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> Sat Apr 14 20:49:46 2001 Anthony Green <green@cygnus.com>
* mips/ffi.c: Include mips/mips.h. * mips/ffi.c: Include mips/mips.h.

View File

@@ -3,7 +3,9 @@
AUTOMAKE_OPTIONS = foreign no-installinfo AUTOMAKE_OPTIONS = foreign no-installinfo
if TESTSUBDIR if TESTSUBDIR
SUBDIRS = testsuite SUBDIRS = include testsuite
else
SUBDIRS = include
endif endif
EXTRA_DIST = LICENSE README ChangeLog.v1 alpha/ffi.c arm/ffi.c \ EXTRA_DIST = LICENSE README ChangeLog.v1 alpha/ffi.c arm/ffi.c \

View File

@@ -80,8 +80,8 @@ VERSION = @VERSION@
libffi_basedir = @libffi_basedir@ libffi_basedir = @libffi_basedir@
AUTOMAKE_OPTIONS = foreign no-installinfo AUTOMAKE_OPTIONS = foreign no-installinfo
@TESTSUBDIR_TRUE@SUBDIRS = include testsuite
@TESTSUBDIR_TRUE@SUBDIRS = 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 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 TAR = gtar
GZIP_ENV = --best 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 \ 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 .deps/raw_api.P .deps/t-asm.P .deps/t-ffi.P .deps/types.P
SOURCES = $(libffi_la_SOURCES) SOURCES = $(libffi_la_SOURCES)

View File

@@ -63,7 +63,7 @@ Libffi has been ported to:
Sparc, 64-bit - Linux (Sparc v9) 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. 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). 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 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 1.20 Oct-5-98
Raffaele Sena produces ARM port. Raffaele Sena produces ARM port.

View File

@@ -24,6 +24,7 @@
----------------------------------------------------------------------- */ ----------------------------------------------------------------------- */
#include <ffi.h> #include <ffi.h>
#include <ffi_private.h>
#include <ffi_common.h> #include <ffi_common.h>
#include <stdlib.h> #include <stdlib.h>

View File

@@ -25,7 +25,8 @@
#define LIBFFI_ASM #define LIBFFI_ASM
#include <ffi.h> #include <ffi.h>
#include <ffi_private.h>
.arch ev6 .arch ev6
.text .text

View File

@@ -28,7 +28,7 @@
#include <float.h> #include <float.h>
/* This is lame. Long double support is barely there under SunOS 4.x */ /* 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 #define BROKEN_LONG_DOUBLE
#endif #endif
@@ -222,7 +222,7 @@ int main(/*@unused@*/ int argc, /*@unused@*/ char *argv[])
signed int si1; signed int si1;
signed int si2; 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; long long rint;
#else #else
int rint; int rint;

View File

@@ -2,8 +2,5 @@
AUTOMAKE_OPTIONS = foreign AUTOMAKE_OPTIONS = foreign
EXTRA_DIST = ffi.h.in ffi_common.h ffi_mips.h noinst_HEADERS=ffi_common.h ffi_private.h
include_HEADERS=ffi.h
hackdir=$(includedir)
hack_DATA=fficonfig.h ffi.h ffi_mips.h

View File

@@ -81,15 +81,12 @@ libffi_basedir = @libffi_basedir@
AUTOMAKE_OPTIONS = foreign AUTOMAKE_OPTIONS = foreign
EXTRA_DIST = ffi.h.in ffi_common.h ffi_mips.h noinst_HEADERS = ffi_common.h ffi_private.h
include_HEADERS = ffi.h
hackdir = $(includedir)
hack_DATA = fficonfig.h ffi.h ffi_mips.h
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../fficonfig.h CONFIG_HEADER = ../fficonfig.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
DATA = $(hack_DATA) HEADERS = $(include_HEADERS) $(noinst_HEADERS)
DIST_COMMON = Makefile.am Makefile.in 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 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
install-hackDATA: $(hack_DATA) install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(hackdir) $(mkinstalldirs) $(DESTDIR)$(includedir)
@list='$(hack_DATA)'; for p in $$list; do \ @list='$(include_HEADERS)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \ if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(hackdir)/$$p"; \ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(hackdir)/$$p; \ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
else if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(hackdir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(hackdir)/$$p; \
fi; fi; \
done done
uninstall-hackDATA: uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(hack_DATA)'; for p in $$list; do \ list='$(include_HEADERS)'; for p in $$list; do \
rm -f $(DESTDIR)$(hackdir)/$$p; \ rm -f $(DESTDIR)$(includedir)/$$p; \
done 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) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
@@ -161,20 +180,20 @@ installcheck: installcheck-am
install-exec-am: install-exec-am:
install-exec: install-exec-am install-exec: install-exec-am
install-data-am: install-hackDATA install-data-am: install-includeHEADERS
install-data: install-data-am install-data: install-data-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am install: install-am
uninstall-am: uninstall-hackDATA uninstall-am: uninstall-includeHEADERS
uninstall: uninstall-am uninstall: uninstall-am
all-am: Makefile $(DATA) all-am: Makefile $(HEADERS)
all-redirect: all-am all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs: installdirs:
$(mkinstalldirs) $(DESTDIR)$(hackdir) $(mkinstalldirs) $(DESTDIR)$(includedir)
mostlyclean-generic: mostlyclean-generic:
@@ -186,30 +205,32 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]* -rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-generic mostlyclean-am: mostlyclean-tags mostlyclean-generic
mostlyclean: mostlyclean-am mostlyclean: mostlyclean-am
clean-am: clean-generic mostlyclean-am clean-am: clean-tags clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-generic clean-am distclean-am: distclean-tags distclean-generic clean-am
-rm -f libtool -rm -f libtool
distclean: distclean-am 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 "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." @echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am maintainer-clean: maintainer-clean-am
.PHONY: uninstall-hackDATA install-hackDATA tags distdir info-am info \ .PHONY: uninstall-includeHEADERS install-includeHEADERS tags \
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
install-exec install-data-am install-data install-am install \ distdir info-am info dvi-am dvi check check-am installcheck-am \
uninstall-am uninstall all-redirect all-am all installdirs \ installcheck install-exec-am install-exec install-data-am install-data \
mostlyclean-generic distclean-generic clean-generic \ 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 maintainer-clean-generic clean mostlyclean distclean maintainer-clean

View File

@@ -67,14 +67,6 @@ extern "C" {
#endif #endif
#endif #endif
/* ---- System specific configurations ----------------------------------- */
#ifdef SPARC
#if defined(__arch64__) || defined(__sparcv9)
#define SPARC64
#endif
#endif
#ifndef LIBFFI_ASM #ifndef LIBFFI_ASM
/* ---- Generic type definitions ----------------------------------------- */ /* ---- Generic type definitions ----------------------------------------- */
@@ -299,7 +291,7 @@ struct ffi_ia64_trampoline_struct {
}; };
#define FFI_NATIVE_RAW_API 0 #define FFI_NATIVE_RAW_API 0
#elif defined(ALPHA) #elif defined(__alpha__)
#define FFI_CLOSURES 1 #define FFI_CLOSURES 1
#define FFI_TRAMPOLINE_SIZE 24 #define FFI_TRAMPOLINE_SIZE 24

View File

@@ -111,6 +111,7 @@
#define FFI_TYPE_SINT64 12 #define FFI_TYPE_SINT64 12
#define FFI_TYPE_STRUCT 13 /* If this changes, update ffi_mips.h. */ #define FFI_TYPE_STRUCT 13 /* If this changes, update ffi_mips.h. */
#define FFI_TYPE_POINTER 14 #define FFI_TYPE_POINTER 14
#define FFI_TYPE_LAST 14
#if _MIPS_SIM==_ABIN32 && defined(_ABIN32) #if _MIPS_SIM==_ABIN32 && defined(_ABIN32)
#define SIZEOF_ARG 8 #define SIZEOF_ARG 8

View File

@@ -107,7 +107,7 @@ ffi_status ffi_prep_cif(/*@out@*/ /*@partial@*/ ffi_cif *cif,
#ifndef M68K #ifndef M68K
/* Make space for the return structure pointer */ /* Make space for the return structure pointer */
if (cif->rtype->type == FFI_TYPE_STRUCT if (cif->rtype->type == FFI_TYPE_STRUCT
#ifdef SPARC #ifdef __sparc__
&& (cif->abi != FFI_V9 || cif->rtype->size > 32) && (cif->abi != FFI_V9 || cif->rtype->size > 32)
#endif #endif
) )
@@ -123,7 +123,7 @@ ffi_status ffi_prep_cif(/*@out@*/ /*@partial@*/ ffi_cif *cif,
if (((*ptr)->size == 0) && (initialize_aggregate((*ptr)) != FFI_OK)) if (((*ptr)->size == 0) && (initialize_aggregate((*ptr)) != FFI_OK))
return FFI_BAD_TYPEDEF; return FFI_BAD_TYPEDEF;
#ifdef SPARC #ifdef __sparc__
if (((*ptr)->type == FFI_TYPE_STRUCT if (((*ptr)->type == FFI_TYPE_STRUCT
&& ((*ptr)->size > 16 || cif->abi != FFI_V9)) && ((*ptr)->size > 16 || cif->abi != FFI_V9))
|| ((*ptr)->type == FFI_TYPE_LONGDOUBLE || ((*ptr)->type == FFI_TYPE_LONGDOUBLE

View File

@@ -24,6 +24,7 @@
----------------------------------------------------------------------- */ ----------------------------------------------------------------------- */
#include <ffi.h> #include <ffi.h>
#include <ffi_private.h>
#include <ffi_common.h> #include <ffi_common.h>
#include <stdlib.h> #include <stdlib.h>

View File

@@ -25,7 +25,8 @@
#define LIBFFI_ASM #define LIBFFI_ASM
#include <ffi.h> #include <ffi.h>
#include <ffi_private.h>
#define STACKFRAME 96 /* Minimum stack framesize for SPARC */ #define STACKFRAME 96 /* Minimum stack framesize for SPARC */
#define ARGS (64+4) /* Offset of register area in frame */ #define ARGS (64+4) /* Offset of register area in frame */

View File

@@ -25,8 +25,9 @@
#define LIBFFI_ASM #define LIBFFI_ASM
#include <ffi.h> #include <ffi.h>
#include <ffi_private.h>
#ifdef SPARC64
#if defined(__arch64__) || defined(__sparcv9)
/* Only compile this in for 64bit builds, because otherwise the object file /* Only compile this in for 64bit builds, because otherwise the object file
will have inproper architecture due to used instructions. */ will have inproper architecture due to used instructions. */

View File

@@ -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(sint32, 4, 4, FFI_TYPE_SINT32);
FFI_INTEGRAL_TYPEDEF(float, 4, 4, FFI_TYPE_FLOAT); 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); FFI_INTEGRAL_TYPEDEF(pointer, 8, 8, FFI_TYPE_POINTER);