Change 30162 by [EMAIL PROTECTED] on 2007/02/07 18:45:59

        Integrate:
        [ 27371]
        Subject: [PATCH] include configure.com in Porting/checkcfgvar.pl
        From: Abe Timmerman <[EMAIL PROTECTED]>
        Date: Fri, 3 Mar 2006 18:43:24 +0100
        Message-Id: <[EMAIL PROTECTED]>
        
        [ 27374]
        Subject: Re: [PATCH] include configure.com in Porting/checkcfgvar.pl
        From: Abe Timmerman <[EMAIL PROTECTED]>
        Date: Fri, 3 Mar 2006 22:56:47 +0100
        Message-Id: <[EMAIL PROTECTED]>
        
        [ 27386]
        Subject: PATCH: 2 vms specific build files in perl @ 27383
        From: Peter Prymmer <[EMAIL PROTECTED]>
        Date: Sun, 05 Mar 2006 20:30:09 -0500
        Message-id: <[EMAIL PROTECTED]>
        
        [ 27563]
        Subject: [EMAIL PROTECTED] thread.h - VMS needs more stack
        From: "John E. Malmberg" <[EMAIL PROTECTED]>
        Date: Fri, 17 Mar 2006 11:05:33 -0500
        Message-id: <[EMAIL PROTECTED]>
        
        [ 27593]
        improve thread linking options on VMS

Affected files ...

... //depot/maint-5.8/perl/Porting/checkcfgvar.pl#2 integrate
... //depot/maint-5.8/perl/configure.com#49 integrate
... //depot/maint-5.8/perl/thread.h#20 integrate
... //depot/maint-5.8/perl/vms/descrip_mms.template#44 integrate
... //depot/maint-5.8/perl/vms/gen_shrfls.pl#4 integrate

Differences ...

==== //depot/maint-5.8/perl/Porting/checkcfgvar.pl#2 (text) ====
Index: perl/Porting/checkcfgvar.pl
--- perl/Porting/checkcfgvar.pl#1~26106~        2005-11-12 14:48:11.000000000 
-0800
+++ perl/Porting/checkcfgvar.pl 2007-02-07 10:45:59.000000000 -0800
@@ -6,7 +6,8 @@
 # needed symbols are not lagging after how Configure thinks the world
 # is laid out.
 #
-# VMS is not handled here, due to their own rather elaborate DCL scripting.
+# VMS is probably not handled properly here, due to their own
+# rather elaborate DCL scripting.
 #
 
 use strict;
@@ -30,6 +31,7 @@
           "win32/config.vc",
           "win32/config.vc64",
           "wince/config.ce",
