summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--os2/os2ish.h9
-rw-r--r--proto.h8
2 files changed, 13 insertions, 4 deletions
diff --git a/os2/os2ish.h b/os2/os2ish.h
index c02202abce..586f75b0e6 100644
--- a/os2/os2ish.h
+++ b/os2/os2ish.h
@@ -169,11 +169,16 @@ void Perl_OS2_init(char **);
/* XXX This code hideously puts env inside: */
-#define PERL_SYS_INIT(argcp, argvp) STMT_START { \
+#ifdef __EMX__
+# define PERL_SYS_INIT(argcp, argvp) STMT_START { \
_response(argcp, argvp); \
_wildcard(argcp, argvp); \
Perl_OS2_init(env); } STMT_END
-
+#else /* Compiling embedded Perl with non-EMX compiler */
+# define PERL_SYS_INIT(argcp, argvp) STMT_START { \
+ Perl_OS2_init(env); } STMT_END
+# define PERL_CALLCONV _System
+#endif
#define PERL_SYS_TERM() MALLOC_TERM
/* #define PERL_SYS_TERM() STMT_START { \
diff --git a/proto.h b/proto.h
index 5da657b04c..1b9867552d 100644
--- a/proto.h
+++ b/proto.h
@@ -1,7 +1,11 @@
+#ifndef PERL_CALLCONV
+# define PERL_CALLCONV
+#endif
+
#ifdef PERL_OBJECT
-#define VIRTUAL virtual
+#define VIRTUAL virtual PERL_CALLCONV
#else
-#define VIRTUAL
+#define VIRTUAL PERL_CALLCONV
START_EXTERN_C
#endif