From: Nick Ing-Simmons Date: Wed, 22 Nov 2000 20:51:42 +0000 (+0000) Subject: Win32 PerlIO intermediate state now working as expected. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=3789aae2a16ba33c51e31b2ff3418eaef6c2ff4d;p=p5sagit%2Fp5-mst-13.2.git Win32 PerlIO intermediate state now working as expected. - 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 --- diff --git a/README.win32 b/README.win32 index fc4dc56..ddc1f84 100644 --- a/README.win32 +++ b/README.win32 @@ -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, 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. =item Gurusamy Sarathy Egsar@activestate.comE -=item Nick Ing-Simmons Enick@ni-s.u-net.comE +=item Nick Ing-Simmons Enick@ing-simmons.netE =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 diff --git a/perlio.c b/perlio.c index 5df3d2d..925e3fb 100644 --- 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; diff --git a/t/pragma/warnings.t b/t/pragma/warnings.t index 3674497..872e6e1 100644 --- a/t/pragma/warnings.t +++ b/t/pragma/warnings.t @@ -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 () { + $line++; last if /^__END__/ ; } { local $/ = undef; - @prgs = (@prgs, split "\n########\n", ) ; + $files++; + @prgs = (@prgs, $file, split "\n########\n", ) ; } 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+//){ diff --git a/win32/config_H.gc b/win32/config_H.gc index 0e4cb71..4445f77 100644 --- a/win32/config_H.gc +++ b/win32/config_H.gc @@ -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 : */ @@ -183,13 +183,6 @@ */ /*#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(). @@ -227,17 +220,6 @@ */ /*#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. @@ -492,18 +474,6 @@ */ /*#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. @@ -1095,7 +1065,7 @@ * 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: @@ -1104,7 +1074,7 @@ * 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 @@ -1126,8 +1096,8 @@ * 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 @@ -1187,21 +1157,21 @@ * 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: @@ -1337,11 +1307,24 @@ */ #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. @@ -1389,6 +1372,12 @@ */ /*#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. @@ -1494,6 +1483,13 @@ */ /*#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. @@ -1519,6 +1515,12 @@ */ #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. @@ -1546,24 +1548,6 @@ */ /*#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 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. @@ -1645,6 +1629,13 @@ */ /*#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 * or defines the symbol LDBL_DIG, which is the number @@ -1732,12 +1723,6 @@ /*#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 @@ -1745,6 +1730,12 @@ */ /*#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). @@ -1851,6 +1842,12 @@ */ /*#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. @@ -1966,6 +1963,12 @@ /*#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. @@ -2028,12 +2031,23 @@ * 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: @@ -2301,6 +2315,12 @@ */ /*#define I_INTTYPES /**/ +/* I_LIBUTIL: + * This symbol, if defined, indicates that exists and + * should be included. + */ +/*#define I_LIBUTIL /**/ + /* I_MACH_CTHREADS: * This symbol, if defined, indicates to the C program that it should * include . @@ -2331,6 +2351,12 @@ */ /*#define I_POLL /**/ +/* I_PROT: + * This symbol, if defined, indicates that exists and + * should be included. + */ +/*#define I_PROT /**/ + /* I_PTHREAD: * This symbol, if defined, indicates to the C program that it should * include . @@ -2493,8 +2519,18 @@ * 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. @@ -2582,6 +2618,16 @@ #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. */ @@ -2645,9 +2691,12 @@ /* 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 @@ -2678,6 +2727,7 @@ #define I64SIZE 8 /**/ #define U64SIZE 8 /**/ #endif +#define NVSIZE 8 /**/ #define NV_PRESERVES_UV #define NV_PRESERVES_UV_BITS 32 @@ -2695,7 +2745,7 @@ */ /* 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 @@ -2734,8 +2784,8 @@ * 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 @@ -2833,7 +2883,7 @@ * 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: @@ -2856,8 +2906,8 @@ * 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: @@ -2985,7 +3035,7 @@ * be built to use multiplicity. */ #ifndef MULTIPLICITY -/*#define MULTIPLICITY /**/ +#define MULTIPLICITY /**/ #endif /* USE_PERLIO: @@ -3082,7 +3132,7 @@ /* 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. @@ -3101,7 +3151,7 @@ * 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 @@ -3114,17 +3164,67 @@ #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 diff --git a/win32/makefile.mk b/win32/makefile.mk index d9b666a..cbdc86d 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -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