more MULTIPLICITY tweaks
Gurusamy Sarathy [Tue, 23 Jun 1998 10:50:10 +0000 (10:50 +0000)]
p4raw-id: //depot/perl@1206

objpp.h
perl.c
perl.h
proto.h
win32/GenCAPI.pl
win32/config.bc
win32/config.gc
win32/config.vc
win32/config_H.bc
win32/config_H.gc
win32/config_H.vc

diff --git a/objpp.h b/objpp.h
index 98dd951..75f8e69 100644 (file)
--- a/objpp.h
+++ b/objpp.h
 #define init_debugger     CPerlObj::init_debugger
 #undef  init_ids
 #define init_ids          CPerlObj::init_ids
+#undef  init_interp
+#define init_interp       CPerlObj::init_interp
 #undef  init_main_thread
 #define init_main_thread  CPerlObj::init_main_thread
 #undef  init_main_stash
diff --git a/perl.c b/perl.c
index 084a1c3..43a0070 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -1780,7 +1780,7 @@ STATIC void
 init_interp(void)
 {
 
-#if 0
+#ifdef PERL_OBJECT             /* XXX kludge */
 #define I_REINIT \
   STMT_START {                 \
     chopset    = " \n-";       \
@@ -1812,19 +1812,32 @@ init_interp(void)
     rsfp       = Nullfp;       \
     rsfp_filters= Nullav;      \
   } STMT_END
+#else
+#  ifdef MULTIPLICITY
+#    define PERLVAR(var,type)
+#    define PERLVARI(var,type,init)    curinterp->var = init;
+#    define PERLVARIC(var,type,init)   curinterp->var = init;
+#    include "intrpvar.h"
+#    ifndef USE_THREADS
+#      include "thrdvar.h"
+#    endif
+#    undef PERLVAR
+#    undef PERLVARI
+#    undef PERLVARIC
+#    else
+#    define PERLVAR(var,type)
+#    define PERLVARI(var,type,init)    var = init;
+#    define PERLVARIC(var,type,init)   var = init;
+#    include "intrpvar.h"
+#    ifndef USE_THREADS
+#      include "thrdvar.h"
+#    endif
+#    undef PERLVAR
+#    undef PERLVARI
+#    undef PERLVARIC
+#  endif
 #endif
 
-#define PERLVAR(var,type)
-#define PERLVARI(var,type,init)                curinterp->var = init;
-#define PERLVARIC(var,type,init)       curinterp->var = init;
-#include "intrpvar.h"
-#ifndef USE_THREADS
-#  include "thrdvar.h"
-#endif
-#undef PERLVAR
-#undef PERLVARI
-#undef PERLVARIC
-
 }
 
 STATIC void
diff --git a/perl.h b/perl.h
index a2fa03d..3d20cf6 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1944,11 +1944,11 @@ typedef void *Thread;
 
 #ifndef MULTIPLICITY
 
-#ifndef USE_THREADS
-#include "thrdvar.h"
-#endif
+#  include "intrpvar.h"
+#  ifndef USE_THREADS
+#    include "thrdvar.h"
+#  endif
 
-#include "intrpvar.h"
 #endif
 
 #ifdef PERL_OBJECT
diff --git a/proto.h b/proto.h
index cff62d6..0beb384 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -264,7 +264,9 @@ VIRTUAL U32 magic_sizepack  _((SV* sv, MAGIC* mg));
 VIRTUAL int    magic_wipepack  _((SV* sv, MAGIC* mg));
 VIRTUAL void   magicname _((char* sym, char* name, I32 namlen));
 int    main _((int argc, char** argv, char** env));
+#ifdef MYMALLOC
 VIRTUAL MEM_SIZE       malloced_size _((void *p));
+#endif
 VIRTUAL void   markstack_grow _((void));
 #ifdef USE_LOCALE_COLLATE
 VIRTUAL char*  mem_collxfrm _((const char* s, STRLEN len, STRLEN* xlen));
index 2e136ed..dbe9fd7 100644 (file)
@@ -71,6 +71,7 @@ safexcalloc
 safexrealloc
 safexfree
 Perl_GetVars
+malloced_size
 )];
 
 
