Here is what happened with vmsperl_pre56_3 + the s/use_64bitint/use64bitint/
modification to [.vms]subconfigure.com using DEC C V5.3-006 on OpenVMS 
Alpha V6.2-1H3 (please note that my previous postings were discussions of 
DECC6.0 on AXP VMS 7.1) and a @configure "-des" setup:

CC/DECC 
/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/Define=PERL_CORE XSUTILS.C
Library/Object/Replace LIBPERL.OLB SOCKADAPT.OBJ, AV.OBJ, DEB.OBJ, DOIO.OBJ, 
DOOP.OBJ, DUMP.OBJ, GLOBALS.OBJ, GV.OBJ, HV.OBJ, MG.OBJ, MINIPERLMAIN.OBJ, OP.OBJ,
PERL.OBJ, PERLIO.OBJ, PERLY.OBJ, PP.OBJ, PP_CTL.OBJ, PP_HOT.OBJ, PP_SYS.OBJ, 
REGCOMP.OBJ, RE-
GEXEC.OBJ, RUN.OBJ, SCOPE.OBJ, SV.OBJ, TAINT.OBJ, TOKE.OBJ, UNIVERSAL.OBJ, 
UTF8.OBJ, UTIL.OBJ, VMS.OBJ, XSUTILS.OBJ
Link /NoTrace/NoMap/Trace/Exe=MINIPERL.EXE 
miniperlmain.obj,libperl.olb/Library/
Include=globals  ,[]crtl.opt/Options
%LINK-W-NUDFSYMS, 1 undefined symbol:
%LINK-I-UDFSYM,         H_ERRNO
%LINK-W-USEUNDEF, undefined symbol H_ERRNO referenced
        in psect $LINK$ offset %X000007B0
        in module PP_SYS file DRA1:[VMSPERL]LIBPERL.OLB;1
%MMS-F-ABORT, For target MINIPERL.EXE, CLI returned abort status: %X10648268.

So at first appearance the h_errno fix did not appear to help this 
cantankerous compiler.  But hold on to your hats, If I remove the extern 
from the declaration of int h_errno in pp_sys.c then I see a full build!  
No accessvio's with `mcr minperl -I -I` Yeah!

So what is the best way to this diff past the cpp police?

Does this enclosed patch stand a chance?  Note that the  
s/use_64bitint/use64bitint/ edit to vms/subconfigure.com has already been 
handed over to Jarkko by Dan Sugalski and is repeated here.  Therefore 
hunk rejection may occur:

diff -ru vmsperl_orig/pp_sys.c vmsperl/pp_sys.c
--- vmsperl_orig/pp_sys.c       Sun Feb 27 20:07:10 2000
+++ vmsperl/pp_sys.c    Fri Mar  3 18:19:53 2000
@@ -78,7 +78,11 @@
    HOST_NOT_FOUND is typically defined in <netdb.h>.
 */
 #if defined(HOST_NOT_FOUND) && !defined(h_errno) && !defined(__CYGWIN__)
+# if defined(H_ERRNO_NOT_EXTERN)
+int h_errno;
+# else
 extern int h_errno;
+# endif
 #endif
 
 #ifdef HAS_PASSWD
diff -ru vmsperl_orig/vms/subconfigure.com vmsperl/vms/subconfigure.com
--- vmsperl_orig/vms/subconfigure.com   Thu Mar  2 18:25:42 2000
+++ vmsperl/vms/subconfigure.com        Fri Mar  3 18:20:07 2000
@@ -3535,7 +3535,7 @@
 $ gosub type_size_check
 $ perl_u32size="''line'"
 $
-$ If use_64bitint
+$ If use64bitint
 $ Then
 $   type = "''perl_i64type'"
 $   size_name = "i64size"
@@ -4241,6 +4241,10 @@
 $ endif
 $ WRITE CONFIG "#define HAS_ENVGETENV"
 $ WRITE CONFIG "#define PERL_EXTERNAL_GLOB"
+$ IF ((Using_Dec_C) .AND. (F$INTEGER(Dec_C_Version) .EQ. 50390006))
+$ THEN
+$ WRITE CONFIG "#define H_ERRNO_NOT_EXTERN"
+$ ENDIF
 $ CLOSE CONFIG
 $!
 $! Now build the normal config.h
End of Patch.

Note that with that patch the regression tests do look "OK" or about as
OK as they have on VMS recently, they come down to:

[.io]open...............ok
[.io]openpid............FAILED on test 8

and hang there.  There are one or two proposals on the table to address
this particular hang (See mail from Charles Lane and Craig Berry).

If I remove t/io/openpid.t then I see only these failures:

[.lib]filefind..........FAILED on test 18  ! Charles Lane had a fix

[.lib]filespec..........FAILED on test 1   ! I am not sure about this one

[.lib]vmsfspec..........FAILED on test 62  ! Charles Bailey has a fix?

[.pragma]warnings.......FAILED on test 151
Failed 4/220 tests, 92.27% okay.
u=16.5  s=0  cu=0  cs=0  files=207  tests=9248

 3-MAR-2000 19:45:28.67   User: PVHP             Process ID:   0000076C
                          Node: SATURN           Process name: "PVHP_1"

Accounting information:
 Buffered I/O count:     50817  Peak working set size:       5936
 Direct I/O count:        2475  Peak virtual size:          51824
 Page faults:             9407  Mounted volumes:                0
 Images activated:          46
 Elapsed CPU time:          0 00:00:16.52
 Connect time:              0 00:05:38.69

Peter Prymmer

Reply via email to