X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=configure.com;h=30dbd1064828db19b85e64ed958a821a6647de4a;hb=7e107e90b7bd52c7fb110ac98da6bb7ab38e8959;hp=d949bb2532e93abc07e3ed504e5dbad407d62104;hpb=baf3cf9c09c529e1ab56c4c24a7a8bb4dba12542;p=p5sagit%2Fp5-mst-13.2.git diff --git a/configure.com b/configure.com index d949bb2..30dbd10 100644 --- a/configure.com +++ b/configure.com @@ -1540,12 +1540,12 @@ $ WRITE CONFIG " exit(0);" $ WRITE CONFIG "}" $ CLOSE CONFIG $! -$! DEFINE SYS$ERROR _NLA0: -$! DEFINE SYS$OUTPUT _NLA0: +$ SET NOON +$ DEFINE/USER_MODE SYS$ERROR _NLA0: +$ DEFINE/USER_MODE SYS$OUTPUT _NLA0: $ cc/NoObj/list=ccvms.lis ccvms.c $ tmp = $status -$! DEASSIGN SYS$OUTPUT -$! DEASSIGN SYS$ERROR +$ SET ON $ IF (silent) THEN GOSUB Shut_up $ IF tmp.NE.%X10B90001 $ THEN @@ -1565,9 +1565,9 @@ $ IF .NOT.silent $ THEN $ echo "Will try cc/decc..." $ ENDIF +$ SET NOON $ DEFINE/USER_MODE SYS$ERROR NL: $ DEFINE/USER_MODE SYS$OUTPUT NL: -$ SET NOON $ cc/decc/NoObj/list=ccvms.lis ccvms.c $ tmp = $status $ SET ON @@ -1591,10 +1591,12 @@ $! $Gcc_initial_check: $ echo "Checking for gcc" $ OPEN/WRITE CONFIG gccvers.lis +$ SET NOON $ DEFINE/USER_MODE SYS$ERROR CONFIG $ DEFINE/USER_MODE SYS$OUTPUT CONFIG $ 'gcc_symbol'/noobj/version _nla0: $ tmp = $status +$ SET ON $ IF (silent) THEN GOSUB Shut_up $ CLOSE CONFIG $ IF (tmp.NE.%X10000001).and.(tmp.ne.%X00030001) @@ -2296,38 +2298,54 @@ $! Ask about threads, if appropriate $ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" $ THEN $ echo "" -$ echo "This version of Perl can be built with threads. While really nifty," -$ echo "they are a beta feature, and there is a speed penalty for perl" -$ echo "programs if you build with threads *even if you do not use them*." +$ echo "Perl can be built to take advantage of threads on some systems." +$ echo "To do so, configure.com can be run with -""Dusethreads""." +$ echo "" +$ echo "Note that Perl built with threading support runs slightly slower" +$ echo "and uses more memory than plain Perl. The current implementation" +$ echo "is believed to be stable, but it is fairly new, and so should be" +$ echo "treated with caution." +$ echo "" $ bool_dflt = "n" $ if f$type(usethreads) .nes. "" $ then $ if usethreads .or. usethreads .eqs. "define" then bool_dflt="y" $ endif -$ rp = "Build with threads? [''bool_dflt'] " +$! Catch cases where user specified ithreads or 5005threads but +$! forgot -Dusethreads +$ if f$type(useithreads) .nes. "" +$ then +$ if useithreads .or. useithreads .eqs. "define" then bool_dflt="y" +$ endif +$ if f$type(use5005threads) .nes. "" +$ then +$ if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="y" +$ endif +$ echo "If this doesn't make any sense to you, just accept the default '" + bool_dflt + "'." +$ rp = "Build a threading Perl? [''bool_dflt'] " $ GOSUB myread $ if ans $ THEN $ use_threads="T" -$ ! Shall we do the 5.005-stype threads, or IThreads? -$ echo "As of 5.5.640, Perl has two different internal threading" -$ echo "implementations, the 5.005 version (5005threads) and an" -$ echo "interpreter-based version (ithreads) that has one" -$ echo "interpreter per thread. Both are very experimental. This" -$ echo "arrangement exists to help developers work out which one" -$ echo "is better." -$ echo "" -$ echo "If you are a casual user, you probably do not want" -$ echo "interpreter-threads at this time. There doesn't yet exist" -$ echo "a way to create threads from within Perl in this model," -$ echo "i.e., ""use Thread;"" will NOT work." +$ ! Shall we do the 5.005-type threads, or IThreads? +$ echo "Since release 5.6, Perl has had two different threading implementations," +$ echo "the newer interpreter-based version (ithreads) with one interpreter per" +$ echo "thread, and the older 5.005 version (5005threads)." +$ echo "The 5005threads version is effectively unmaintained and will probably be" +$ echo "removed in Perl 5.10, so there should be no need to build a Perl using it" +$ echo "unless needed for backwards compatibility with some existing 5.005threads" +$ echo "code." $ echo "" -$ bool_dflt = "n" +$ bool_dflt = "y" $ if f$type(useithreads) .nes. "" $ then -$ if useithreads .eqs. "define" then bool_dflt="y" +$ if useithreads .eqs. "undef" then bool_dflt="n" +$ endif +$ if f$type(use5005threads) .nes. "" +$ then +$ if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="n" $ endif -$ rp = "Build with Interpreter threads? [''bool_dflt'] " +$ rp = "Use the newer intepreter-based ithreads? [''bool_dflt'] " $ GOSUB myread $ use_ithreads=ans $ if use_ithreads @@ -2529,10 +2547,7 @@ $ IF F$EXTRACT(0,4,line) .EQS. "ext/" THEN - $ IF xxx .EQS. "DynaLoader" THEN goto ext_loop ! omit $ IF xxx .EQS. "SDBM_File/sdbm" THEN goto ext_loop ! sub extension - omit $ IF xxx .EQS. "Devel/PPPort/harness" THEN goto ext_loop ! sub extension - omit -$ IF xxx .EQS. "Encode/CN" THEN goto ext_loop ! sub extension - omit -$ IF xxx .EQS. "Encode/JP" THEN goto ext_loop ! sub extension - omit -$ IF xxx .EQS. "Encode/KR" THEN goto ext_loop ! sub extension - omit -$ IF xxx .EQS. "Encode/TW" THEN goto ext_loop ! sub extension - omit +$ IF F$EXTRACT(0,7,xxx) .EQS. "Encode/" THEN goto ext_loop ! sub extension - omit $ IF xxx .EQS. "B/C" THEN goto ext_loop ! sub extension - omit $ IF F$EXTRACT(0,8,line) .EQS. "vms/ext/" THEN - xxx = "VMS/" + F$EXTRACT(8,line_len - 20,line) @@ -2558,8 +2573,6 @@ $ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets $ THEN $ dflt = dflt - "Socket" ! optional on VMS $ ENDIF -$ IF .NOT. use_ithreads THEN dflt = dflt - "threads/shared" -$ IF .NOT. use_ithreads THEN dflt = dflt - "threads" $ IF .NOT. use_threads THEN dflt = dflt - "Thread" $ dflt = F$EDIT(dflt,"TRIM,COMPRESS") $! @@ -2988,6 +3001,7 @@ $ d_frexpl = "define" $ d_isnan = "define" $ d_isnanl = "define" $ d_modfl = "define" +$ d_modflproto = "define" $ ELSE $ d_PRId64 = "undef" $ d_PRIXU64 = "undef" @@ -3008,6 +3022,7 @@ $ d_frexpl = "undef" $ d_isnan = "undef" $ d_isnanl = "undef" $ d_modfl = "undef" +$ d_modflproto = "undef" $ ENDIF $! $! Now some that we build up @@ -3217,6 +3232,7 @@ $! Check for long double size $! $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" +$ WS "#pragma message disable ALL" ! VAX compilers may have distracting informationals $ WS "#include " $ WS "#endif" $ WS "#include " @@ -3360,6 +3376,25 @@ $ tmp = "unistd.h" $ GOSUB inhdr $ i_unistd = tmp $! +$! do we have getppid()? +$! +$ IF i_unistd .EQS. "define" +$ THEN +$ OS +$ WS "#include " +$ WS "#include " +$ WS "int main() {" +$ WS "printf(""%d\n"",getppid());" +$ WS "return(0);" +$ WS "}" +$ CS +$ tmp = "getppid" +$ GOSUB inlibc +$ d_getppid = tmp +$ ELSE +$ d_getppid = "undef" +$ ENDIF +$! $!: see if this is a libutil.h system $! $ tmp = "libutil.h" @@ -5239,7 +5274,7 @@ $ WC "d_getpent='" + d_getpent + "'" $ WC "d_getpgid='undef'" $ WC "d_getpgrp2='undef'" $ WC "d_getpgrp='undef'" -$ WC "d_getppid='undef'" +$ WC "d_getppid='" + d_getppid + "'" $ WC "d_getprior='undef'" $ WC "d_getprotoprotos='" + d_getprotoprotos + "'" $ WC "d_getprpwnam='undef'" @@ -5291,6 +5326,7 @@ $ WC "d_mkstemps='" + d_mkstemps + "'" $ WC "d_mktime='" + d_mktime + "'" $ WC "d_mmap='" + d_mmap + "'" $ WC "d_modfl='" + d_modfl + "'" +$ WC "d_modflproto='" + d_modflproto + "'" $ WC "d_modfl_pow32_bug='undef'" $ WC "d_mprotect='" + d_mprotect + "'" $ WC "d_msg='undef'" @@ -5453,6 +5489,7 @@ $ WC "d_unlink_all_versions='undef'" $ WC "d_unordered='undef'" $ WC "d_usleep='" + d_usleep + "'" $ WC "d_usleepproto='" + d_usleep + "'" +$ WC "d_nanosleep='undef'" $ WC "d_ustat='undef'" $ WC "d_vendorarch='undef'" $ WC "d_vendorlib='undef'" @@ -6188,7 +6225,7 @@ $ if f$search("extra.pods") .eqs. "" .or. P1 .eqs. "FORCE" then - $ open/read/error=extra_close EXTRA extra.pods $extra_loop: $ read/error=extra_close/END_OF_FILE=extra_close EXTRA file -$ file_type = f$parse(file,,,"TYPE",) - "." +$ file_type = f$edit(f$parse(file,,,"TYPE",),"LOWERCASE") - "." $ if file_type .nes. "VMS" .and. file_type .nes. "vms" $ then $ pod_file = "[.pod]perl''file_type'.pod" @@ -6204,7 +6241,8 @@ $ file_rdt = f$cvtime(f$file_attributes(file,"RDT")) $ pod_file_rdt = f$cvtime(f$file_attributes(pod_file,"RDT")) $ if file_rdt .GTS. pod_file_rdt then do_copy := true $ endif -$ if do_copy then copy/log/noconfirm 'file' 'pod_file' +$ ! wacky method to preserve case on ODS-5 even when parse style is traditional +$ if do_copy then mcr sys$disk:[]miniperl.exe -e "exit 0+$^E unless File::Copy::rmscopy(q{''file'}, q{''pod_file'});" $ endif $ endif $ goto extra_loop @@ -6259,11 +6297,20 @@ $ EXIT $ ENDSUBROUTINE ! Bad_environment $ echo "" $ echo4 "Checking for dangerous pre-existing global symbols and logical names." -$ CALL Bad_environment "TMP" +$ CALL Bad_environment "EXT" +$ CALL Bad_environment "FOO" $ CALL Bad_environment "LIB" +$ CALL Bad_environment "LIST" +$ CALL Bad_environment "MIME" +$ CALL Bad_environment "POSIX" +$ CALL Bad_environment "SYS" $ CALL Bad_environment "T" -$ CALL Bad_environment "FOO" -$ CALL Bad_environment "EXT" +$ CALL Bad_environment "THREAD" +$ CALL Bad_environment "THREADS" +$ CALL Bad_environment "TIME" +$ CALL Bad_environment "TMP" +$ CALL Bad_environment "UNICODE" +$ CALL Bad_environment "UTIL" $ CALL Bad_environment "TEST" "SYMBOL" $ IF f$search("config.msg") .eqs. "" THEN echo "OK." $! @@ -6460,9 +6507,9 @@ $ echo4 "" $! $ IF ( F$SEARCH("config.msg").NES."" ) $ THEN -$ echo "Hmm. I also noted the following information while running:" -$ echo "" -$ type config.msg +$ echo4 "Hmm. I also noted the following information while running:" +$ echo4 "" +$ TYPE/OUTPUT=SYS$ERROR: config.msg $ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) config.msg $ DELETE/NOLOG/NOCONFIRM config.msg; $ ENDIF