This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
make binmode(STDIN) not whine
[perl5.git] / EXTERN.h
index 24fe135..19f6db8 100644 (file)
--- a/EXTERN.h
+++ b/EXTERN.h
 #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 globalref
 #  define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
 #  define EXTCONST globalref
 #  define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
 #else
-#  define EXT extern
-#  define dEXT
-#  define EXTCONST extern const
-#  define dEXTCONST const
+#  if defined(WIN32) && !defined(PERL_STATIC_SYMS) && !defined(__GNUC__) && !defined(PERL_OBJECT)
+#    ifdef PERLDLL
+#      define EXT extern __declspec(dllexport)
+#      define dEXT 
+#      define EXTCONST extern __declspec(dllexport) const
+#      define dEXTCONST const
+#    else
+#      define EXT extern __declspec(dllimport)
+#      define dEXT 
+#      define EXTCONST extern __declspec(dllimport) const
+#      define dEXTCONST const
+#    endif
+#  else
+#    define EXT extern
+#    define dEXT
+#    define EXTCONST extern const
+#    define dEXTCONST const
+#  endif
 #endif
 
 #undef INIT