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]

Reply via email to