--- a/ExternalLibraryFunction.st Wed Jun 07 17:45:06 2006 +0200
+++ b/ExternalLibraryFunction.st Wed Jun 14 11:23:16 2006 +0200
@@ -24,16 +24,34 @@
/*
* does this architecture support FFI ?
- * NOTICE: this is going to be moved to an architecture-specific xxxIntern.h file.
+ * NOTICE: this is now defined in the architecture-specific configuration file.
*/
-#ifdef WIN32
-# define HAVE_FFI
+#if defined(WIN32) || defined(LINUX)
+# ifndef HAVE_FFI
+# define HAVE_FFI
+# endif
#endif
#ifdef HAVE_FFI
# include <ffi.h>
# define MAX_ARGS 128
+
+extern ffi_type *__get_ffi_type_sint();
+extern ffi_type *__get_ffi_type_sint8();
+extern ffi_type *__get_ffi_type_sint16();
+extern ffi_type *__get_ffi_type_sint32();
+extern ffi_type *__get_ffi_type_sint64();
+extern ffi_type *__get_ffi_type_uint();
+extern ffi_type *__get_ffi_type_uint8();
+extern ffi_type *__get_ffi_type_uint16();
+extern ffi_type *__get_ffi_type_uint32();
+extern ffi_type *__get_ffi_type_uint64();
+extern ffi_type *__get_ffi_type_float();
+extern ffi_type *__get_ffi_type_double();
+extern ffi_type *__get_ffi_type_void();
+extern ffi_type *__get_ffi_type_pointer();
+
#endif
%}
@@ -723,5 +741,5 @@
!ExternalLibraryFunction class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.21 2006-05-05 11:40:49 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.22 2006-06-14 09:23:15 cg Exp $'
! !
--- a/Make.proto Wed Jun 07 17:45:06 2006 +0200
+++ b/Make.proto Wed Jun 14 11:23:16 2006 +0200
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libbasic/Make.proto,v 1.174 2004-04-08 12:53:08 cg Exp $
+# $Header: /cvs/stx/stx/libbasic/Make.proto,v 1.175 2006-06-14 09:23:15 cg Exp $
#
# -------------- no need to change anything below ----------
@@ -10,7 +10,7 @@
STCOPT=$(LIBBASIC_STCOPT)
LOCALINCLUDES=-I../librun
-STCLOCALOPT='-package=$(PACKAGE)' $(COMMONSYMBOLS) $(SEPINITCODE) -varPrefix=$(LIBNAME) $(LOCALINCLUDES) -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
+STCLOCALOPT='-package=$(PACKAGE)' $(COMMONSYMBOLS) $(SEPINITCODE) -varPrefix=$(LIBNAME) $(LOCALINCLUDES) -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 $(OPTIONAL_HAVE_FFI_ARG)
LINKOBJRULE=$(SEPINITLINKOBJRULE)
AIX_LOCAL_LIBS=-lm
--- a/libInit.cc Wed Jun 07 17:45:06 2006 +0200
+++ b/libInit.cc Wed Jun 14 11:23:16 2006 +0200
@@ -226,6 +226,7 @@
_EncodedStream_Init(pass,__pRT__,snd);
_UndefinedObject_Init(pass,__pRT__,snd);
_ExternalAddress_Init(pass,__pRT__,snd);
+_ExternalStructure_Init(pass,__pRT__,snd);
_MethodDictionary_Init(pass,__pRT__,snd);
_OSHandle_Init(pass,__pRT__,snd);
_OSFileHandle_Init(pass,__pRT__,snd);