X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=configure.com;h=be90a82887a587484eeddd2dc548be730bfd63cb;hb=b891b7335194e891dcfaf5a5077012facb06d75b;hp=e66f29b51045e061b78b327c14cc48a83af2e1f0;hpb=45e8d1ddfd1c91ea9315b3df6da46aa46b210f2d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/configure.com b/configure.com index e66f29b..be90a82 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." +$ ! 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 "" -$ 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." -$ 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 -$ rp = "Build with Interpreter threads? [''bool_dflt'] " +$ if f$type(use5005threads) .nes. "" +$ then +$ if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="n" +$ endif +$ 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") $! @@ -2970,24 +2983,12 @@ $! $ IF use64bitint .OR. use64bitint .EQS. "define" $ THEN $ d_PRId64 = "define" -$ d_PRIEUldbl = "define" -$ d_PRIFUldbl = "define" -$ d_PRIGUldbl = "define" -$ d_PRIeldbl = "define" -$ d_PRIfldbl = "define" -$ d_PRIgldbl = "define" $ d_PRIu64 = "define" $ d_PRIo64 = "define" $ d_PRIx64 = "define" $ d_PRIXU64 = "define" $ sPRId64 = """Ld""" -$ sPRIEUldbl = """LE""" -$ sPRIFUldbl = """LF""" -$ sPRIGUldbl = """LG""" $ sPRIXU64 = """LX""" -$ sPRIeldbl = """Le""" -$ sPRIfldbl = """Lf""" -$ sPRIgldbl = """Lg""" $ sPRIi64 = """Li""" $ sPRIo64 = """Lo""" $ sPRIu64 = """Lu""" @@ -3000,26 +3001,15 @@ $ d_frexpl = "define" $ d_isnan = "define" $ d_isnanl = "define" $ d_modfl = "define" +$ d_modflproto = "define" $ ELSE $ d_PRId64 = "undef" -$ d_PRIEUldbl = "define" -$ d_PRIFUldbl = "define" -$ d_PRIGUldbl = "define" $ d_PRIXU64 = "undef" -$ d_PRIeldbl = "define" -$ d_PRIfldbl = "undef" -$ d_PRIgldbl = "undef" $ d_PRIu64 = "undef" $ d_PRIo64 = "undef" $ d_PRIx64 = "undef" $ sPRId64 = "" -$ sPRIEUldbl = """E""" -$ sPRIFUldbl = """F""" -$ sPRIGUldbl = """G""" $ sPRIXU64 = """lX""" -$ sPRIeldbl = """e""" -$ sPRIfldbl = """f""" -$ sPRIgldbl = """g""" $ sPRIi64 = "" $ sPRIo64 = "" $ sPRIu64 = "" @@ -3032,9 +3022,8 @@ $ d_frexpl = "undef" $ d_isnan = "undef" $ d_isnanl = "undef" $ d_modfl = "undef" +$ d_modflproto = "undef" $ ENDIF -$ d_SCNfldbl = d_PRIfldbl -$ sSCNfldbl = sPRIfldbl ! expect consistency $! $! Now some that we build up $! @@ -3243,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 " @@ -3268,6 +3258,37 @@ $ d_longdbl = "define" $ echo "Your long doubles are ''longdblsize' bytes long." $ ENDIF $! +$ IF d_longdbl .OR. d_longdbl .EQS. "define" +$ THEN +$ d_PRIEUldbl = "define" +$ d_PRIFUldbl = "define" +$ d_PRIGUldbl = "define" +$ d_PRIeldbl = "define" +$ d_PRIfldbl = "define" +$ d_PRIgldbl = "define" +$ sPRIEUldbl = """LE""" +$ sPRIFUldbl = """LF""" +$ sPRIGUldbl = """LG""" +$ sPRIeldbl = """Le""" +$ sPRIfldbl = """Lf""" +$ sPRIgldbl = """Lg""" +$ ELSE +$ d_PRIEUldbl = "undef" +$ d_PRIFUldbl = "undef" +$ d_PRIGUldbl = "undef" +$ d_PRIeldbl = "undef" +$ d_PRIfldbl = "undef" +$ d_PRIgldbl = "undef" +$ sPRIEUldbl = "" +$ sPRIFUldbl = "" +$ sPRIGUldbl = "" +$ sPRIeldbl = "" +$ sPRIfldbl = "" +$ sPRIgldbl = "" +$ ENDIF +$ d_SCNfldbl = d_PRIfldbl +$ sSCNfldbl = sPRIfldbl ! expect consistency +$! $!: check for long long $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" @@ -3355,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" @@ -4725,7 +4765,12 @@ $ d_wctomb="define" $ i_locale="define" $ i_langinfo="define" $ d_locconv="define" -$ d_nl_langinfo="define" +$ IF vms_ver .GES. "6.2" +$ THEN +$ d_nl_langinfo="define" +$ ELSE +$ d_nl_langinfo="undef" +$ ENDIF $ d_setlocale="define" $ vms_cc_type="decc" $ ELSE @@ -5229,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'" @@ -5281,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'" @@ -5443,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'" @@ -6178,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" @@ -6194,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 @@ -6249,11 +6297,21 @@ $ EXIT $ ENDSUBROUTINE ! Bad_environment $ echo "" $ echo4 "Checking for dangerous pre-existing global symbols and logical names." -$ CALL Bad_environment "TMP" +$ CALL Bad_environment "COMP" +$ 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." $! @@ -6450,9 +6508,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