*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Wed, 14 Jun 2006 11:23:16 +0200
changeset 9365 9003f8432516
parent 9364 beef5f0aa8bb
child 9366 218fa4e2b183
*** empty log message ***
ExternalLibraryFunction.st
Make.proto
libInit.cc
--- 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);