Win32 PerlIO intermediate state now working as expected.
authorNick Ing-Simmons <nik@tiuk.ti.com>
Wed, 22 Nov 2000 20:51:42 +0000 (20:51 +0000)
committerNick Ing-Simmons <nik@tiuk.ti.com>
Wed, 22 Nov 2000 20:51:42 +0000 (20:51 +0000)
  - In current state we are still using C runtime in text/binary
           mode and "crlf" layer is just a dummy (clone of perlio buffer layer).
  - PERLIO=stdio and PERLIO=unix pass all expected tests.
         - PERLIO=perlio fails t/lib/dprof.t because Dprof.xs calls PerlIO_tell()
           and PerlIO_seek() and the dummy crlf layer is not making adjustments
           for CRLF translation happening in C runtime. All other tests pass.

       Added note to README.win32 to point out the snags of doing a perl build
       with Norton AntiVirus turned on.

       Tweaked t/pragma/warnings.t so that when run stand-alone you can tell
       which file a fail comes from.

       Updated "canned" config.h to match the one generated.

p4raw-id: //depot/perlio@7802

README.win32
perlio.c
t/pragma/warnings.t
win32/config_H.gc
win32/makefile.mk

index fc4dc56..ddc1f84 100644 (file)
@@ -595,6 +595,20 @@ find a mailer on your system).
 
 =head1 BUGS AND CAVEATS
 
+Norton AntiVirus interferes with the build process, particularly if 
+set to "AutoProtect, All Files, when Opened". Unlike large applications 
+the perl build process opens and modifies a lot of files. Having the  
+the AntiVirus scan each and every one slows build the process significantly.
+Worse, with PERLIO=stdio the build process fails with peculiar messages
+as the virus checker interacts badly with miniperl.exe writing configure 
+files (it seems to either catch file part written and treat it as suspicious,
+or virus checker may have it "locked" in a way which inhibits miniperl
+updating it). The build does complete with 
+   
+   set PERLIO=perlio
+
+but that may be just luck. Other AntiVirus software may have similar issues.
+
 Some of the built-in functions do not act exactly as documented in
 L<perlfunc>, and a few are not implemented at all.  To avoid
 surprises, particularly if you have had prior exposure to Perl
@@ -628,7 +642,7 @@ by C<perl -V>.
 
 =item Gurusamy Sarathy E<lt>gsar@activestate.comE<gt>
 
-=item Nick Ing-Simmons E<lt>nick@ni-s.u-net.comE<gt>
+=item Nick Ing-Simmons E<lt>nick@ing-simmons.netE<gt>
 
 =back
 
@@ -655,6 +669,6 @@ Support for fork() emulation was added in 5.6 (ActiveState Tool Corp).
 
 Win9x support was added in 5.6 (Benjamin Stuhl).
 
-Last updated: 22 March 2000
+Last updated: 22 November 2000
 
 =cut
index 5df3d2d..925e3fb 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -193,8 +193,10 @@ PerlIO_cleantable(PerlIO **tablep)
    for (i=PERLIO_TABLE_SIZE-1; i > 0; i--)
     {
      PerlIO *f = table+i;
-     if (*f)
-      PerlIO_close(f);
+     if (*f) 
+      {
+       PerlIO_close(f);
+      }
     }
    Safefree(table);
    *tablep = NULL;
@@ -1276,7 +1278,8 @@ PerlIOStdio_tell(PerlIO *f)
 IV
 PerlIOStdio_close(PerlIO *f)
 {
- return fclose(PerlIOSelf(f,PerlIOStdio)->stdio);
+ FILE *stdio = PerlIOSelf(f,PerlIOStdio)->stdio;
+ return fclose(stdio);
 }
 
 IV