+          "configure.com",
          );
 
 sub read_file {
@@ -84,6 +86,8 @@
     read_file($cfg,
              sub {
                  return if /^\#/ || /^\s*$/;
+                 return if $cfg eq 'configure.com' &&
+                           ! /^\$\s+WC "(\w+)='(.*)'"$/;
                  # foo='bar'
                  # foo=bar
                  # $foo='bar' # VOS 5.8.x specialty
@@ -93,6 +97,9 @@
                  }
                  elsif (/^\$?(\w+)=(.*)$/) {
                      $cfg{$1}++;
+                 }
+                 elsif (/^\$\s+WC "(\w+)='(.*)'"$/) {
+                     $cfg{$1}++;
                  } else {
                      warn "$cfg:$.:$_";
                  }

==== //depot/maint-5.8/perl/configure.com#49 (text) ====
Index: perl/configure.com
--- perl/configure.com#48~30161~        2007-02-07 09:31:52.000000000 -0800
+++ perl/configure.com  2007-02-07 10:45:59.000000000 -0800
@@ -52,7 +52,8 @@
 $ uselargefiles = "n"
 $ usesitecustomize = "n"
 $ C_Compiler_Replace = "CC="
-$ Thread_Live_Dangerously = "MT="
+$ thread_upcalls = "MTU="
+$ thread_kernel = "MTK="
 $ use_two_pot_malloc = "N"
 $ use_pack_malloc = "N"
 $ use_debugmalloc = "N"
@@ -903,7 +904,7 @@
 $   config_symbols2 
="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitebin|sitelib|sitelib_stem|sitelibexp|try_cxx|use64bitall|use64bitint|"
 $   config_symbols3 
="|usecasesensitive|usedefaulttypes|usedevel|useieee|useithreads|usemultiplicity|usemymalloc|usedebugging_perl|useperlio|usesecurelog|"
 $   config_symbols4 
="|usethreads|usevmsdebug|usefaststdio|usemallocwrap|unlink_all_versions|uselargefiles|usesitecustomize|"
-$   config_symbols5 ="|buildmake|builder|"
+$   config_symbols5 ="|buildmake|builder|usethreadupcalls|usekernelthreads"
 $!  
 $   open/read CONFIG 'config_sh'
 $   rd_conf_loop:
@@ -1194,6 +1195,9 @@
 $!  Add _ROOT to make install PERL_ROOT differ from build directory.
 $   prefix = prefixbase + "_ROOT.]"
 $ ENDIF
+$ ! more redundant scrubbing of values
+$ prefix = prefix - "000000."
+$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + 
".]"
 $ src = prefix
 $!: determine root of directory hierarchy where package will be installed.
 $ dflt = prefix
@@ -2430,28 +2434,50 @@
 $     ELSE
 $       use_5005_threads="Y"
 $     ENDIF
-$     ! Are they on VMS 7.1 on an alpha or itanium?
-$     if (archname.nes."VMS_VAX").and.("''f$extract(1,3, 
f$getsyi(""version""))'".ges."7.1")
+$     ! Are they on VMS 7.1 or greater?
+$     IF "''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.1"
 $     THEN
 $       echo ""
-$       echo "Threaded perl can be linked to use multiple kernel threads"
-$       echo "and system upcalls on VMS 7.1+ on Alpha systems.  This feature"
-$       echo "allows multiple threads to execute simultaneously on an SMP"
-$       echo "system as well as preventing a single thread from blocking"
-$       echo "all the threads in a program, even on a single-processor"
-$       echo "machine.  Unfortunately, this feature isn't safe on an"
-$       echo "unpatched 7.1 system (several OS patches were required when"
-$       echo "this procedure was written)."
-$       bool_dflt = "n"
-$       rp = "Enable multiple kernel threads and upcalls? [''bool_dflt'] "
+$      echo "Threaded Perl can be linked to use system upcalls on your system. 
This feature"
+$      echo "allows the thread scheduler to be made aware of system events 
(such as I/O)"
+$      echo "so as to prevent a single thread from blocking all the threads in 
a program,"
+$      echo "even on a single-processor machine."
+$      bool_dflt = "y"
+$      IF f$type(usethreadupcalls) .NES. ""
+$      THEN
+$              if .not. usethreadupcalls .or. usethreadupcalls .eqs. "undef" 
then bool_dflt="n"
+$      ENDIF
+$       rp = "Enable thread upcalls? [''bool_dflt'] "
 $       gosub myread
-$       if ans
+$       IF ans
 $       THEN
-$         Thread_Live_Dangerously = "MT=MT=1"
+$           thread_upcalls = "MTU=MTU=1"
+$          usethreadupcalls = "define"
+$          ! Are they on alpha or itanium?
+$          IF (archname .NES. "VMS_VAX") .AND. ("''f$extract(1,3, 
f$getsyi(""version""))'" .GES. "7.2")
+$          THEN
+$              echo ""
+$              echo "Threaded Perl can be linked to use multiple kernel 
threads on your system."
+$              echo "This feature allows multiple user threads to make use of 
multiple CPUs on
+$              echo "a multi-processor machine."
+$              bool_dflt = "n"
+$              IF f$type(usekernelthreads) .nes. ""
+$              THEN
+$                      if usekernelthreads .or. usekernelthreads .eqs. 
"define" then bool_dflt="y"
+$              ENDIF
+$              rp = "Enable multiple kernel threads? [''bool_dflt'] "
+$              gosub myread
+$              IF ans
+$              THEN
+$                  thread_kernel = "MTK=MTK=1"
+$                  usekernelthreads = "define"
+$           ENDIF
 $       ENDIF
 $     ENDIF
 $   ENDIF
 $ ENDIF
+$ IF F$TYPE(usethreadupcalls) .EQS. "" THEN usethreadupcalls = "undef"
+$ IF F$TYPE(usekernelthreads) .EQS. "" THEN usekernelthreads = "undef"
 $ IF archname .NES. "VMS_VAX"
 $ THEN
 $! Case sensitive?
@@ -5652,8 +5678,8 @@
 $! WC "d_bsdpgrp='undef'"
 $ WC "d_bsdgetpgrp='undef'"
 $ WC "d_bsdsetpgrp='undef'"
-$ WC "d_builtin_choose_expr='undef'"
-$ WC "d_builtin_expect='undef'"
+$ WC "d_builtin_choose_expr='undef'" ! GCC only
+$ WC "d_builtin_expect='undef'" ! GCC only
 $ WC "d_bzero='" + d_bzero + "'"
 $ WC "d_casti32='define'"
 $ WC "d_castneg='define'"
@@ -6256,9 +6282,14 @@
 $ WC "shortsize='" + shortsize + "'"
 $ WC "shrplib='define'"
 $ WC "sig_name='" + sig_name + "'"
-$ tmp = "sig_name_init='" + sig_name_init + "'"
-$ WC/symbol tmp
-$ DELETE/SYMBOL tmp
+$ IF (f$length(sig_name_init) .GE. 1024)
+$ THEN
+$     tmp = "sig_name_init='" + sig_name_init + "'"
+$     WC/symbol tmp
+$     DELETE/SYMBOL tmp
+$ ELSE
+$     WC "sig_name_init='" + sig_name_init + "'"
+$ ENDIF
 $ WC "sig_num='" + sig_num + "'"
 $ WC "sig_num_init='" + sig_num_init + "'"
 $ WC "sig_count='" + sig_count + "'"
@@ -6314,6 +6345,7 @@
 $ WC "usefaststdio='" + usefaststdio + "'"
 $ WC "useieee='" + useieee + "'"                    ! VMS-specific
 $ WC "useithreads='" + useithreads + "'"
+$ WC "usekernelthreads='" + usekernelthreads + "'"     ! VMS-specific
 $ WC "uselargefiles='" + uselargefiles + "'"
 $ WC "uselongdouble='" + uselongdouble + "'"
 $ WC "usemorebits='" + usemorebits + "'"
@@ -6327,6 +6359,7 @@
 $ WC "usesitecustomize='" + usesitecustomize + "'"
 $ WC "usesocks='undef'"
 $ WC "usethreads='" + usethreads + "'"
+$ WC "usethreadupcalls='" + usethreadupcalls + "'"     ! VMS-specific
 $ WC "usevendorprefix='" + "'" ! try to say no, though we'll be ignored as of 
MM 5.90_01
 $ WC "usevfork='true'"
 $ WC "usevmsdebug='" + usevmsdebug + "'"     ! VMS-specific
@@ -6645,7 +6678,7 @@
 $ DEFINE/USER_MODE sys$output 'UUmakefile'
 $ mcr []munchconfig 'config_sh' 'Makefile_SH' "''DECC_REPLACE'" 
"''DECCXX_REPLACE'" "''ARCH_TYPE'" "''GNUC_REPLACE'" -
 "''SOCKET_REPLACE'" "''THREAD_REPLACE'" "''C_Compiler_Replace'" 
"''MALLOC_REPLACE'" -
-"''Thread_Live_Dangerously'" "PV=''version'" "FLAGS=FLAGS=''extra_flags'" 
"''LARGEFILE_REPLACE'"
+"''THREAD_UPCALLS'" "''THREAD_KERNEL'" "PV=''version'" 
"FLAGS=FLAGS=''extra_flags'" "''LARGEFILE_REPLACE'"
 $! Clean up after ourselves
 $ DELETE/NOLOG/NOCONFIRM []munchconfig.exe;
 $!
@@ -6886,8 +6919,6 @@
 $ pcsi_producer = f$trnlnm("PCSI_PRODUCER")
 $ if pcsi_producer .eqs. ""
 $ then
-$   prefix = prefix - "000000."
-$   IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" 
+ ".]"
 $   WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'"
 $ else
 $  WRITE CONFIG "$ myproc = f$environment(""PROCEDURE"")"
@@ -6902,12 +6933,6 @@
 $  WRITE CONFIG "$  define/translation=concealed ''vms_prefix' 
'myroot_dev'['myroot_dir'.]"
 $  WRITE CONFIG "$ endif"
 $ endif
-$
-$ prefix = prefix - "000000."
-$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + 
".]" 
-$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'"
-
-
 $ WRITE CONFIG "$ ext = "".exe"""
 $ IF sharedperl
 $ THEN
@@ -6939,9 +6964,6 @@
 $     WRITE CONFIG "$ set command ''vms_prefix':[000000]''packageup'.CLD"
 $   ENDIF
 $ ENDIF !  perl_symbol
-$ WRITE CONFIG "$ define/nolog pod2text ''vms_prefix':[lib.pod]pod2text.com"
-$ WRITE CONFIG "$ define/nolog pod2html ''vms_prefix':[lib.pod]pod2html.com"
-$ WRITE CONFIG "$ define/nolog pod2man  ''vms_prefix':[lib.pod]pod2man.com"
 $!
 $ IF (tzneedset)
 $ THEN
@@ -6964,16 +6986,16 @@
 $ WRITE CONFIG "$ h2xs       == """ + perl_setup_perl + " 
''vms_prefix':[utils]h2xs.com"""
 $ WRITE CONFIG "$ instmodsh  == """ + perl_setup_perl + " 
''vms_prefix':[utils]instmodsh.com"""
 $ WRITE CONFIG "$ libnetcfg  == """ + perl_setup_perl + " 
''vms_prefix':[utils]libnetcfg.com"""
-$ WRITE CONFIG "$ perlbug    == """ + perl_setup_perl + " 
''vms_prefix':[lib]perlbug.com"""
+$ WRITE CONFIG "$ perlbug    == """ + perl_setup_perl + " 
''vms_prefix':[utils]perlbug.com"""
 $ WRITE CONFIG "$!perlcc     == """ + perl_setup_perl + " 
''vms_prefix':[utils]perlcc.com"""
-$ WRITE CONFIG "$ perldoc    == """ + perl_setup_perl + " 
''vms_prefix':[lib.pods]perldoc.com """"-t"""""""
+$ WRITE CONFIG "$ perldoc    == """ + perl_setup_perl + " 
''vms_prefix':[utils]perldoc.com """"-t"""""""
 $ WRITE CONFIG "$ perlivp    == """ + perl_setup_perl + " 
''vms_prefix':[utils]perlivp.com"""
 $ WRITE CONFIG "$ piconv     == """ + perl_setup_perl + " 
''vms_prefix':[utils]piconv.com"""
 $ WRITE CONFIG "$ pl2pm      == """ + perl_setup_perl + " 
''vms_prefix':[utils]pl2pm.com"""
-$ WRITE CONFIG "$ pod2html   == """ + perl_setup_perl + " 
''vms_prefix':[utils]pod2html"""
-$ WRITE CONFIG "$ pod2latex  == """ + perl_setup_perl + " 
''vms_prefix':[lib.pod]pod2latex.com"""
-$ WRITE CONFIG "$ pod2text   == """ + perl_setup_perl + " 
''vms_prefix':[utils]pod2text"""
-$ WRITE CONFIG "$!pod2man    == """ + perl_setup_perl + " 
''vms_prefix':[utils]pod2man"""
+$ WRITE CONFIG "$ pod2html   == """ + perl_setup_perl + " 
''vms_prefix':[utils]pod2html.com"""
+$ WRITE CONFIG "$ pod2latex  == """ + perl_setup_perl + " 
''vms_prefix':[utils]pod2latex.com"""
+$ WRITE CONFIG "$ pod2text   == """ + perl_setup_perl + " 
''vms_prefix':[utils]pod2text.com"""
+$ WRITE CONFIG "$!pod2man    == """ + perl_setup_perl + " 
''vms_prefix':[utils]pod2man.com"""
 $ WRITE CONFIG "$ pod2usage  == """ + perl_setup_perl + " 
''vms_prefix':[utils]pod2usage.com"""
 $ WRITE CONFIG "$ podchecker == """ + perl_setup_perl + " 
''vms_prefix':[utils]podchecker.com"""
 $ WRITE CONFIG "$ podselect  == """ + perl_setup_perl + " 
''vms_prefix':[utils]podselect.com"""

==== //depot/maint-5.8/perl/thread.h#20 (text) ====
Index: perl/thread.h
--- perl/thread.h#19~29947~     2007-01-24 05:54:09.000000000 -0800
+++ perl/thread.h       2007-02-07 10:45:59.000000000 -0800
@@ -98,6 +98,11 @@
 #  define THREAD_CREATE_NEEDS_STACK (32*1024)
 #endif
 
+#ifdef __VMS
+  /* Default is 1024 on VAX, 8192 otherwise */
+#  define THREAD_CREATE_NEEDS_STACK (32*1024)
+#endif
+
 #ifdef I_MACH_CTHREADS
 
 /* cthreads interface */

==== //depot/maint-5.8/perl/vms/descrip_mms.template#44 (text) ====
Index: perl/vms/descrip_mms.template
--- perl/vms/descrip_mms.template#43~28109~     2006-05-05 10:26:10.000000000 
-0700
+++ perl/vms/descrip_mms.template       2007-02-07 10:45:59.000000000 -0800
@@ -29,7 +29,8 @@
 ~SOCKET~
 ~MALLOC~
 ~CC~
-~MT~
+~MTK~
+~MTU~
 ~FLAGS~
 ~LARGEFILE~
 
@@ -210,6 +211,16 @@
 THREADH =
 .endif
 
+.ifdef MTU
+.ifdef MTK
+MTHREADLINKFLAGS = /THREADS=(MULTIPLE_KERNEL,UPCALLS)
+.else
+MTHREADLINKFLAGS = /THREADS=UPCALLS
+.endif
+.else
+MTHREADLINKFLAGS = 
+.endif
+
 # C preprocessor manifest "DEBUGGING" ==> perl -D, not the VMS debugger
 .IFDEF LARGEFILE
 CFLAGS = $(XTRACCFLAGS)$(DBGCCFLAGS)$(FLAGS)/Define=$(LARGEFILE)
@@ -432,7 +443,7 @@
 .ifdef __DEBUG__
 # Link an extra perl that doesn't invoke the debugger
 perl : $(DBG)perl$(E)
-       Link 
$(LINKFLAGS)/NoDebug/Trace/NoMap/NoCross/NoFull/Exe=N$(DBG)perl$(E) 
perlmain$(O), perlshr.opt/Option, perlshr_attr.opt/Option $(CRTLOPTS)
+       Link 
$(LINKFLAGS)$(MTHREADLINKFLAGS)/NoDebug/Trace/NoMap/NoCross/NoFull/Exe=N$(DBG)perl$(E)
 perlmain$(O), perlshr.opt/Option, perlshr_attr.opt/Option $(CRTLOPTS)
 .else
 perl : $(DBG)perl$(E)
        @ Continue
@@ -440,11 +451,7 @@
 
 $(DBG)perl$(E) : perlmain$(O), $(DBG)perlshr$(E), $(MINIPERL_EXE)
        @ @[.vms]genopt "PerlShr.Opt/Write" "|" 
"''F$Environment("Default")'$(DBG)PerlShr$(E)/Share"
-.ifdef MT
-       Link $(LINKFLAGS)/Exe=$(MMS$TARGET) perlmain$(O), perlshr.opt/Option, 
perlshr_attr.opt/Option $(CRTLOPTS)/THREAD=(MULTI,UPCALL)
-.else
-       Link $(LINKFLAGS)/Exe=$(MMS$TARGET) perlmain$(O), perlshr.opt/Option, 
perlshr_attr.opt/Option $(CRTLOPTS)
-.endif
+       Link $(LINKFLAGS)$(MTHREADLINKFLAGS)/Exe=$(MMS$TARGET) perlmain$(O), 
perlshr.opt/Option, perlshr_attr.opt/Option $(CRTLOPTS)
 
 $(DBG)perlshr$(E) : $(DBG)libperl$(OLB) $(extobj) $(DBG)perlshr_xtras.ts
        Link $(LINKFLAGS)/Share=$(MMS$TARGET) $(extobj) 
[]$(DBG)perlshr_bld.opt/Option, perlshr_attr.opt/Option

==== //depot/maint-5.8/perl/vms/gen_shrfls.pl#4 (text) ====
Index: perl/vms/gen_shrfls.pl
--- perl/vms/gen_shrfls.pl#3~25806~     2005-10-19 06:29:02.000000000 -0700
+++ perl/vms/gen_shrfls.pl      2007-02-07 10:45:59.000000000 -0800
@@ -60,6 +60,10 @@
 chomp $isvax;
 print "\$isvax: \\$isvax\\\n" if $debug;
 
+$isi64 = `\$ Write Sys\$Output \(F\$GetSyI(\"HW_MODEL\") .GE. 4096`;
+chomp $isi64;
+print "\$isi64: \\$isi64\\\n" if $debug;
+
 print "Input \$cc_cmd: \\$cc_cmd\\\n" if $debug;
 $docc = ($cc_cmd !~ /^~~/);
 print "\$docc = $docc\n" if $debug;
@@ -258,8 +262,14 @@
 }
 
 unless ($isgcc) {
-  print OPTBLD "PSECT_ATTR=\$GLOBAL_RO_VARS,PIC,NOEXE,RD,NOWRT,SHR\n";
-  print OPTBLD "PSECT_ATTR=\$GLOBAL_RW_VARS,PIC,NOEXE,RD,WRT,NOSHR\n";
+  if ($isi64) {
+    print OPTBLD "PSECT_ATTR=\$GLOBAL_RO_VARS,NOEXE,RD,NOWRT,SHR\n";
+    print OPTBLD "PSECT_ATTR=\$GLOBAL_RW_VARS,NOEXE,RD,WRT,NOSHR\n";
+  }
+  else {
+    print OPTBLD "PSECT_ATTR=\$GLOBAL_RO_VARS,PIC,NOEXE,RD,NOWRT,SHR\n";
+    print OPTBLD "PSECT_ATTR=\$GLOBAL_RW_VARS,PIC,NOEXE,RD,WRT,NOSHR\n";
+  }
 }
 print OPTBLD "case_sensitive=yes\n" if $care_about_case;
 foreach $var (sort (keys %vars,keys %cvars)) {
End of Patch.

Reply via email to