This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Confusing error from perl -e "x'"
[perl5.git] / INTERN.h
index 7a9d475..22e42c5 100644 (file)
--- a/INTERN.h
+++ b/INTERN.h
@@ -1,14 +1,40 @@
 /*    INTERN.h
  *
- *    Copyright (c) 1991-1994, Larry Wall
+ *    Copyright (c) 1991-1997, 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.
  *
  */
 
+/*
+ * EXT  designates a global var which is defined in perl.h
+ * dEXT designates a global var which is defined in another
+ *      file, so we can't count on finding it in perl.h
+ *      (this practice should be avoided).
+ */
 #undef EXT
-#define EXT
+#undef dEXT
+#undef EXTCONST
+#undef dEXTCONST
+#if defined(VMS) && !defined(__GNUC__)
+#  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
+#  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
 
 #undef INIT
 #define INIT(x) = x