Hi Martin, thanks for taking the time to report the issues with OpenVMS and, more importantly, providing fixes as well!
All are fine, and will be included in the next release of Compress::Zlib cheers Paul > -----Original Message----- > From: Dr. Martin P.J. Zinser [mailto:[EMAIL PROTECTED] > Sent: 02 October 2003 22:31 > To: [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: Compress:Zlib 1.22 on OpenVMS > > > Hello Paul, > > I've not only got a problem, I might also have a solution;-) > Environment is Perl 5.8.1, Compress::Zlib 1.22, OpenVMS Alpha 7.3, > Compaq C V6.5. > > Using the Kit with a properly configured config.in I get > > $ perl Makefile.PL > Parsing config.in... > Looks Good. > Can't rename t/01version.t to t/01version.t.bak: file > specification syntax error > , skipping file at makefile.pl line 390. > Can't rename t/02zlib.t to t/02zlib.t.bak: file specification > syntax error, skip > ping file at makefile.pl line 390. > Can't rename t/03examples.t to t/03examples.t.bak: file > specification syntax err > or, skipping file at makefile.pl line 390. > Can't rename t/04encoding.t to t/04encoding.t.bak: file > specification syntax err > or, skipping file at makefile.pl line 390. > Can't rename t/05gzsetp.t to t/05gzsetp.t.bak: file specification > syntax error, > skipping file at makefile.pl line 390. > Can't rename t/06gzdopen.t to t/06gzdopen.t.bak: file > specification syntax error > , skipping file at makefile.pl line 390. > Can't rename examples/filtdef. to examples/filtdef..bak: file > specification synt > ax error, skipping file at makefile.pl line 390. > Can't rename examples/filtinf. to examples/filtinf..bak: file > specification synt > ax error, skipping file at makefile.pl line 390. > Can't rename examples/gzcat. to examples/gzcat..bak: file > specification syntax e > rror, skipping file at makefile.pl line 390. > Can't rename examples/gzgrep. to examples/gzgrep..bak: file > specification syntax > error, skipping file at makefile.pl line 390. > Can't rename examples/gzstream. to examples/gzstream..bak: file > specification sy > ntax error, skipping file at makefile.pl line 390. > Up/Downgrade complete. > Checking if your kit is complete... > Looks good > Writing Descrip.MMS for Compress::Zlib > > --> VMS generally does not like file names with multiple dots in > it. (There are > certain conditions where one can do this, but this will not > work in all or > even most cases). The following one line patch to Makefile.PL > cures the > obvious problem, although a more rigorous approach might be to do > something like > $back_ext = (^O eq 'VMS') ? "_bak" : ".bak"; > and then use $back_ext throughout the script. > > $diff -c Makefile.PL.orig Makefile.PL > *** Makefile.PL.orig 2003-09-24 13:01:13.000000000 -0500 > --- Makefile.PL 2003-09-24 13:09:49.000000000 -0500 > *************** > *** 384,390 **** > my $our_sub = shift; > my $warn_sub = shift; > > ! local ($^I) = ".bak" ; > local (@ARGV) = shift; > > while (<>) > --- 384,390 ---- > my $our_sub = shift; > my $warn_sub = shift; > > ! local ($^I) = ($^O eq 'VMS') ? "_bak" : ".bak"; > local (@ARGV) = shift; > > while (<>) > > During compilation of Zlib.c I did receive the following messages: > > CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj > /NOANSI_ALIAS/floa > t=ieee/ieee=denorm_results/Define=("VERSION=""1.22""","XS_VERSION= > ""1.22""")/Inc > lude=(perl_root:[lib.VMS_AXP.5_8_1.CORE],zlib:)/NoList ZLIB.c > > printf(" stream 0x%p\n", s->stream); > ..............................................^ > %CC-W-OUTTYPELEN, In this statement, this argument to printf is > of "a struct" ty > pe and is not appropriate for the conversion specifier "%p". The > value might be > truncated or formatted in an unintended manner. > at line number 182 in file DISK$USER:[ZINSER.TMP.CZLIB]Zlib.xs;1 > > printf(" dict_adler 0x%p\n", s->dict_adler); > ..............................................^ > %CC-W-OUTTYPELEN, In this statement, this argument to printf is > of "an unsigned > long" type and is not appropriate for the conversion specifier > "%p". The value > might be truncated or formatted in an unintended manner. > at line number 212 in file DISK$USER:[ZINSER.TMP.CZLIB]Zlib.xs;1 > %MMK-F-ERRUPD, error status %X10B91260 occurred when updating > target ZLIB.OBJ > > Both s->stream and s->dict_adler are not really pointers, so I > propose the > patch below, which does compile cleanly for me (both on OpenVMS > and a Linux > 2.4.20 GCC 3.3 system used for crosstesting) > > $diff -c Zlib.xs.orig Zlib.xs > *** Zlib.xs.orig 2003-09-24 13:01:00.000000000 -0500 > --- Zlib.xs 2003-09-24 13:10:02.000000000 -0500 > *************** > *** 179,185 **** > printf(" stream pointer is NULL\n"); > } > else { > ! printf(" stream 0x%p\n", s->stream); > printf(" zalloc 0x%p\n", s->stream.zalloc); > printf(" zfree 0x%p\n", s->stream.zfree); > printf(" opaque 0x%p\n", s->stream.opaque); > --- 179,185 ---- > printf(" stream pointer is NULL\n"); > } > else { > ! printf(" stream 0x%p\n", &(s->stream)); > printf(" zalloc 0x%p\n", s->stream.zalloc); > printf(" zfree 0x%p\n", s->stream.zfree); > printf(" opaque 0x%p\n", s->stream.opaque); > *************** > *** 209,215 **** > printf(" reserved 0x%lx\n", s->stream.reserved); > printf(" bufsize %ld\n", s->bufsize); > printf(" dictionary 0x%p\n", s->dictionary); > ! printf(" dict_adler 0x%p\n", s->dict_adler); > printf("\n"); > > } > --- 209,215 ---- > printf(" reserved 0x%lx\n", s->stream.reserved); > printf(" bufsize %ld\n", s->bufsize); > printf(" dictionary 0x%p\n", s->dictionary); > ! printf(" dict_adler %ld\n", s->dict_adler); > printf("\n"); > > } > > I hope you might consider these changes for inclusion in version 1.23. > > Greetings, Martin > > P.S. Thanks a lot your work with Compress::Zlib!! > P.P.S. Cross-posted on request of interested parties at the > vmsperl mailing list. > Dr. Martin P.J. Zinser > [EMAIL PROTECTED] > Deutsche Boerse Systems Inc. > Suite 1580 Tel: +1-312-408-3085 > 141 West Jackson Blvd. FAX: +1-312-408-3071 > Chicago, IL, 60604 > USA Private: [EMAIL PROTECTED]
