The attached patch (plus one additional step) gets bleadperl building on VMS again. The additional step is renaming the directory
ext/Compress/Zlib/zlib-src-1.2.3 to ext/Compress/Zlib/zlib-src which I assume needs to be done in Perforce. The related changes to MANIFEST and ext/Compress/Zlib/config.in are in the patch. The dot is the directory delimiter on VMS, and although newer versions of VMS have ways to escape the dots when the non-default features for doing so are enabled, it's a heck of a lot easier to just avoid dots in directory names.
--- MANIFEST;-0 Thu Jul 21 08:09:42 2005 +++ MANIFEST Sat Jul 23 18:54:48 2005 @@ -170,28 +170,28 @@ ext/Compress/Zlib/t/04encoding.t Compres ext/Compress/Zlib/t/05gzsetp.t Compress::Zlib ext/Compress/Zlib/t/06gzdopen.t Compress::Zlib ext/Compress/Zlib/typemap Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/adler32.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/compress.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/crc32.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/crc32.h Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/deflate.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/deflate.h Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/gzio.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/infback.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/inffast.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/inffast.h Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/inffixed.h Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/inflate.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/inflate.h Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/inftrees.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/inftrees.h Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/trees.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/trees.h Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/uncompr.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/zconf.h Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/zlib.h Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/zutil.c Compress::Zlib -ext/Compress/Zlib/zlib-src-1.2.3/zutil.h Compress::Zlib +ext/Compress/Zlib/zlib-src/adler32.c Compress::Zlib +ext/Compress/Zlib/zlib-src/compress.c Compress::Zlib +ext/Compress/Zlib/zlib-src/crc32.c Compress::Zlib +ext/Compress/Zlib/zlib-src/crc32.h Compress::Zlib +ext/Compress/Zlib/zlib-src/deflate.c Compress::Zlib +ext/Compress/Zlib/zlib-src/deflate.h Compress::Zlib +ext/Compress/Zlib/zlib-src/gzio.c Compress::Zlib +ext/Compress/Zlib/zlib-src/infback.c Compress::Zlib +ext/Compress/Zlib/zlib-src/inffast.c Compress::Zlib +ext/Compress/Zlib/zlib-src/inffast.h Compress::Zlib +ext/Compress/Zlib/zlib-src/inffixed.h Compress::Zlib +ext/Compress/Zlib/zlib-src/inflate.c Compress::Zlib +ext/Compress/Zlib/zlib-src/inflate.h Compress::Zlib +ext/Compress/Zlib/zlib-src/inftrees.c Compress::Zlib +ext/Compress/Zlib/zlib-src/inftrees.h Compress::Zlib +ext/Compress/Zlib/zlib-src/trees.c Compress::Zlib +ext/Compress/Zlib/zlib-src/trees.h Compress::Zlib +ext/Compress/Zlib/zlib-src/uncompr.c Compress::Zlib +ext/Compress/Zlib/zlib-src/zconf.h Compress::Zlib +ext/Compress/Zlib/zlib-src/zlib.h Compress::Zlib +ext/Compress/Zlib/zlib-src/zutil.c Compress::Zlib +ext/Compress/Zlib/zlib-src/zutil.h Compress::Zlib ext/Data/Dumper/Changes Data pretty printer, changelog ext/Data/Dumper/Dumper.pm Data pretty printer, module ext/Data/Dumper/Dumper.xs Data pretty printer, externals --- mg.c;-0 Thu Jul 21 11:10:07 2005 +++ mg.c Sat Jul 23 22:08:49 2005 @@ -1045,7 +1045,7 @@ Perl_magic_setenv(pTHX_ SV *sv, MAGIC *m MgTAINTEDDIR_off(mg); #ifdef VMS if (s && klen == 8 && strEQ(ptr, "DCL$PATH")) { - char pathbuf[256], eltbuf[256], *cp, *elt = s; + char pathbuf[256], eltbuf[256], *cp, *elt = (char *) s; Stat_t sbuf; int i = 0, j = 0; --- pp_ctl.c;-0 Sun Jul 17 19:46:43 2005 +++ pp_ctl.c Sat Jul 23 22:50:32 2005 @@ -3143,7 +3143,7 @@ PP(pp_require) I32 i; #ifdef VMS char *unixname; - if ((unixname = tounixspec(name, Nullch)) != Nullch) + if ((unixname = tounixspec((char *)name, Nullch)) != Nullch) #endif { namesv = NEWSV(806, 0); @@ -3280,7 +3280,7 @@ PP(pp_require) #else # ifdef VMS char *unixdir; - if ((unixdir = tounixpath(dir, Nullch)) == Nullch) + if ((unixdir = tounixpath((char *)dir, Nullch)) == Nullch) continue; sv_setpv(namesv, unixdir); sv_catpv(namesv, unixname); --- pp_sys.c;-0 Wed Jul 20 07:58:35 2005 +++ pp_sys.c Sat Jul 23 22:12:35 2005 @@ -3607,7 +3607,7 @@ PP(pp_chdir) #endif } else - PUSHi( PerlDir_chdir(tmps) >= 0 ); + PUSHi( PerlDir_chdir((char *)tmps) >= 0 ); #ifdef VMS /* Clear the DEFAULT element of ENV so we'll get the new value * in the future. */ @@ -3878,7 +3878,7 @@ PP(pp_mkdir) TAINT_PROPER("mkdir"); #ifdef HAS_MKDIR - SETi( PerlDir_mkdir(tmps, mode) >= 0 ); + SETi( PerlDir_mkdir((char *)tmps, mode) >= 0 ); #else SETi( dooneliner("mkdir", tmps) ); oldumask = PerlLIO_umask(0); @@ -3900,7 +3900,7 @@ PP(pp_rmdir) TRIMSLASHES(tmps,len,copy); TAINT_PROPER("rmdir"); #ifdef HAS_RMDIR - SETi( PerlDir_rmdir(tmps) >= 0 ); + SETi( PerlDir_rmdir((char *)tmps) >= 0 ); #else SETi( dooneliner("rmdir", tmps) ); #endif @@ -3924,7 +3924,7 @@ PP(pp_open_dir) if (IoDIRP(io)) PerlDir_close(IoDIRP(io)); - if (!(IoDIRP(io) = PerlDir_open(dirname))) + if (!(IoDIRP(io) = PerlDir_open((char *)dirname))) goto nope; RETPUSHYES; --- vms/gen_shrfls.pl;-0 Sun May 29 00:14:07 2005 +++ vms/gen_shrfls.pl Sun Jul 24 12:43:51 2005 @@ -152,7 +152,8 @@ sub scan_func { $line =~ s/\b(IV|Off_t|Size_t|SSize_t|void)\b//i; if ( $line =~ /(\w+)\s*\(/ ) { print "\troutine name is \\$1\\\n" if $debug > 1; - if ($1 eq 'main' || $1 eq 'perl_init_ext' || $1 eq '__attribute__format__') { + if ($1 eq 'main' || $1 eq 'perl_init_ext' || $1 eq '__attribute__format__' + || (($1 eq 'Perl_stashpv_hvname_match') && ! $use_threads)) { print "\tskipped\n" if $debug > 1; } else { $fcns{$1}++ } --- ext/Compress/Zlib/config.in;-0 Thu Jul 21 08:09:42 2005 +++ ext/Compress/Zlib/config.in Sun Jul 24 13:29:40 2005 @@ -12,8 +12,8 @@ # Compress::Zlib" in the README file for details of how to use this file. BUILD_ZLIB = True -INCLUDE = ./zlib-src-1.2.3 -LIB = ./zlib-src-1.2.3 +INCLUDE = ./zlib-src +LIB = ./zlib-src OLD_ZLIB = False