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