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]