index 2d25e46..0c62fc5 100644 (file)
@@ -279,6 +279,7 @@ date='date'
 db_hashtype='int'
 db_prefixtype='int'
 defvoidused='15'
+devtype='dev_t'
 direntrytype='struct direct'
 dlext='dll'
 dlsrc='dl_win32.xs'
index 1dfc04b..5b8fb2e 100644 (file)
@@ -279,6 +279,7 @@ date='date'
 db_hashtype='int'
 db_prefixtype='int'
 defvoidused='15'
+devtype='dev_t'
 direntrytype='struct direct'
 dlext='dll'
 dlsrc='dl_win32.xs'
index 806549c..823532a 100644 (file)
@@ -279,6 +279,7 @@ date='date'
 db_hashtype='int'
 db_prefixtype='int'
 defvoidused='15'
+devtype='dev_t'
 direntrytype='struct direct'
 dlext='dll'
 dlsrc='dl_win32.xs'
index febd4ba..e0efdac 100644 (file)
  */
 /*#define HAS_MKFIFO           /**/
 
+/* HAS_MKNOD:
+ *     This symbol, if defined, indicates that the mknod routine is
+ *     available to create character and block special files. Otherwise,
+ *     mknod should be able to do it for you. However, if mknod is there,
+ *     mknod might require super-user privileges which mknod will not.
+ */
+/*#define HAS_MKNOD            /**/
+
 /* HAS_MKTIME:
  *     This symbol, if defined, indicates that the mktime routine is
  *     available.
  */
 #define Gid_t gid_t            /* Type for getgid(), etc... */
 
+/* Dev_t:
+ *     This symbol holds the type used to declare device numbers.
+ *     It can be int, long, dev_t, etc... It may be necessary to include
+ *     <sys/types.h> to get any typedef'ed information.
+ */
+#define Dev_t dev_t                    /* <device> type */
+
 /* Off_t:
  *     This symbol holds the type used to declare offsets in the kernel.
  *     It can be int, long, off_t, etc... It may be necessary to include
index cfe0091..7fde31a 100644 (file)
  */
 /*#define HAS_MKFIFO           /**/
 
+/* HAS_MKNOD:
+ *     This symbol, if defined, indicates that the mknod routine is
+ *     available to create character and block special files. Otherwise,
+ *     mknod should be able to do it for you. However, if mknod is there,
+ *     mknod might require super-user privileges which mknod will not.
+ */
+/*#define HAS_MKNOD            /**/
+
 /* HAS_MKTIME:
  *     This symbol, if defined, indicates that the mktime routine is
  *     available.
  */
 #define Gid_t gid_t            /* Type for getgid(), etc... */
 
+/* Dev_t:
+ *     This symbol holds the type used to declare device numbers.
+ *     It can be int, long, dev_t, etc... It may be necessary to include
+ *     <sys/types.h> to get any typedef'ed information.
+ */
+#define Dev_t dev_t                    /* <device> type */
+
 /* Off_t:
  *     This symbol holds the type used to declare offsets in the kernel.
  *     It can be int, long, off_t, etc... It may be necessary to include
index dd293fa..81c322e 100644 (file)
  */
 /*#define HAS_MKFIFO           /**/
 
+/* HAS_MKNOD:
+ *     This symbol, if defined, indicates that the mknod routine is
+ *     available to create character and block special files. Otherwise,
+ *     mknod should be able to do it for you. However, if mknod is there,
+ *     mknod might require super-user privileges which mknod will not.
+ */
+/*#define HAS_MKNOD            /**/
+
 /* HAS_MKTIME:
  *     This symbol, if defined, indicates that the mktime routine is
  *     available.
  */
 #define Gid_t gid_t            /* Type for getgid(), etc... */
 
+/* Dev_t:
+ *     This symbol holds the type used to declare device numbers.
+ *     It can be int, long, dev_t, etc... It may be necessary to include
+ *     <sys/types.h> to get any typedef'ed information.
+ */
+#define Dev_t dev_t                    /* <device> type */
+
 /* Off_t:
  *     This symbol holds the type used to declare offsets in the kernel.
  *     It can be int, long, off_t, etc... It may be necessary to include