@@ -1309,8 +1312,12 @@ PerlIOStdio_fill(PerlIO *f)
 {
  FILE *stdio = PerlIOSelf(f,PerlIOStdio)->stdio;
  int c;
- if (fflush(stdio) != 0)
-  return EOF;
+ /* fflush()ing read-only streams can cause trouble on some stdio-s */
+ if ((PerlIOBase(f)->flags & PERLIO_F_CANWRITE))
+  {
+   if (fflush(stdio) != 0)
+    return EOF;
+  }
  c = fgetc(stdio);
  if (c == EOF || ungetc(c,stdio) != c)
   return EOF;
@@ -1547,14 +1554,15 @@ PerlIOBuf_flush(PerlIO *f)
    /* write() the buffer */
    STDCHAR *p = b->buf;
    int count;
+   PerlIO *n = PerlIONext(f);
    while (p < b->ptr)
     {
-     count = PerlIO_write(PerlIONext(f),p,b->ptr - p);
+     count = PerlIO_write(n,p,b->ptr - p);
      if (count > 0)
       {
        p += count;
       }
-     else if (count < 0)
+     else if (count < 0 || PerlIO_error(n))
       {
        PerlIOBase(f)->flags |= PERLIO_F_ERROR;
        code = -1;
index 3674497..872e6e1 100644 (file)
@@ -25,28 +25,37 @@ if (@ARGV)
 else
   { @w_files = sort glob("pragma/warn/*") }
 
-foreach (@w_files) {
+my $files = 0;
+foreach my $file (@w_files) {
 
     next if /(~|\.orig|,v)$/;
 
-    open F, "<$_" or die "Cannot open $_: $!\n" ;
+    open F, "<$file" or die "Cannot open $file: $!\n" ;
+    my $line = 0;
     while (<F>) {
+        $line++; 
        last if /^__END__/ ;
     }
 
     {
         local $/ = undef;
-        @prgs = (@prgs, split "\n########\n", <F>) ;
+        $files++; 
+        @prgs = (@prgs, $file, split "\n########\n", <F>) ;
     }
     close F ;
 }
 
 undef $/;
 
-print "1..", scalar @prgs, "\n";
+print "1..", scalar(@prgs)-$files, "\n";
  
  
 for (@prgs){
+    unless (/\n/)
+     {
+      print "# From $_\n"; 
+      next; 
+     }
     my $switch = "";
     my @temps = () ;
     if (s/^\s*-\w+//){
index 0e4cb71..4445f77 100644 (file)
@@ -1,11 +1,11 @@
 /*
  * This file was produced by running the config_h.SH script, which
- * gets its values from config.sh, which is generally produced by
+ * gets its values from undef, which is generally produced by
  * running Configure.
  *
  * Feel free to modify any of this as the need arises.  Note, however,
  * that running config_h.SH again will wipe out any changes you've made.
- * For a more permanent change edit config.sh and rerun config_h.SH.
+ * For a more permanent change edit undef and rerun config_h.SH.
  *
  * $Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $
  */
@@ -13,8 +13,8 @@
 /*
  * Package name      : perl5
  * Source directory  : 
- * Configuration time: Tue Mar 21 01:26:44 2000
- * Configured by     : gsar
+ * Configuration time: Wed Nov 22 14:17:33 2000
+ * Configured by     : nick
  * Target system     : 
  */
 
  */
 /*#define HAS_FORK             /**/
 
-/* HAS_FREXPL:
- *     This symbol, if defined, indicates that the frexpl routine is
- *     available to break a long double floating-point number into
- *     a normalized fraction and an integral power of 2.
- */
-/*#define HAS_FREXPL           /**/
-
 /* HAS_FSETPOS:
  *     This symbol, if defined, indicates that the fsetpos routine is
  *     available to set the file position indicator, similar to fseek().
  */
 /*#define HAS_GETPGID          /**/
 
-/* HAS_GETPGRP:
- *     This symbol, if defined, indicates that the getpgrp routine is
- *     available to get the current process group.
- */
-/* USE_BSD_GETPGRP:
- *     This symbol, if defined, indicates that getpgrp needs one
- *     arguments whereas USG one needs none.
- */
-/*#define HAS_GETPGRP          /**/
-/*#define USE_BSD_GETPGRP      /**/
-
 /* HAS_GETPGRP2:
  *     This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
  *     routine is available to get the current process group.
  */
 /*#define HAS_SETPGID  /**/
 
-/* HAS_SETPGRP:
- *     This symbol, if defined, indicates that the setpgrp routine is
- *     available to set the current process group.
- */
-/* USE_BSD_SETPGRP:
- *     This symbol, if defined, indicates that setpgrp needs two
- *     arguments whereas USG one needs none.  See also HAS_SETPGID
- *     for a POSIX interface.
- */
-/*#define HAS_SETPGRP          /**/
-/*#define USE_BSD_SETPGRP      /**/
-
 /* HAS_SETPGRP2:
  *     This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
  *     routine is available to set the current process group.
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "c:\\perl\\5.6.0\\lib\\MSWin32-x86"            /**/
+#define ARCHLIB "c:\\perl\\5.7.0\\lib\\MSWin32-x86-multi"              /**/
 /*#define ARCHLIB_EXP ""       /**/
 
 /* ARCHNAME:
  *     where library files may be held under a private library, for
  *     instance.
  */
-#define ARCHNAME "MSWin32-x86"         /**/
+#define ARCHNAME "MSWin32-x86-multi"           /**/
 
 /* HAS_ATOLF:
  *     This symbol, if defined, indicates that the atolf routine is
  *     This symbol is the filename expanded version of the BIN symbol, for
  *     programs that do not want to deal with that at run-time.
  */
-#define BIN "c:\\perl\\5.6.0\\bin\\MSWin32-x86"        /**/
-#define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86"    /**/
+#define BIN "c:\\perl\\5.7.0\\bin\\MSWin32-x86-multi"  /**/
+#define BIN_EXP "c:\\perl\\5.7.0\\bin\\MSWin32-x86-multi"      /**/
 
 /* PERL_BINCOMPAT_5005:
  *     This symbol, if defined, indicates that this version of Perl should be
  *     This macro surrounds its token with double quotes.
  */
 #if 42 == 1
-#  define CAT2(a,b)    a/**/b
-#  define STRINGIFY(a) "a"
+#define CAT2(a,b)      a/**/b
+#define STRINGIFY(a)   "a"
                /* If you can get stringification with catify, tell me how! */
 #endif
 #if 42 == 42
-#  define PeRl_CaTiFy(a, b)    a ## b  
-#  define PeRl_StGiFy(a)       #a
+#define PeRl_CaTiFy(a, b)      a ## b  
+#define PeRl_StGiFy(a) #a
 /* the additional level of indirection enables these macros to be
  * used as arguments to other macros.  See K&R 2nd ed., page 231. */
-#  define CAT2(a,b)    PeRl_CaTiFy(a,b)
-#  define StGiFy(a)    PeRl_StGiFy(a)
-#  define STRINGIFY(a) PeRl_StGiFy(a)
+#define CAT2(a,b)      PeRl_CaTiFy(a,b)
+#define StGiFy(a)      PeRl_StGiFy(a)
+#define STRINGIFY(a)   PeRl_StGiFy(a)
 #endif
 #if 42 != 1 && 42 != 42
-#include "Bletch: How does this C preprocessor catenate tokens?"
+#   include "Bletch: How does this C preprocessor catenate tokens?"
 #endif
 
 /* CPPSTDIN:
  */
 #define HAS_FD_SET     /**/
 
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
+ */
+#define        FLEXFILENAMES           /**/
+
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
 /*#define      HAS_FPOS64_T            /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+/*#define HAS_FREXPL           /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
  */
 /*#define HAS_GETCWD           /**/
 
+/* HAS_GETESPWNAM:
+ *     This symbol, if defined, indicates that the getespwnam system call is
+ *     available to retrieve enchanced (shadow) password entries by name.
+ */
+/*#define HAS_GETESPWNAM               /**/
+
 /* HAS_GETFSSTAT:
  *     This symbol, if defined, indicates that the getfsstat routine is
  *     available to stat filesystems in bulk.
  */
 /*#define      HAS_GETNET_PROTOS       /**/
 
+/* HAS_GETPAGESIZE:
+ *     This symbol, if defined, indicates that the getpagesize system call
+ *     is available to get system page size, which is the granularity of
+ *     many memory management calls.
+ */
+/*#define HAS_GETPAGESIZE              /**/
+
 /* HAS_GETPROTOENT:
  *     This symbol, if defined, indicates that the getprotoent() routine is
  *     available to look up protocols in some data base or another.
  */
 #define        HAS_GETPROTO_PROTOS     /**/
 
+/* HAS_GETPRPWNAM:
+ *     This symbol, if defined, indicates that the getprpwnam system call is
+ *     available to retrieve protected (shadow) password entries by name.
+ */
+/*#define HAS_GETPRPWNAM               /**/
+
 /* HAS_GETPWENT:
  *     This symbol, if defined, indicates that the getpwent routine is
  *     available for sequential access of the passwd database.
  */
 /*#define HAS_GETSPNAM         /**/
 
-/* HAS_GETESPWNAM:
- *     This symbol, if defined, indicates that the getespwnam system call is
- *     available to retrieve enchanced (shadow) password entries by name.
- */
-/*#define HAS_GETESPWNAM               /**/
-
-/* HAS_GETPRPWNAM:
- *     This symbol, if defined, indicates that the getprpwnam system call is
- *     available to retrieve protected (shadow) password entries by name.
- */
-/*#define HAS_GETPRPWNAM               /**/
-
-/* I_PROT:
- *     This symbol, if defined, indicates that <prot.h> exists and
- *     should be included.
- */
-/*#define      I_PROT          /**/
-
 /* HAS_GETSERVBYNAME:
  *     This symbol, if defined, indicates that the getservbyname()
  *     routine is available to look up services by their name.
  */
 /*#define HAS_ISNANL           /**/
 
+/* HAS_LCHOWN:
+ *     This symbol, if defined, indicates that the lchown routine is
+ *     available to operate on a symbolic link (instead of following the
+ *     link).
+ */
+/*#define HAS_LCHOWN           /**/
+
 /* HAS_LDBL_DIG:
  *     This symbol, if defined, indicates that this system's <float.h>
  *     or <limits.h> defines the symbol LDBL_DIG, which is the number
 /*#define HAS_MMAP             /**/
 #define Mmap_t void *  /**/
 
-/* HAS_MPROTECT:
- *     This symbol, if defined, indicates that the mprotect system call is
- *     available to modify the access protection of a memory mapped file.
- */
-/*#define HAS_MPROTECT         /**/
-
 /* HAS_MODFL:
  *     This symbol, if defined, indicates that the modfl routine is
  *     available to split a long double x into a fractional part f and
  */
 /*#define HAS_MODFL            /**/
 
+/* HAS_MPROTECT:
+ *     This symbol, if defined, indicates that the mprotect system call is
+ *     available to modify the access protection of a memory mapped file.
+ */
+/*#define HAS_MPROTECT         /**/
+
 /* HAS_MSG:
  *     This symbol, if defined, indicates that the entire msg*(2) library is
  *     supported (IPC mechanism based on message queues).
  */
 /*#define HAS_SETPROTOENT              /**/
 
+/* HAS_SETPROCTITLE:
+ *     This symbol, if defined, indicates that the setproctitle routine is
+ *     available to set process title.
+ */
+/*#define HAS_SETPROCTITLE             /**/
+
 /* HAS_SETPWENT:
  *     This symbol, if defined, indicates that the setpwent routine is
  *     available for initializing sequential access of the passwd database.
 /*#define      HAS_MSG_PROXY   /**/
 /*#define      HAS_SCM_RIGHTS  /**/
 
+/* HAS_SOCKS5_INIT:
+ *     This symbol, if defined, indicates that the socks5_init routine is
+ *     available to initialize SOCKS 5.
+ */
+/*#define HAS_SOCKS5_INIT              /**/
+
 /* HAS_SQRTL:
  *     This symbol, if defined, indicates that the sqrtl routine is
  *     available to do long double square roots.
  *     This symbol is defined if the FILE_cnt macro can be used as an
  *     lvalue.
  */
+/* STDIO_PTR_LVAL_SETS_CNT:
+ *     This symbol is defined if using the FILE_ptr macro as an lvalue
+ *     to increase the pointer by n has the side effect of decreasing the
+ *     value of File_cnt(fp) by n.
+ */
+/* STDIO_PTR_LVAL_NOCHANGE_CNT:
+ *     This symbol is defined if using the FILE_ptr macro as an lvalue
+ *     to increase the pointer by n leaves File_cnt(fp) unchanged.
+ */
 #define USE_STDIO_PTR  /**/
 #ifdef USE_STDIO_PTR
 #define FILE_ptr(fp)   ((fp)->_ptr)
 #define STDIO_PTR_LVALUE               /**/
 #define FILE_cnt(fp)   ((fp)->_cnt)
 #define STDIO_CNT_LVALUE               /**/
+/*#define STDIO_PTR_LVAL_SETS_CNT      /**/
+#define STDIO_PTR_LVAL_NOCHANGE_CNT    /**/
 #endif
 
 /* USE_STDIO_BASE:
  */
 /*#define   I_INTTYPES                /**/
 
+/* I_LIBUTIL:
+ *     This symbol, if defined, indicates that <libutil.h> exists and
+ *     should be included.
+ */
+/*#define      I_LIBUTIL               /**/
+
 /* I_MACH_CTHREADS:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <mach/cthreads.h>.
  */
 /*#define      I_POLL          /**/
 
+/* I_PROT:
+ *     This symbol, if defined, indicates that <prot.h> exists and
+ *     should be included.
+ */
+/*#define      I_PROT          /**/
+
 /* I_PTHREAD:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <pthread.h>.
  *     This symbol, if defined, contains the string used by stdio to
  *     format long doubles (format 'g') for output.
  */
+/* PERL_PRIeldbl:
+ *     This symbol, if defined, contains the string used by stdio to
+ *     format long doubles (format 'e') for output.
+ */
+/* PERL_SCNfldbl:
+ *     This symbol, if defined, contains the string used by stdio to
+ *     format long doubles (format 'f') for input.
+ */
 /*#define PERL_PRIfldbl        "f"     /**/
 /*#define PERL_PRIgldbl        "g"     /**/
+/*#define PERL_PRIeldbl        "e"     /**/
+/*#define PERL_SCNfldbl        undef   /**/
 
 /* Off_t:
  *     This symbol holds the type used to declare offsets in the kernel.
 #define Netdb_name_t           char * /**/
 #define Netdb_net_t            long /**/
 
+/* PERL_OTHERLIBDIRS:
+ *     This variable contains a colon-separated set of paths for the perl
+ *     binary to search for additional library files or modules.
+ *     These directories will be tacked to the end of @INC.
+ *     Perl will automatically search below each path for version-
+ *     and architecture-specific directories.  See PERL_INC_VERSION_LIST
+ *     for more details.
+ */
+/*#define PERL_OTHERLIBDIRS ""         /**/
+
 /* IVTYPE:
  *     This symbol defines the C type used for Perl's IV.
  */
 /* U64SIZE:
  *     This symbol contains the sizeof(U64).
  */
+/* NVSIZE:
+ *     This symbol contains the sizeof(NV).
+ */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
- *     can preserve all the bit of a variable of type UVTYPE.
+ *     can preserve all the bits of a variable of type UVTYPE.
  */
 /* NV_PRESERVES_UV_BITS:
  *     This symbol contains the number of bits a variable of type NVTYPE
 #define        I64SIZE         8       /**/
 #define        U64SIZE         8       /**/
 #endif
+#define        NVSIZE          8               /**/
 #define        NV_PRESERVES_UV
 #define        NV_PRESERVES_UV_BITS    32
 
  */
 /* UVxf:
  *     This symbol defines the format string used for printing a Perl UV
- *     as an unsigned hexadecimal integer.
+ *     as an unsigned hexadecimal integer in lowercase abcdef.
  */
 /* NVef:
  *     This symbol defines the format string used for printing a Perl NV
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "c:\\perl\\5.6.0\\lib"         /**/
-#define PRIVLIB_EXP (win32_get_privlib("5.6.0"))       /**/
+#define PRIVLIB "c:\\perl\\5.7.0\\lib"         /**/
+#define PRIVLIB_EXP (win32_get_privlib("5.7.0"))       /**/
 
 /* PTRSIZE:
  *     This symbol contains the size of a pointer, so that the C preprocessor
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86"             /**/
+#define SITEARCH "c:\\perl\\site\\5.7.0\\lib\\MSWin32-x86-multi"               /**/
 /*#define SITEARCH_EXP ""      /**/
 
 /* SITELIB:
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "c:\\perl\\site\\5.6.0\\lib"           /**/
-#define SITELIB_EXP (win32_get_sitelib("5.6.0"))       /**/
+#define SITELIB "c:\\perl\\site\\5.7.0\\lib"           /**/
+#define SITELIB_EXP (win32_get_sitelib("5.7.0"))       /**/
 #define SITELIB_STEM ""                /**/
 
 /* Size_t_size:
  *     be built to use multiplicity.
  */
 #ifndef MULTIPLICITY
-/*#define      MULTIPLICITY            /**/
+#define        MULTIPLICITY            /**/
 #endif
 
 /* USE_PERLIO:
 /* PERL_XS_APIVERSION:
  *     This variable contains the version of the oldest perl binary
  *     compatible with the present perl.  perl.c:incpush() and
- *     lib/lib.pm will automatically search in c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86 for older
+ *     lib/lib.pm will automatically search in c:\\perl\\site\\5.7.0\\lib\\MSWin32-x86-multi for older
  *     directories across major versions back to xs_apiversion.
  *     This is only useful if you have a perl library directory tree
  *     structured like the default one.
  *     compatible with the present perl.  (That is, pure perl modules
  *     written for pm_apiversion will still work for the current
  *     version).  perl.c:incpush() and lib/lib.pm will automatically
- *     search in c:\\perl\\site\\5.6.0\\lib for older directories across major versions
+ *     search in c:\\perl\\site\\5.7.0\\lib for older directories across major versions
  *     back to pm_apiversion.  This is only useful if you have a perl
  *     library directory tree structured like the default one.  The
  *     versioned site_perl library was introduced in 5.005, so that's
 #define PERL_XS_APIVERSION "5.6.0"
 #define PERL_PM_APIVERSION "5.005"
 
-/* HAS_LCHOWN:
- *     This symbol, if defined, indicates that the lchown routine is
- *     available to operate on a symbolic link (instead of following the
- *     link).
+/* HAS_GETPGRP:
+ *     This symbol, if defined, indicates that the getpgrp routine is
+ *     available to get the current process group.
  */
-/*#define HAS_LCHOWN           /**/
+/* USE_BSD_GETPGRP:
+ *     This symbol, if defined, indicates that getpgrp needs one
+ *     arguments whereas USG one needs none.
+ */
+/*#define HAS_GETPGRP          /**/
+/*#define USE_BSD_GETPGRP      /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
+/* HAS_SETPGRP:
+ *     This symbol, if defined, indicates that the setpgrp routine is
+ *     available to set the current process group.
  */
-#define        FLEXFILENAMES           /**/
+/* USE_BSD_SETPGRP:
+ *     This symbol, if defined, indicates that setpgrp needs two
+ *     arguments whereas USG one needs none.  See also HAS_SETPGID
+ *     for a POSIX interface.
+ */
+/*#define HAS_SETPGRP          /**/
+/*#define USE_BSD_SETPGRP      /**/
+
+/* HAS__FWALK:
+ *     This symbol, if defined, indicates that the _fwalk system call is
+ *     available to apply a function to all the file handles.
+ */
+/*#define HAS__FWALK           /**/
+
+/* FCNTL_CAN_LOCK:
+ *     This symbol, if defined, indicates that fcntl() can be used
+ *     for file locking.  Normally on Unix systems this is defined.
+ *     It may be undefined on VMS.
+ */
+/*#define FCNTL_CAN_LOCK               /**/
+
+/* HAS_FSYNC:
+ *     This symbol, if defined, indicates that the fsync routine is
+ *     available to write a file's modified data and attributes to
+ *     permanent storage.
+ */
+/*#define HAS_FSYNC            /**/
+
+/* HAS_SBRK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the sbrk() function.  Otherwise, it is up
+ *     to the program to supply one.  Good guesses are
+ *             extern void* sbrk _((int));
+ *             extern void* sbrk _((size_t));
+ */
+/*#define      HAS_SBRK_PROTO  /**/
+
+/* NEED_VA_COPY:
+ *     This symbol, if defined, indicates that the system stores
+ *     the variable argument list datatype, va_list, in a format
+ *     that cannot be copied by simple assignment, so that some
+ *     other means must be used when copying is required.
+ *     As such systems vary in their provision (or non-provision)
+ *     of copying mechanisms, handy.h defines a platform-
+ *     independent macro, Perl_va_copy(src, dst), to do the job.
+ */
+/*#define      NEED_VA_COPY            /**/
 
 #endif
index d9b666a..cbdc86d 100644 (file)
@@ -6,7 +6,7 @@
 #      Mingw32 with gcc-2.95.2 or better  **experimental**
 #
 # This is set up to build a perl.exe that runs off a shared library
-# (perl56.dll).  Also makes individual DLLs for the XS extensions.
+# (perl57.dll).  Also makes individual DLLs for the XS extensions.
 #
 
 ##
@@ -33,7 +33,7 @@ INST_TOP      *= $(INST_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-INST_VER       *= \5.6.0
+INST_VER       *= \5.7.0
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -50,7 +50,7 @@ INST_ARCH     *= \$(ARCHNAME)
 # uncomment to enable multiple interpreters.  This is need for fork()
 # emulation.
 #
-#USE_MULTI     *= define
+USE_MULTI      *= define
 
 #
 # Beginnings of interpreter cloning/threads; still very incomplete.
@@ -111,7 +111,7 @@ CCTYPE              *= GCC
 # If not enabled, we automatically try to use maximum optimization
 # with all compilers that are known to have a working optimizer.
 #
-#CFG           *= Debug
+CFG            *= Debug
 
 #
 # uncomment to enable use of PerlCRT.DLL when using the Visual C compiler.
@@ -165,7 +165,7 @@ CCTYPE              *= GCC
 #
 #CCHOME                *= c:\bc5
 #CCHOME                *= $(MSVCDIR)
-CCHOME         *= c:\gcc-2.95.2-msvcrt
+CCHOME         *= c:\gcc-2.95.2
 CCINCDIR       *= $(CCHOME)\include
 CCLIBDIR       *= $(CCHOME)\lib
 
@@ -570,7 +570,7 @@ CFGH_TMPL   = config_H.bc
 
 CFGSH_TMPL     = config.gc
 CFGH_TMPL      = config_H.gc
-PERLIMPLIB     = ..\libperl56$(a)
+PERLIMPLIB     = ..\libperl57$(a)
 
 .ELSE
 
@@ -579,8 +579,8 @@ CFGH_TMPL   = config_H.vc
 
 .ENDIF
 
-PERLIMPLIB     *= ..\perl56$(a)
-PERLDLL                = ..\perl56.dll
+PERLIMPLIB     *= ..\perl57$(a)
+PERLDLL                = ..\perl57.dll
 
 XCOPY          = xcopy /f /r /i /d
 RCOPY          = xcopy /f /r /i /e /d