This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldiag.pod
[perl5.git] / INTERN.h
index ba71c2f..1b35c13 100644 (file)
--- a/INTERN.h
+++ b/INTERN.h
@@ -1,6 +1,6 @@
 /*    INTERN.h
  *
- *    Copyright (c) 1991-1997, Larry Wall
+ *    Copyright (c) 1991-2001, Larry Wall
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
 #undef EXTCONST
 #undef dEXTCONST
 #if defined(VMS) && !defined(__GNUC__)
+    /* Suppress portability warnings from DECC for VMS-specific extensions */
+#  ifdef __DECC
+#    pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT)
+#  endif
 #  define EXT globaldef {"$GLOBAL_RW_VARS"} noshare
 #  define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
 #  define EXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
 #  define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
 #else
+#if defined(WIN32) && defined(__MINGW32__)
+#  define EXT          __declspec(dllexport)
+#  define dEXT
+#  define EXTCONST     __declspec(dllexport) const
+#  define dEXTCONST    const
+#else
+#ifdef __cplusplus
+#  define EXT
+#  define dEXT
+#  define EXTCONST extern const
+#  define dEXTCONST const
+#else
 #  define EXT
 #  define dEXT
 #  define EXTCONST const
 #  define dEXTCONST const
 #endif
+#endif
+#endif
 
 #undef INIT
 #define INIT(x) = x