summaryrefslogtreecommitdiff
path: root/testsuite/tests/lib-dynlink-csharp/entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/lib-dynlink-csharp/entry.c')
-rwxr-xr-xtestsuite/tests/lib-dynlink-csharp/entry.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/testsuite/tests/lib-dynlink-csharp/entry.c b/testsuite/tests/lib-dynlink-csharp/entry.c
index 13ecd73df4..a82eb46f62 100755
--- a/testsuite/tests/lib-dynlink-csharp/entry.c
+++ b/testsuite/tests/lib-dynlink-csharp/entry.c
@@ -1,3 +1,15 @@
+/***********************************************************************/
+/* */
+/* OCaml */
+/* */
+/* Alain Frisch, LexiFi */
+/* */
+/* Copyright 2007 Institut National de Recherche en Informatique et */
+/* en Automatique. All rights reserved. This file is distributed */
+/* under the terms of the Q Public License version 1.0. */
+/* */
+/***********************************************************************/
+
#include <caml/memory.h>
#include <caml/alloc.h>
#include <caml/mlvalues.h>
@@ -5,7 +17,23 @@
#include <caml/custom.h>
#include <caml/fail.h>
-__declspec(dllexport) void __stdcall start_caml_engine() {
+#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__))
+# if defined(_MSC_VER) || defined(__MINGW32__)
+# define _DLLAPI __declspec(dllexport)
+# else
+# define _DLLAPI extern
+# endif
+# if defined(__MINGW32__) || defined(UNDER_CE)
+# define _CALLPROC
+# else
+# define _CALLPROC __stdcall
+# endif
+#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303
+# define _DLLAPI __attribute__((visibility("default")))
+# define _CALLPROC
+#endif /* WIN32 && !CYGWIN */
+
+_DLLAPI void _CALLPROC start_caml_engine() {
char * argv[2];
argv[0] = "--";
argv[1] = NULL;