summaryrefslogtreecommitdiff
path: root/win32/win32.h
diff options
context:
space:
mode:
Diffstat (limited to 'win32/win32.h')
-rw-r--r--win32/win32.h24
1 files changed, 19 insertions, 5 deletions
diff --git a/win32/win32.h b/win32/win32.h
index db87a6dca8..9b53a9a4b5 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -10,11 +10,27 @@
#define _INC_WIN32_PERL5
#ifdef __GNUC__
-#define __declspec(x)
typedef long long __int64;
#define Win32_Winsock
+/* GCC does not do __declspec() - render it a nop
+ * and turn on options to avoid importing data
+ */
+#define __declspec(x)
+#define PERL_GLOBAL_STRUCT
+#define MULTIPLICITY
#endif
+/* Define DllExport akin to perl's EXT,
+ * If we are in the DLL or mimicing the DLL for Win95 work round
+ * then Export the symbol,
+ * otherwise import it.
+ */
+
+#if defined(PERLDLL) || defined(WIN95FIX)
+#define DllExport __declspec(dllexport)
+#else
+#define DllExport __declspec(dllimport)
+#endif
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
@@ -56,8 +72,6 @@ struct tms {
#define STANDARD_C 1
#define DOSISH 1 /* no escaping our roots */
#define OP_BINARY O_BINARY /* mistake in in pp_sys.c? */
-#define DllExport __declspec(dllexport)
-#define DllImport __declspec(dllimport)
/* Define USE_SOCKETS_AS_HANDLES to enable emulation of windows sockets as
* real filehandles. XXX Should always be defined (the other version is untested) */
@@ -133,8 +147,8 @@ extern void *sbrk(int need);
#undef init_os_extras
#define init_os_extras Perl_init_os_extras
-EXT void Perl_win32_init(int *argcp, char ***argvp);
-EXT void Perl_init_os_extras(void);
+DllExport void Perl_win32_init(int *argcp, char ***argvp);
+DllExport void Perl_init_os_extras(void);
#ifndef USE_SOCKETS_AS_HANDLES
extern FILE * my_fdopen(int, char *);