Here's a revision of my previous patch that:
(a) adds a check in configure.com to see if vms/perly_vms.c is up to
date (i.e., if vms/vms_yfix.pl has been run)
(b) modifies vms/gen_shrfls.pl to consult config.sh for whether GCC is used.
The only changes are in (a), where I've followed Peter's suggestions and
also rewritten the error message. With any luck, no one will ever see
the error message, although I'm not quite that optimistic :)
diff -uBb configure.com-orig configure.com
--- configure.com-orig Tue Oct 31 17:31:07 2000
+++ configure.com Tue Oct 31 17:47:43 2000
@@ -677,6 +677,61 @@
$ ENDIF
$ DELETE/NOLOG/NOCONFIRM []ver.out;
$ ENDIF
+$!: check for perly/perly_c.vms generation
+$ open/read CONFIG [-]perly.c
+$ read CONFIG line
+$ close CONFIG
+$ match = "/* postprocessed by vms_yfix.pl"
+$ if f$extract(0,f$length(match),line) .nes. match
+$ then
+$ torig = f$cvtime(f$file_attributes("[-]perly.c","CDT"))
+$ tvms = f$cvtime(f$file_attributes("[-.vms]perly_c.vms","CDT"))
+$ if (torig .ges. tvms)
+$ then
+$ type sys$input:
+$ deck
+
+Uh oh, looks like vms/perly_c.vms wasn't updated. That sometimes
+happens with new Perl releases, and should be considered a bug in the
+release, albeit a fixable one.
+
+The suggested procedure at this point is to:
+ 1) Exit from this procedure
+ 2) Complain to the Perl Maintainers :)
+ 3) If you already have a working copy of Perl:
+ 3a) set default to the directory where this CONFIGURE.COM lives
+ 3b) do:
+ $ PERL VMS/VMS_YFIX.PL
+ 3c) do the @CONFIGURE again, there should be no more complaints
+ 3d) use MMS/K to build Perl.
+
+ If you don't have a working copy of Perl, make sure you don't skip
+ step 2. Compiling Perl with an out-of-synch vms/perly_vms.c will
+ likely result in some obscure compile/link errors, so proceed at
+ your own risk.
+
+ If this is a development version of Perl, it's quite likely that the
+ release just prior (or after) will not have this problem.
+
+$ EOD
+$ dflt="n"
+$ rp="Do you really want to continue? [''dflt'] "
+$ IF (fastread) THEN fastread := FALSE
+$ GOSUB myread
+$ IF ans .EQS. "" THEN ans = dflt
+$ IF ans
+$ THEN
+$ echo4 "Okay, continuing."
+$ ELSE
+$ echo4 "Okay, bye."
+$ GOTO Clean_up
+$ ENDIF
+$ endif
+$ delete/symbol torig
+$ delete/symbol tvms
+$ endif
+$ delete/symbol line
+$ delete/symbol match
$!: general instructions
$ needman = "true"
$ firsttime = "true"
diff -uBb vms/gen_shrfls.pl-orig vms/gen_shrfls.pl
--- vms/gen_shrfls.pl-orig Tue Oct 31 17:31:09 2000
+++ vms/gen_shrfls.pl Tue Oct 31 17:31:09 2000
@@ -68,6 +68,9 @@
elsif (-f '[-]perl.h') { $dir = '[-]'; }
else { die "$0: Can't find perl.h\n"; }
+ $use_threads = $use_mymalloc = $case_about_case = $debugging_enabled = 0;
+ $hide_mymalloc = $isgcc = 0;
+
# Go see what is enabled in config.sh
$config = $dir . "config.sh";
open CONFIG, "< $config";
@@ -77,6 +80,7 @@
$care_about_case++ if /d_vms_case_sensitive_symbols='define'/;
$debugging_enabled++ if /usedebugging_perl='Y'/;
$hide_mymalloc++ if /embedmymalloc='Y'/;
+ $isgcc++ if /gccversion='[^']/;
}
close CONFIG;
@@ -93,8 +97,7 @@
# check for gcc - if present, we'll need to use MACRO hack to
# define global symbols for shared variables
- $isgcc = `$cc_cmd _nla0:/Version` =~ /GNU/
- or 0; # make debug output nice
+
print "\$isgcc: $isgcc\n" if $debug;
print "\$debugging_enabled: $debugging_enabled\n" if $debug;
--
Drexel University \V --Chuck Lane
======]---------->--------*------------<-------[===========
(215) 895-1545 _/ \ Particle Physics
FAX: (215) 895-5934 /\ /~~~~~~~~~~~ [EMAIL PROTECTED]