From: Gurusamy Sarathy <gsar@cpan.org>
Date: Mon, 26 Oct 1998 02:44:44 +0000 (+0000)
Subject: various win32 tweaks; disable new xs_cpp section (it creates
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=b86a2fa703d0daf651095b1947eb50e3b5cc41d9;p=p5sagit%2Fp5-mst-13.2.git

various win32 tweaks; disable new xs_cpp section (it creates
ambiguous inference graph for %.xs --> %.o)

p4raw-id: //depot/perl@2086
---

diff --git a/ext/Thread/Thread.xs b/ext/Thread/Thread.xs
index 0c589a9..b9036c0 100644
--- a/ext/Thread/Thread.xs
+++ b/ext/Thread/Thread.xs
@@ -229,8 +229,8 @@ newthread (SV *startsv, AV *initargs, char *classname)
     static pthread_attr_t attr;
     static int attr_inited = 0;
     sigset_t fullmask, oldmask;
-#endif
     static int attr_joinable = ATTR_JOINABLE;
+#endif
 
     savethread = thr;
     thr = new_struct_thread(thr);
diff --git a/gv.c b/gv.c
index ad0d02d..a3e8d88 100644
--- a/gv.c
+++ b/gv.c
@@ -500,7 +500,9 @@ gv_fetchpv(char *nambeg, I32 add, I32 sv_type)
     /* No stash in name, so see how we can default */
 
     if (!stash) {
-	if (isIDFIRST(*name) || (IN_UTF8 && ((*name & 0xc0) == 0xc0) && isIDFIRST_utf8(name))) {
+	if (isIDFIRST(*name)
+	    || (IN_UTF8 && ((*name & 0xc0) == 0xc0) && isIDFIRST_utf8((U8*)name)))
+	{
 	    bool global = FALSE;
 
 	    if (isUPPER(*name)) {
diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm
index 0482534..47c3daa 100644
--- a/lib/ExtUtils/MakeMaker.pm
+++ b/lib/ExtUtils/MakeMaker.pm
@@ -271,7 +271,7 @@ sub full_setup {
 
  pasthru
 
- c_o xs_c xs_cpp xs_o top_targets linkext dlsyms dynamic dynamic_bs
+ c_o xs_c xs_o top_targets linkext dlsyms dynamic dynamic_bs
  dynamic_lib static static_lib manifypods processPL installbin subdirs
  clean realclean dist_basics dist_core dist_dir dist_test dist_ci
  install force perldepend makefile staticmake test ppd
diff --git a/mg.c b/mg.c
index 9532b38..2906a4c 100644
--- a/mg.c
+++ b/mg.c
@@ -31,6 +31,7 @@
 #else
 #  define VTBL			*vtbl
 static void restore_magic _((void *p));
+static int magic_methcall(SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val);
 #endif
 
 /*
diff --git a/pp.c b/pp.c
index 72599d1..05b242a 100644
--- a/pp.c
+++ b/pp.c
@@ -1316,7 +1316,7 @@ PP(pp_negate)
 		sv_setsv(TARG, sv);
 		*SvPV_force(TARG, len) = *s == '-' ? '+' : '-';
 	    }
-	    else if (IN_UTF8 && *(U8*)s >= 0xc0 && isIDFIRST_utf8(s)) {
+	    else if (IN_UTF8 && *(U8*)s >= 0xc0 && isIDFIRST_utf8((U8*)s)) {
 		sv_setpvn(TARG, "-", 1);
 		sv_catsv(TARG, sv);
 	    }
diff --git a/pp_hot.c b/pp_hot.c
index 24bb4da..53d42d8 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2518,7 +2518,7 @@ PP(pp_method)
 	{
 	    if (!packname || 
 		((*(U8*)packname >= 0xc0 && IN_UTF8)
-		    ? !isIDFIRST_utf8(packname)
+		    ? !isIDFIRST_utf8((U8*)packname)
 		    : !isIDFIRST(*packname)
 		))
 	    {
diff --git a/proto.h b/proto.h
index c5d635a..efc1ea8 100644
--- a/proto.h
+++ b/proto.h
@@ -743,6 +743,7 @@ void qsortsv _((SV ** array, size_t num_elts, SVCOMPARE f));
 I32 sortcv _((SV *a, SV *b));
 void save_magic _((I32 mgs_ix, SV *sv));
 int magic_methpack _((SV *sv, MAGIC *mg, char *meth));
+int magic_methcall _((SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val));
 int magic_methcall _((MAGIC *mg, char *meth, I32 flags, int n, SV *val));
 OP * doform _((CV *cv, GV *gv, OP *retop));
 void doencodes _((SV* sv, char* s, I32 len));
diff --git a/win32/GenCAPI.pl b/win32/GenCAPI.pl
index a4e4099..5c77d70 100644
--- a/win32/GenCAPI.pl
+++ b/win32/GenCAPI.pl
@@ -40,6 +40,7 @@ sub skip_these {
 }
 
 skip_these [qw(
+yylex
 cando
 cast_ulong
 my_chsize
diff --git a/win32/Makefile b/win32/Makefile
index 2e01729..d6b6dda 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -33,6 +33,11 @@ INST_VER	= \5.00552
 #USE_THREADS	= define
 
 #
+# uncomment to enable multiple interpreters
+#
+#USE_MULTI	= define
+
+#
 # uncomment next line if you are using Visual C++ 2.x
 #
 #CCTYPE		= MSVC20
@@ -135,6 +140,7 @@ CRYPT_FLAG	= -DHAVE_DES_FCRYPT
 !IF "$(OBJECT)" != ""
 PERL_MALLOC	= undef
 USE_THREADS	= undef
+USE_MULTI	= undef
 !ENDIF
 
 !IF "$(PERL_MALLOC)" == ""
@@ -145,8 +151,11 @@ PERL_MALLOC	= undef
 USE_THREADS	= undef
 !ENDIF
 
-#BUILDOPT	= -DMULTIPLICITY 
-#BUILDOPT	= -DPERL_GLOBAL_STRUCT -DMULTIPLICITY
+!IF "$(USE_MULTI)" == ""
+USE_MULTI	= undef
+!ENDIF
+
+#BUILDOPT	= -DPERL_GLOBAL_STRUCT
 # -DUSE_PERLIO -D__STDC__=1 -DUSE_SFIO -DI_SFIO -I\sfio97\include
 
 !IF "$(PROCESSOR_ARCHITECTURE)" == ""
@@ -573,6 +582,7 @@ CFG_VARS	=					\
 		"dynamic_ext=$(DYNAMIC_EXT)"		\
 		"nonxs_ext=$(NONXS_EXT)"		\
 		"usethreads=$(USE_THREADS)"		\
+		"usemultiplicity=$(USE_MULTI)"		\
 		"LINK_FLAGS=$(LINK_FLAGS)"		\
 		"optimize=$(OPTIMIZE)"
 
diff --git a/win32/config.gc b/win32/config.gc
index 7dc64f8..c4c6d1a 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -594,7 +594,7 @@ uname='uname'
 uniq='uniq'
 use64bits='undef'
 usedl='define'
-usemultiplicity='undef'
+usemultiplicity='define'
 usemymalloc='n'
 usenm='false'
 useopcode='true'
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 82e5d18..0e178b6 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -2278,7 +2278,7 @@
  *	This symbol, if defined, indicates that Perl should
  *	be built to use multiplicity.
  */
-/*#define	MULTIPLICITY		/**/
+#define	MULTIPLICITY		/**/
 
 /* USE_THREADS:
  *	This symbol, if defined, indicates that Perl should
diff --git a/win32/makedef.pl b/win32/makedef.pl
index 222ce06..80ea5e3 100644
--- a/win32/makedef.pl
+++ b/win32/makedef.pl
@@ -28,6 +28,7 @@ while (<CFG>)
  {
   $define{$1} = 1 if /^\s*#\s*define\s+(MYMALLOC)\b/;
   $define{$1} = 1 if /^\s*#\s*define\s+(USE_THREADS)\b/;
+  $define{$1} = 1 if /^\s*#\s*define\s+(MULTIPLICITY)\b/;
  }
 close(CFG);
 
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 07fcad0..d12add7 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -37,6 +37,11 @@ INST_VER	*= \5.00552
 #USE_THREADS	*= define
 
 #
+# uncomment to enable multiple interpreters
+#
+#USE_MULTI	*= define
+
+#
 # uncomment one
 #
 #CCTYPE		*= MSVC20
@@ -153,14 +158,15 @@ CRYPT_FLAG	= -DHAVE_DES_FCRYPT
 .IF "$(OBJECT)" != ""
 PERL_MALLOC	!= undef
 USE_THREADS	!= undef
+USE_MULTI	!= undef
 .ENDIF
 
 PERL_MALLOC	*= undef
 
 USE_THREADS	*= undef
+USE_MULTI	*= undef
 
-#BUILDOPT	*= -DMULTIPLICITY 
-#BUILDOPT	*= -DPERL_GLOBAL_STRUCT -DMULTIPLICITY 
+#BUILDOPT	*= -DPERL_GLOBAL_STRUCT
 # -DUSE_PERLIO -D__STDC__=1 -DUSE_SFIO -DI_SFIO -I\sfio97\include
 
 .IMPORT .IGNORE : PROCESSOR_ARCHITECTURE
@@ -693,6 +699,7 @@ CFG_VARS	=					\
 		"dynamic_ext=$(DYNAMIC_EXT)"		\
 		"nonxs_ext=$(NONXS_EXT)"		\
 		"usethreads=$(USE_THREADS)"		\
+		"usemultiplicity=$(USE_MULTI)"		\
 		"LINK_FLAGS=$(LINK_FLAGS)"		\
 		"optimize=$(OPTIMIZE)"
 
diff --git a/win32/win32.h b/win32/win32.h
index 8b789fd..b52ef4e 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -32,7 +32,9 @@ typedef long long __int64;
 #endif
 #  ifndef PERL_OBJECT
 #    define PERL_GLOBAL_STRUCT
-#    define MULTIPLICITY
+#    ifndef MULTIPLICITY
+#      define MULTIPLICITY
+#    endif
 #  endif
 #endif