From: Jarkko Hietaniemi Date: Fri, 15 Jun 2001 00:15:52 +0000 (+0000) Subject: The first steps towards cross-compilation. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=5440bc8ef38c925fa824ae72b6c7ad2f21cbda6e;p=p5sagit%2Fp5-mst-13.2.git The first steps towards cross-compilation. Abstract execution of compiled test executables with $run, and abstract transfer of files with $to and $from. Under cross-compilation the $run, $to, and $from will point to appropriate wrapper scripts, by default ssh and scp, but also rsh, rcp, and cp are supported. If not cross-compiling, they will be set to '', ':', and ':', respectively. With these patches I was able to get Configure for iPAQ ARM Linux on an Intel Linux about 95% right (only a few tests failed to execute or they produced incorrect results), and I was able to compile a functional miniperl. The symbol crosscompile renamed to be usecrosscompile, the corresponding C symbol from CROSSCOMPILE to USE_CROSS_COMPILE. p4raw-id: //depot/perl@10592 --- diff --git a/Configure b/Configure index 176b6f7..53f539a 100755 --- a/Configure +++ b/Configure @@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Wed Jun 13 21:32:05 EET DST 2001 [metaconfig 3.0 PL70] +# Generated on Fri Jun 15 04:00:58 EET DST 2001 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ </dev/null 2>&1`; then spitshell=cat xcat=/bin/cat test -f $xcat || xcat=/usr/bin/cat - echo "#!$xcat" >try - $eunicefix try - chmod +x try - ./try > today + echo "#!$xcat" >sharp + $eunicefix sharp + chmod +x sharp + ./sharp > today if test -s today; then sharpbang='#!' else - echo "#! $xcat" > try - $eunicefix try - chmod +x try - ./try > today + echo "#! $xcat" > sharp + $eunicefix sharp + chmod +x sharp + ./sharp > today if test -s today; then sharpbang='#! ' else @@ -1152,28 +1156,28 @@ else echo "I presume that if # doesn't work, #! won't work either!" sharpbang=': use ' fi -rm -f try today +rm -f sharp today : figure out how to guarantee sh startup case "$startsh" in '') startsh=${sharpbang}${sh} ;; *) esac -cat >try <sharp <&4; croak=y ;; + esac + case "$usrinc" in + '') echo "Cross-compiling: you should define usrinc." >&4; croak=y ;; + esac + case "$incpth" in + '') echo "Cross-compiling: you should define incpth." >&4; croak=y ;; + esac + case "$libpth" in + '') echo "Cross-compiling: you should define libpth." >&4; croak=y ;; + esac + case "$targethost" in + '') echo "Cross-compiling: targethost not defined." >&4; croak=y ;; + esac + case "$targetdir" in + '') echo "Cross compiling: targetdir not defined." >&4; croak=y ;; + esac + locincpth='' + loclibpth='' + case "$croak" in + y) exit 1 ;; + esac + case "$src" in + /*) run=$src/Cross/run + to=$src/Cross/to + from=$src/Cross/from + ;; + *) pwd=`test -f ../Configure & cd ..; pwd` + run=$pwd/Cross/run + to=$pwd/Cross/to + from=$pwd/Cross/from + ;; + esac + case "$targetrun" in + '') targetrun=ssh ;; + esac + case "$targetto" in + '') targetto=scp ;; + esac + case "$targetfrom" in + '') targetfrom=scp ;; + esac + run=$run-$targetrun + to=$to-$targetto + from=$from-$targetfrom + case "$targetuser" in + '') targetuser=root ;; + esac + case "$targetfrom" in + scp) q=-q ;; + *) q='' ;; + esac + case "$targetrun" in + ssh|rsh) + cat >$run <&4 + exit 1 + ;; + esac + case "$targetto" in + scp|rcp) + cat >$to <$to <&4 + exit 1 + ;; + esac + case "$targetfrom" in + scp|rcp) + cat >$from <$from <&4 + exit 1 + ;; + esac + if test ! -f $run; then + echo "Cross-compiling: target 'run' script '$run' not found." >&4 + else + chmod a+rx $run + fi + if test ! -f $to; then + echo "Cross-compiling: target 'to' script '$to' not found." >&4 + else + chmod a+rx $to + fi + if test ! -f $from; then + echo "Cross-compiling: target 'from' script '$from' not found." >&4 + else + chmod a+rx $from + fi + if test ! -f $run -o ! -f $to -o ! -f $from; then + exit 1 + fi + cat >&4 </dev/null`" in @@ -2699,6 +2860,14 @@ EOM fi fi + case "$targetarch" in + '') ;; + *) hostarch=$osname + osname=`echo $targetarch|sed 's,^[^-]*-,,'` + osvers='' + ;; + esac + : Now look for a hint file osname_osvers, unless one has been : specified already. case "$hintfile" in @@ -2773,7 +2942,7 @@ EOM elif $test -f $src/hints/$file.sh; then . $src/hints/$file.sh $cat $src/hints/$file.sh >> UU/config.sh - elif $test X$tans = X -o X$tans = Xnone ; then + elif $test X"$tans" = X -o X"$tans" = Xnone ; then : nothing else : Give one chance to correct a possible typo. @@ -3162,7 +3331,7 @@ fi echo " " echo "Checking for GNU cc in disguise and/or its version number..." >&4 -$cat >gccvers.c <try.c < int main() { #ifdef __GNUC__ @@ -3175,8 +3344,8 @@ int main() { exit(0); } EOM -if $cc -o gccvers $ccflags $ldflags gccvers.c; then - gccversion=`./gccvers` +if $cc -o try $ccflags $ldflags try.c; then + gccversion=`$run ./try` case "$gccversion" in '') echo "You are not using GNU cc." ;; *) echo "You are using GNU cc $gccversion." @@ -3194,7 +3363,7 @@ else ;; esac fi -$rm -f gccvers* +$rm -f try try.* case "$gccversion" in 1*) cpp=`./loc gcc-cpp $cpp $pth` ;; esac @@ -4213,15 +4382,15 @@ $cat >> try.msg <>try.msg 2>&1; then - if $sh -c './try' >>try.msg 2>&1; then - xxx=`./try` + if $sh -c "$run ./try" >>try.msg 2>&1; then + xxx=`$run ./try` case "$xxx" in "Ok") dflt=n ;; *) echo 'The program compiled OK, but produced no output.' >> try.msg @@ -4343,7 +4512,7 @@ echo " " case "$intsize" in '') echo "Checking to see how big your integers are..." >&4 - $cat >intsize.c <<'EOCP' + $cat >try.c <<'EOCP' #include int main() { @@ -4353,9 +4522,9 @@ int main() exit(0); } EOCP - set intsize - if eval $compile_ok && ./intsize > /dev/null; then - eval `./intsize` + set try + if eval $compile_ok && $run ./try > /dev/null; then + eval `$run ./try` echo "Your integers are $intsize bytes long." echo "Your long integers are $longsize bytes long." echo "Your short integers are $shortsize bytes long." @@ -4382,7 +4551,7 @@ EOM fi ;; esac -$rm -f intsize intsize.* +$rm -f try try.* : see what type lseek is declared as in the kernel rp="What is the type used for lseek's offset on this system?" @@ -4402,7 +4571,7 @@ int main() EOCP set try if eval $compile_ok; then - lseeksize=`./try` + lseeksize=`$run ./try` echo "Your file offsets are $lseeksize bytes long." else dflt=$longsize @@ -4435,7 +4604,7 @@ int main() { EOCP set try if eval $compile_ok; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') fpossize=4 echo "(I can't execute the test program--guessing $fpossize.)" >&4 @@ -4514,7 +4683,7 @@ int main() EOCP set try if eval $compile_ok; then - lseeksize=`./try` + lseeksize=`$run ./try` $echo "Your file offsets are now $lseeksize bytes long." else dflt="$lseeksize" @@ -4539,7 +4708,7 @@ int main() { EOCP set try if eval $compile_ok; then - yyy=`./try` + yyy=`$run ./try` dflt="$lseeksize" case "$yyy" in '') echo " " @@ -4685,7 +4854,7 @@ int main() EOCP set try if eval $compile_ok; then - ptrsize=`./try` + ptrsize=`$run ./try` echo "Your pointers are $ptrsize bytes long." else dflt='4' @@ -4729,7 +4898,7 @@ int main() EOCP set try if eval $compile_ok; then - longlongsize=`./try$exe_ext` + longlongsize=`$run ./try` echo "Your long longs are $longlongsize bytes long." else dflt='8' @@ -5152,7 +5321,7 @@ esac echo " " echo "Checking for GNU C Library..." >&4 -cat >gnulibc.c <try.c < int main() { @@ -5163,15 +5332,15 @@ int main() #endif } EOM -set gnulibc -if eval $compile_ok && ./gnulibc; then +set try +if eval $compile_ok && $run ./try; then val="$define" echo "You are using the GNU C Library" else val="$undef" echo "You are not using the GNU C Library" fi -$rm -f gnulibc* +$rm -f try try.* set d_gnulibc eval $setvar @@ -5684,7 +5853,7 @@ int main() EOCP set try if eval $compile_ok; then - doublesize=`./try` + doublesize=`$run ./try` echo "Your double is $doublesize bytes long." else dflt='8' @@ -5728,7 +5897,7 @@ EOCP set try set try if eval $compile; then - longdblsize=`./try$exe_ext` + longdblsize=`$run ./try` echo "Your long doubles are $longdblsize bytes long." else dflt='8' @@ -5812,6 +5981,10 @@ case "$myarchname" in archname='' ;; esac +case "$targetarch" in +'') ;; +*) archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;; +esac myarchname="$tarch" case "$archname" in '') dflt="$tarch";; @@ -6986,7 +7159,7 @@ int main() { exit(1); /* fail */ } EOM - if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && ./a.out; then + if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then cat <&4 - if ./try; then + if $run ./try; then echo "I'll use $xxx_convert to convert floats into a string." >&4 break; else @@ -8401,7 +8574,7 @@ case "$d_getpgrp" in "$define") echo " " echo "Checking to see which flavor of getpgrp is in use..." - $cat >set.c <try.c < #ifdef I_UNISTD @@ -8423,10 +8596,10 @@ int main() exit(1); } EOP - if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then + if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then echo "You have to use getpgrp(pid) instead of getpgrp()." >&4 val="$define" - elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then + elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then echo "You have to use getpgrp() instead of getpgrp(pid)." >&4 val="$undef" else @@ -8453,7 +8626,7 @@ EOP esac set d_bsdgetpgrp eval $setvar -$rm -f set set.c +$rm -f try try.* : see if setpgrp exists set setpgrp d_setpgrp @@ -8463,7 +8636,7 @@ case "$d_setpgrp" in "$define") echo " " echo "Checking to see which flavor of setpgrp is in use..." - $cat >set.c <try.c < #ifdef I_UNISTD @@ -8485,10 +8658,10 @@ int main() exit(1); } EOP - if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then + if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4 val="$define" - elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then + elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4 val="$undef" else @@ -8515,7 +8688,7 @@ EOP esac set d_bsdsetpgrp eval $setvar -$rm -f set set.c +$rm -f try try.* : see if bzero exists set bzero d_bzero eval $inlibc @@ -8605,7 +8778,7 @@ int main() EOCP set try if eval $compile_ok; then - ./try + $run ./try yyy=$? else echo "(I can't seem to compile the test program--assuming it can't)" @@ -8701,7 +8874,7 @@ int main() EOCP set try if eval $compile_ok; then - ./try + $run ./try castflags=$? else echo "(I can't seem to compile the test program--assuming it can't)" @@ -8724,7 +8897,7 @@ echo " " if set vprintf val -f d_vprintf; eval $csym; $val; then echo 'vprintf() found.' >&4 val="$define" - $cat >vprintf.c <<'EOF' + $cat >try.c <<'EOF' #include int main() { xxx("foo"); } @@ -8739,8 +8912,8 @@ va_dcl exit((unsigned long)vsprintf(buf,"%s",args) > 10L); } EOF - set vprintf - if eval $compile && ./vprintf; then + set try + if eval $compile && $run ./try; then echo "Your vsprintf() returns (int)." >&4 val2="$undef" else @@ -8752,6 +8925,7 @@ else val="$undef" val2="$undef" fi +$rm -f try try.* set d_vprintf eval $setvar val=$val2 @@ -9188,7 +9362,7 @@ $cat >fred.c< #$i_dlfcn I_DLFCN #ifdef I_DLFCN -#include /* the dynamic linker include file for Sunos/Solaris */ +#include /* the dynamic linker include file for SunOS/Solaris */ #else #include #include @@ -9233,8 +9407,8 @@ EOM if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 && $ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 && - $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1; then - xxx=`./fred` + $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then + xxx=`$run ./fred` case $xxx in 1) echo "Test program failed using dlopen." >&4 echo "Perhaps you should not use dynamic loading." >&4;; @@ -9295,7 +9469,7 @@ eval $inlibc : Locate the flags for 'open()' echo " " -$cat >open3.c <<'EOCP' +$cat >try.c <<'EOCP' #include #ifdef I_FCNTL #include @@ -9314,10 +9488,10 @@ int main() { EOCP : check sys/file.h first to get FREAD on Sun if $test `./findhdr sys/file.h` && \ - set open3 -DI_SYS_FILE && eval $compile; then + set try -DI_SYS_FILE && eval $compile; then h_sysfile=true; echo " defines the O_* constants..." >&4 - if ./open3; then + if $run ./try; then echo "and you have the 3 argument form of open()." >&4 val="$define" else @@ -9325,10 +9499,10 @@ if $test `./findhdr sys/file.h` && \ val="$undef" fi elif $test `./findhdr fcntl.h` && \ - set open3 -DI_FCNTL && eval $compile; then + set try -DI_FCNTL && eval $compile; then h_fcntl=true; echo " defines the O_* constants..." >&4 - if ./open3; then + if $run ./try; then echo "and you have the 3 argument form of open()." >&4 val="$define" else @@ -9341,7 +9515,7 @@ else fi set d_open3 eval $setvar -$rm -f open3* +$rm -f try try.* : see which of string.h or strings.h is needed echo " " @@ -9400,7 +9574,7 @@ int main() { EOCP set try if eval $compile_ok; then - o_nonblock=`./try` + o_nonblock=`$run ./try` case "$o_nonblock" in '') echo "I can't figure it out, assuming O_NONBLOCK will do.";; *) echo "Seems like we can use $o_nonblock.";; @@ -9497,7 +9671,7 @@ EOCP set try if eval $compile_ok; then echo "$startsh" >mtry - echo "./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry + echo "$run ./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry chmod +x mtry ./mtry >/dev/null 2>&1 case $? in @@ -9598,7 +9772,7 @@ case "$d_fcntl" in "$define") set try if eval $compile_ok; then - if ./try; then + if $run ./try; then echo "Yes, it seems to work." val="$define" else @@ -9712,7 +9886,7 @@ $cat <fd_set.c <try.c <&4 - if ./fd_set; then + if $run ./try; then echo "and you have the normal fd_set macros (just as I'd expect)." >&4 d_fd_macros="$define" else @@ -9758,12 +9932,12 @@ else $cat <<'EOM' Hmm, your compiler has some difficulty with fd_set. Checking further... EOM - set fd_set + set try if eval $compile; then d_fds_bits="$undef" d_fd_set="$define" echo "Well, your system has some sort of fd_set available..." >&4 - if ./fd_set; then + if $run ./try; then echo "and you have the normal fd_set macros." >&4 d_fd_macros="$define" else @@ -9779,7 +9953,7 @@ EOM d_fd_macros="$undef" fi fi -$rm -f fd_set* +$rm -f try try.* : see if fgetpos exists set fgetpos d_fgetpos @@ -10506,7 +10680,7 @@ EOCP esac set try if eval $compile; then - foo=`./try` + foo=`$run ./try` case "$foo" in *" 4294967303.150000 1.150000 4294967302.000000") echo >&4 "Your modfl() is broken for large values." @@ -10628,7 +10802,7 @@ int main() EOCP set try if eval $compile_ok; then - dflt=`./try` + dflt=`$run ./try` else dflt='1' echo "(I can't seem to compile the test program. Guessing...)" @@ -10744,7 +10918,7 @@ esac case "$i8type" in '') set try -DINT8 if eval $compile; then - case "`./try$exe_ext`" in + case "`$run ./try`" in int8_t) i8type=int8_t u8type=uint8_t i8size=1 @@ -10777,7 +10951,7 @@ esac case "$i16type" in '') set try -DINT16 if eval $compile; then - case "`./try$exe_ext`" in + case "`$run ./try`" in int16_t) i16type=int16_t u16type=uint16_t @@ -10819,7 +10993,7 @@ esac case "$i32type" in '') set try -DINT32 if eval $compile; then - case "`./try$exe_ext`" in + case "`$run ./try`" in int32_t) i32type=int32_t u32type=uint32_t @@ -10898,7 +11072,7 @@ set try d_nv_preserves_uv="$undef" if eval $compile; then - d_nv_preserves_uv_bits="`./try$exe_ext`" + d_nv_preserves_uv_bits="`$run ./try`" fi case "$d_nv_preserves_uv_bits" in \-[1-9]*) @@ -11286,7 +11460,7 @@ exit(0); EOCP set try if eval $compile_ok; then - if ./try 2>/dev/null; then + if $run ./try 2>/dev/null; then echo "Yes, it can." val="$define" else @@ -11364,7 +11538,7 @@ exit(0); EOCP set try if eval $compile_ok; then - if ./try 2>/dev/null; then + if $run ./try 2>/dev/null; then echo "Yes, it can." val="$define" else @@ -11424,7 +11598,7 @@ exit(0); EOCP set try if eval $compile_ok; then - if ./try 2>/dev/null; then + if $run ./try 2>/dev/null; then echo "Yes, it can." val="$define" else @@ -11593,7 +11767,7 @@ END val="$undef" set try if eval $compile; then - xxx=`./try` + xxx=`$run ./try` case "$xxx" in semun) val="$define" ;; esac @@ -11651,7 +11825,7 @@ END val="$undef" set try if eval $compile; then - xxx=`./try` + xxx=`$run ./try` case "$xxx" in semid_ds) val="$define" ;; esac @@ -11976,7 +12150,7 @@ int main() EOP set try if eval $compile; then - if ./try >/dev/null 2>&1; then + if $run ./try >/dev/null 2>&1; then echo "POSIX sigsetjmp found." >&4 val="$define" else @@ -12159,8 +12333,8 @@ int main() { EOP val="$undef" set try -if eval $compile; then - if ./try; then +if eval $compile && $to try.c; then + if $run ./try; then echo "Your stdio acts pretty std." val="$define" else @@ -12256,8 +12430,8 @@ int main() { } EOP set try - if eval $compile; then - case `./try$exe_ext` in + if eval $compile && $to try.c; then + case `$run ./try` in Pass_changed) echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4 d_stdio_ptr_lval_sets_cnt="$define" ;; @@ -12296,8 +12470,8 @@ int main() { } EOP set try - if eval $compile; then - if ./try; then + if eval $compile && $to try.c; then + if $run ./try; then echo "And its _base field acts std." val="$define" else @@ -12327,7 +12501,7 @@ EOCP do set try -DSTDIO_STREAM_ARRAY=$s if eval $compile; then - case "`./try$exe_ext`" in + case "`$run ./try`" in yes) stdio_stream_array=$s; break ;; esac fi @@ -12473,7 +12647,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in ok) echo "Your strtoll() seems to be working okay." ;; *) cat <&4 @@ -12558,7 +12732,7 @@ EOCP EOCP set try if eval $compile; then - case "`./try`" in + case "`$run ./try`" in ok) echo "Your strtoul() seems to be working okay." ;; *) cat <&4 Your strtoul() doesn't seem to be working okay. @@ -12612,7 +12786,7 @@ int main() { EOCP set try if eval $compile; then - case "`./try`" in + case "`$run ./try`" in ok) echo "Your strtoull() seems to be working okay." ;; *) cat <&4 Your strtoull() doesn't seem to be working okay. @@ -12664,7 +12838,7 @@ int main() { EOCP set try if eval $compile; then - case "`./try`" in + case "`$run ./try`" in ok) echo "Your strtouq() seems to be working okay." ;; *) cat <&4 Your strtouq() doesn't seem to be working okay. @@ -12752,10 +12926,6 @@ fi set d_tzname eval $setvar -case "$crosscompile" in -''|[nN]*) crosscompile="$undef" ;; -esac - case "$osname" in next|rhapsody|darwin) multiarch="$define" ;; esac @@ -12765,14 +12935,14 @@ esac : check for ordering of bytes in a long echo " " -case "$crosscompile$multiarch" in +case "$usecrosscompile$multiarch" in *$define*) $cat < /dev/null; then - dflt=`./try` + dflt=`$run ./try` case "$dflt" in [1-4][1-4][1-4][1-4]|12345678|87654321) echo "(The test program ran ok.)" @@ -12894,8 +13064,8 @@ int main() { EOCP set try if eval $compile_ok; then - echo "(Testign for character data alignment may dump core.)" >&4 - ./try 2>&1 >/dev/null + echo "(Testing for character data alignment may dump core.)" >&4 + $run ./try 2>&1 >/dev/null case "$?" in 0) cat >&4 <&4 - cat > closedir.c < try.c < /dev/null 2>&1 ; then + if $run ./try > /dev/null 2>&1 ; then echo "Yes, it does." val="$undef" else @@ -13051,7 +13221,7 @@ EOM esac set d_void_closedir eval $setvar -$rm -f closedir* +$rm -f try try.* : see if there is a wait4 set wait4 d_wait4 eval $inlibc @@ -13081,7 +13251,7 @@ Revision='$Revision' : check for alignment requirements echo " " -case "$crosscompile$multiarch" in +case "$usecrosscompile$multiarch" in *$define*) $cat <&4 - set `./try 1` + set `$run ./try 1` db_version_major=$1 db_version_minor=$2 db_version_patch=$3 @@ -13484,7 +13654,7 @@ done echo " " echo "Determining whether or not we are on an EBCDIC system..." >&4 -$cat >tebcdic.c <<'EOM' +$cat >try.c <<'EOM' int main() { if ('M'==0xd4) return 0; @@ -13493,19 +13663,19 @@ int main() EOM val=$undef -set tebcdic +set try if eval $compile_ok; then - if ./tebcdic; then + if $run ./try; then echo "You seem to speak EBCDIC." >&4 val="$define" else - echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF8." >&4 + echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4 fi else echo "I'm unable to compile the test program." >&4 echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4 fi -$rm -f tebcdic.c tebcdic +$rm -f try try.* set ebcdic eval $setvar @@ -13530,7 +13700,9 @@ $cat >>try.c </dev/null $rm -f try.out - ./try$exe_ext 2>/dev/null + $from try.out if $test ! -s try.out -a "X$?" = X42; then output=-DTRY_FPUTC fi @@ -13592,10 +13766,10 @@ if $test "X$fflushNULL" = X -o "X$fflushall" = X; then case "$output" in '') set try -DTRY_FPRINTF - $rm -f try.out if eval $compile; then + $run ./try 2>/dev/null $rm -f try.out - ./try$exe_ext 2>/dev/null + $from try.out if $test ! -s try.out -a "X$?" = X42; then output=-DTRY_FPRINTF fi @@ -13607,9 +13781,10 @@ fi case "$fflushNULL" in '') set try -DTRY_FFLUSH_NULL $output if eval $compile; then - $rm -f try.out - ./try$exe_ext 2>/dev/null + $run ./try 2>/dev/null code="$?" + $rm -f try.out + $from try.out if $test -s try.out -a "X$code" = X42; then fflushNULL="`$cat try.out`" else @@ -13655,7 +13830,7 @@ EOCP set tryp if eval $compile; then $rm -f tryp.out - $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out + $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out if cmp tryp.c tryp.out >/dev/null 2>&1; then $cat >&4 </dev/null > tryp.out + $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out if cmp tryp.c tryp.out >/dev/null 2>&1; then $cat >&4 </dev/null + $run ./try 2>/dev/null if $test -s try.out -a "X$?" = X42; then fflushall="`$cat try.out`" fi @@ -13838,7 +14013,7 @@ int main() { EOCP set try if eval $compile_ok; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') gidsize=4 echo "(I can't execute the test program--guessing $gidsize.)" >&4 @@ -13872,7 +14047,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') gidsign=1 echo "(I can't execute the test program--guessing unsigned.)" >&4 @@ -13907,7 +14082,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"'; @@ -13929,7 +14104,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"'; @@ -13952,7 +14127,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64; @@ -13974,7 +14149,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"'; @@ -13996,7 +14171,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"'; @@ -14018,7 +14193,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"'; @@ -14339,8 +14514,8 @@ main(int ac, char **av) } EOCP set try - if eval $compile && ./try 2>&1 >/dev/null; then - case "`./try`" in + if eval $compile && $run ./try 2>&1 >/dev/null; then + case "`$run ./try`" in "that's all right, then") okay=yes ;; @@ -14588,13 +14763,13 @@ $cc $ccflags -c bar2.c >/dev/null 2>&1 $cc $ccflags -c foo.c >/dev/null 2>&1 $ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1 if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 && - ./foobar >/dev/null 2>&1; then + $run ./foobar >/dev/null 2>&1; then echo "$ar appears to generate random libraries itself." orderlib=false ranlib=":" elif $ar ts bar$_a >/dev/null 2>&1 && $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 && - ./foobar >/dev/null 2>&1; then + $run ./foobar >/dev/null 2>&1; then echo "a table of contents needs to be added with '$ar ts'." orderlib=false ranlib="$ar ts" @@ -14734,7 +14909,7 @@ int main() { EOCP set try if eval $compile_ok; then - selectminbits=`./try` + selectminbits=`$run ./try` case "$selectminbits" in '') cat >&4 <>signal_cmd <<'EOS' set signal if eval $compile_ok; then - ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst + $run ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst else echo "(I can't seem be able to compile the whole test program)" >&4 echo "(I'll try it in little pieces.)" >&4 set signal -DJUST_NSIG if eval $compile_ok; then - ./signal$_exe > signal.nsg + $run ./signal$_exe > signal.nsg $cat signal.nsg else echo "I can't seem to figure out how many signals you have." >&4 @@ -14953,7 +15128,7 @@ EOCP set signal if eval $compile; then echo "SIG${xx} found." - ./signal$_exe >> signal.ls1 + $run ./signal$_exe >> signal.ls1 else echo "SIG${xx} NOT found." fi @@ -15044,7 +15219,7 @@ int main() { EOCP set try if eval $compile_ok; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') sizesize=4 echo "(I can't execute the test program--guessing $sizesize.)" >&4 @@ -15138,7 +15313,7 @@ esac set ssize_t ssizetype int stdio.h sys/types.h eval $typedef dflt="$ssizetype" -$cat > ssize.c < try.c < #include #define Size_t $sizetype @@ -15155,9 +15330,9 @@ int main() } EOM echo " " -set ssize -if eval $compile_ok && ./ssize > /dev/null; then - ssizetype=`./ssize` +set try +if eval $compile_ok && $run ./try > /dev/null; then + ssizetype=`$run ./try` echo "I'll be using $ssizetype for functions returning a byte count." >&4 else $cat >&4 <&4 @@ -15280,7 +15455,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') uidsign=1 echo "(I can't execute the test program--guessing unsigned.)" >&4 @@ -15604,7 +15779,7 @@ case "$osname-$gccversion" in irix-) ccflags="\$ccflags -woff 1178" ;; os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;; esac -$cc -o try $optimize \$ccflags $ldflags try.c $libs && ./try$exe_ext +$cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try EOSH chmod +x Cppsym.try $eunicefix Cppsym.try @@ -16292,7 +16467,6 @@ cppminus='$cppminus' cpprun='$cpprun' cppstdin='$cppstdin' cppsymbols='$cppsymbols' -crosscompile='$crosscompile' cryptlib='$cryptlib' csh='$csh' d_Gconvert='$d_Gconvert' @@ -16656,6 +16830,7 @@ flex='$flex' fpossize='$fpossize' fpostype='$fpostype' freetype='$freetype' +from='$from' full_ar='$full_ar' full_csh='$full_csh' full_sed='$full_sed' @@ -16906,6 +17081,7 @@ rd_nodata='$rd_nodata' revision='$revision' rm='$rm' rmail='$rmail' +run='$run' runnm='$runnm' sPRIEUldbl='$sPRIEUldbl' sPRIFUldbl='$sPRIFUldbl' @@ -16980,11 +17156,13 @@ subversion='$subversion' sysman='$sysman' tail='$tail' tar='$tar' +targetarch='$targetarch' tbl='$tbl' tee='$tee' test='$test' timeincl='$timeincl' timetype='$timetype' +to='$to' touch='$touch' tr='$tr' trnl='$trnl' @@ -17007,6 +17185,7 @@ uquadtype='$uquadtype' use5005threads='$use5005threads' use64bitall='$use64bitall' use64bitint='$use64bitint' +usecrosscompile='$usecrosscompile' usedl='$usedl' useithreads='$useithreads' uselargefiles='$uselargefiles' diff --git a/Cross/README b/Cross/README index 851fead..c750030 100644 --- a/Cross/README +++ b/Cross/README @@ -1 +1,3 @@ -This is for moment just a placeholder. +If Perl is built using a cross-compilation environment the Cross +directory will contain temporary helper scripts for the duration +of the build. diff --git a/Makefile.SH b/Makefile.SH index 618f120..5eaef2c 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -802,6 +802,7 @@ realclean: _realcleaner _mopup @echo "Note that make realclean does not delete config.sh or Policy.sh" _clobber: + -@rm -f Cross/run-* Cross/to-* Cross/from-* rm -f config.sh cppstdin Policy.sh clobber: _realcleaner _mopup _clobber diff --git a/Porting/Glossary b/Porting/Glossary index 7a5e580..26e6e4c 100644 --- a/Porting/Glossary +++ b/Porting/Glossary @@ -328,11 +328,6 @@ cppsymbols (Cppsym.U): not in this list, see ccsymbols and cppccsymbols. The list is a space-separated list of symbol=value tokens. -crosscompile (crosscompile.U): - This variable conditionally defines the CROSSCOMPILE symbol - which signifies that the build process is be a cross-compilation. - This is normally set by hints files or from Configure command line. - cryptlib (d_crypt.U): This variable holds -lcrypt or the path to a libcrypt.a archive if the crypt() function is not defined in the standard C library. It is @@ -1984,6 +1979,12 @@ freetype (mallocsrc.U): This variable contains the return type of free(). It is usually void, but occasionally int. +from (Cross.U): + This variable contains the command used by Configure + to copy files from the target host. Useful and available + only during Perl build. + The string ':' if not cross-compiling. + full_ar (Loc_ar.U): This variable contains the full pathname to 'ar', whether or not the user has specified 'portability'. This is only used @@ -3197,6 +3198,12 @@ rmail (Loc.U): This variable is defined but not used by Configure. The value is a plain '' and is not useful. +run (Cross.U): + This variable contains the command used by Configure + to copy and execute a cross-compiled executable in the + target host. Useful and available only during Perl build. + Empty string '' if not cross-compiling. + runnm (usenm.U): This variable contains 'true' or 'false' depending whether the nm extraction should be performed or not, according to the value @@ -3582,6 +3589,10 @@ tar (Loc.U): This variable is defined but not used by Configure. The value is a plain '' and is not useful. +targetarch (Cross.U): + If cross-compiling, this variable contains the target architecture. + If not, this will be empty. + tbl (Loc.U): This variable is defined but not used by Configure. The value is a plain '' and is not useful. @@ -3603,6 +3614,12 @@ timetype (d_time.U): or time_t on BSD sites (in which case should be included). Anyway, the type Time_t should be used. +to (Cross.U): + This variable contains the command used by Configure + to copy to from the target host. Useful and available + only during Perl build. + The string ':' if not cross-compiling. + touch (Loc.U): This variable is used internally by Configure to determine the full pathname (if any) of the touch program. After Configure runs, @@ -3699,6 +3716,10 @@ use64bitint (use64bits.U): This may mean using for example "long longs", while your memory may still be limited to 2 gigabytes. +usecrosscompile (Cross.U): + This variable conditionally defines the USE_CROSS_COMPILE symbol, + and indicates that Perl has been cross-compiled. + usedl (dlsrc.U): This variable indicates if the system supports dynamic loading of some sort. See also dlsrc and dlobj. diff --git a/Porting/config.sh b/Porting/config.sh index a7c490c..b804e95 100644 --- a/Porting/config.sh +++ b/Porting/config.sh @@ -8,7 +8,7 @@ # Package name : perl5 # Source directory : . -# Configuration time: Wed Jun 13 21:04:31 EET DST 2001 +# Configuration time: Fri Jun 15 02:15:37 EET DST 2001 # Configured by : jhi # Target system : osf1 alpha.hut.fi v4.0 878 alpha @@ -63,7 +63,7 @@ ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_ ccversion='V5.6-082' cf_by='jhi' cf_email='yourname@yourhost.yourplace.com' -cf_time='Wed Jun 13 21:04:31 EET DST 2001' +cf_time='Fri Jun 15 02:15:37 EET DST 2001' charsize='1' chgrp='' chmod='' @@ -83,7 +83,6 @@ cppminus='' cpprun='/usr/bin/cpp' cppstdin='cppstdin' cppsymbols='_AES_SOURCE=1 __alpha=1 __ALPHA=1 _ANSI_C_SOURCE=1 __LANGUAGE_C__=1 _LONGLONG=1 __osf__=1 _OSF_SOURCE=1 _POSIX_C_SOURCE=199506 _POSIX_SOURCE=1 _REENTRANT=1 __STDC__=1 _SYSTYPE_BSD=1 __unix__=1 _XOPEN_SOURCE=1' -crosscompile='undef' cryptlib='' csh='csh' d_Gconvert='gcvt((x),(n),(b))' @@ -439,7 +438,7 @@ eunicefix=':' exe_ext='' expr='expr' extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread Time/HiRes Time/Piece XS/Typemap attrs re Errno' -fflushNULL='define' +fflushNULL='undef' fflushall='undef' find='' firstmakefile='makefile' @@ -447,6 +446,7 @@ flex='' fpossize='8' fpostype='fpos_t' freetype='void' +from=':' full_ar='/usr/bin/ar' full_csh='/usr/bin/csh' full_sed='/usr/bin/sed' @@ -670,7 +670,7 @@ patchlevel='7' path_sep=':' perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl' perl='' -perl_patchlevel='10537' +perl_patchlevel='10575' perladmin='yourname@yourhost.yourplace.com' perllibs='-lm -liconv -lutil -lpthread -lexc' perlpath='/opt/perl/bin/perl' @@ -697,6 +697,7 @@ rd_nodata='-1' revision='5' rm='rm' rmail='' +run='' runnm='true' sPRIEUldbl='"E"' sPRIFUldbl='"F"' @@ -771,11 +772,13 @@ subversion='1' sysman='/usr/man/man1' tail='' tar='' +targetarch='' tbl='' tee='' test='test' timeincl='/usr/include/sys/time.h ' timetype='time_t' +to=':' touch='touch' tr='tr' trnl='\n' @@ -798,6 +801,7 @@ uquadtype='unsigned long' use5005threads='define' use64bitall='define' use64bitint='define' +usecrosscompile='undef' usedl='define' useithreads='undef' uselargefiles='define' @@ -809,7 +813,7 @@ usenm='true' useopcode='true' useperlio='define' useposix='true' -usereentrant='' +usereentrant='undef' usesfio='false' useshrplib='true' usesocks='undef' @@ -866,7 +870,7 @@ PERL_SUBVERSION=1 PERL_API_REVISION=5 PERL_API_VERSION=5 PERL_API_SUBVERSION=0 -PERL_PATCHLEVEL=10537 +PERL_PATCHLEVEL=10575 PERL_CONFIG_SH=true # Variables propagated from previous config.sh file. pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"' diff --git a/Porting/config_H b/Porting/config_H index 3e85c17..9aea69c 100644 --- a/Porting/config_H +++ b/Porting/config_H @@ -17,7 +17,7 @@ /* * Package name : perl5 * Source directory : . - * Configuration time: Wed Jun 13 21:04:31 EET DST 2001 + * Configuration time: Fri Jun 15 02:15:37 EET DST 2001 * Configured by : jhi * Target system : osf1 alpha.hut.fi v4.0 878 alpha */ @@ -125,26 +125,6 @@ */ #define HAS_DLERROR /**/ -/* SETUID_SCRIPTS_ARE_SECURE_NOW: - * This symbol, if defined, indicates that the bug that prevents - * setuid scripts from being secure is not present in this kernel. - */ -/* DOSUID: - * This symbol, if defined, indicates that the C program should - * check the script that it is executing for setuid/setgid bits, and - * attempt to emulate setuid/setgid on systems that have disabled - * setuid #! scripts because the kernel can't do it securely. - * It is up to the package designer to make sure that this emulation - * is done securely. Among other things, it should do an fstat on - * the script it just opened to make sure it really is a setuid/setgid - * script, it should make sure the arguments passed correspond exactly - * to the argument on the #! line, and it should not trust any - * subprocesses to which it must pass the filename rather than the - * file descriptor of the script to be executed. - */ -/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/ -/*#define DOSUID / **/ - /* HAS_DUP2: * This symbol, if defined, indicates that the dup2 routine is * available to duplicate file descriptors. @@ -922,17 +902,6 @@ */ #define I_VALUES /**/ -/* I_STDARG: - * This symbol, if defined, indicates that exists and should - * be included. - */ -/* I_VARARGS: - * This symbol, if defined, indicates to the C program that it should - * include . - */ -#define I_STDARG /**/ -/*#define I_VARARGS / **/ - /* I_VFORK: * This symbol, if defined, indicates to the C program that it should * include vfork.h. @@ -966,12 +935,6 @@ */ #define SH_PATH "/bin/sh" /**/ -/* CROSSCOMPILE: - * This symbol, if defined, signifies that we our - * build process is a cross-compilation. - */ -/*#define CROSSCOMPILE / **/ - /* INTSIZE: * This symbol contains the value of sizeof(int) so that the C * preprocessor can make decisions based on it. @@ -1055,8 +1018,8 @@ * double, or a long double when applicable. Usual values are 2, * 4 and 8. The default is eight, for safety. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) -# define MEM_ALIGNBYTES 8 +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) +#define MEM_ALIGNBYTES 8 #else #define MEM_ALIGNBYTES 8 #endif @@ -1132,7 +1095,7 @@ * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ # if LONGSIZE == 4 # define BYTEORDER 0x1234 @@ -2361,7 +2324,7 @@ * Note that if fflushNULL is defined, fflushall will not * even be probed for and will be left undefined. */ -#define FFLUSH_NULL /**/ +/*#define FFLUSH_NULL / **/ /*#define FFLUSH_ALL / **/ /* Fpos_t: @@ -3247,12 +3210,18 @@ * This symbol, if defined, indicates that Perl should * be built to use the old draft POSIX threads API. */ +/* USE_REENTRANT_API: + * This symbol, if defined, indicates that Perl should + * try to use the various _r versions of library functions. + * This is extremely experimental. + */ #define USE_5005THREADS /**/ /*#define USE_ITHREADS / **/ #if defined(USE_5005THREADS) && !defined(USE_ITHREADS) #define USE_THREADS /* until src is revised*/ #endif /*#define OLD_PTHREADS_API / **/ +/*#define USE_REENTRANT_API / **/ /* PERL_VENDORARCH: * If defined, this symbol contains the name of a private library. @@ -3344,6 +3313,49 @@ #define PERL_XS_APIVERSION "5.7.1" #define PERL_PM_APIVERSION "5.005" +/* SETUID_SCRIPTS_ARE_SECURE_NOW: + * This symbol, if defined, indicates that the bug that prevents + * setuid scripts from being secure is not present in this kernel. + */ +/* DOSUID: + * This symbol, if defined, indicates that the C program should + * check the script that it is executing for setuid/setgid bits, and + * attempt to emulate setuid/setgid on systems that have disabled + * setuid #! scripts because the kernel can't do it securely. + * It is up to the package designer to make sure that this emulation + * is done securely. Among other things, it should do an fstat on + * the script it just opened to make sure it really is a setuid/setgid + * script, it should make sure the arguments passed correspond exactly + * to the argument on the #! line, and it should not trust any + * subprocesses to which it must pass the filename rather than the + * file descriptor of the script to be executed. + */ +/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/ +/*#define DOSUID / **/ + +/* I_STDARG: + * This symbol, if defined, indicates that exists and should + * be included. + */ +/* I_VARARGS: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#define I_STDARG /**/ +/*#define I_VARARGS / **/ + +/* USE_CROSS_COMPILE: + * This symbol, if defined, indicates that Perl is being cross-compiled. + */ +/* PERL_TARGETARCH: + * This symbol, if defined, indicates the target architecture + * Perl has been cross-compiled to. Undefined if not a cross-compile. + */ +#ifndef USE_CROSS_COMPILE +/*#define USE_CROSS_COMPILE / **/ +#define PERL_TARGETARCH "" /**/ +#endif + /* HAS_DBMINIT_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the dbminit() function. Otherwise, it is up diff --git a/config_h.SH b/config_h.SH index 8ba725d..35bfb1b 100644 --- a/config_h.SH +++ b/config_h.SH @@ -145,26 +145,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_dlerror HAS_DLERROR /**/ -/* SETUID_SCRIPTS_ARE_SECURE_NOW: - * This symbol, if defined, indicates that the bug that prevents - * setuid scripts from being secure is not present in this kernel. - */ -/* DOSUID: - * This symbol, if defined, indicates that the C program should - * check the script that it is executing for setuid/setgid bits, and - * attempt to emulate setuid/setgid on systems that have disabled - * setuid #! scripts because the kernel can't do it securely. - * It is up to the package designer to make sure that this emulation - * is done securely. Among other things, it should do an fstat on - * the script it just opened to make sure it really is a setuid/setgid - * script, it should make sure the arguments passed correspond exactly - * to the argument on the #! line, and it should not trust any - * subprocesses to which it must pass the filename rather than the - * file descriptor of the script to be executed. - */ -#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW /**/ -#$d_dosuid DOSUID /**/ - /* HAS_DUP2: * This symbol, if defined, indicates that the dup2 routine is * available to duplicate file descriptors. @@ -942,17 +922,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$i_values I_VALUES /**/ -/* I_STDARG: - * This symbol, if defined, indicates that exists and should - * be included. - */ -/* I_VARARGS: - * This symbol, if defined, indicates to the C program that it should - * include . - */ -#$i_stdarg I_STDARG /**/ -#$i_varargs I_VARARGS /**/ - /* I_VFORK: * This symbol, if defined, indicates to the C program that it should * include vfork.h. @@ -986,12 +955,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #define SH_PATH "$sh" /**/ -/* CROSSCOMPILE: - * This symbol, if defined, signifies that we our - * build process is a cross-compilation. - */ -#$crosscompile CROSSCOMPILE /**/ - /* INTSIZE: * This symbol contains the value of sizeof(int) so that the C * preprocessor can make decisions based on it. @@ -1075,7 +1038,7 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un * double, or a long double when applicable. Usual values are 2, * 4 and 8. The default is eight, for safety. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # define MEM_ALIGNBYTES 8 #else #define MEM_ALIGNBYTES $alignbytes @@ -1152,7 +1115,7 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ # if LONGSIZE == 4 # define BYTEORDER 0x1234 @@ -3370,6 +3333,49 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #define PERL_XS_APIVERSION "$xs_apiversion" #define PERL_PM_APIVERSION "$pm_apiversion" +/* SETUID_SCRIPTS_ARE_SECURE_NOW: + * This symbol, if defined, indicates that the bug that prevents + * setuid scripts from being secure is not present in this kernel. + */ +/* DOSUID: + * This symbol, if defined, indicates that the C program should + * check the script that it is executing for setuid/setgid bits, and + * attempt to emulate setuid/setgid on systems that have disabled + * setuid #! scripts because the kernel can't do it securely. + * It is up to the package designer to make sure that this emulation + * is done securely. Among other things, it should do an fstat on + * the script it just opened to make sure it really is a setuid/setgid + * script, it should make sure the arguments passed correspond exactly + * to the argument on the #! line, and it should not trust any + * subprocesses to which it must pass the filename rather than the + * file descriptor of the script to be executed. + */ +#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW /**/ +#$d_dosuid DOSUID /**/ + +/* I_STDARG: + * This symbol, if defined, indicates that exists and should + * be included. + */ +/* I_VARARGS: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#$i_stdarg I_STDARG /**/ +#$i_varargs I_VARARGS /**/ + +/* USE_CROSS_COMPILE: + * This symbol, if defined, indicates that Perl is being cross-compiled. + */ +/* PERL_TARGETARCH: + * This symbol, if defined, indicates the target architecture + * Perl has been cross-compiled to. Undefined if not a cross-compile. + */ +#ifndef USE_CROSS_COMPILE +#$usecrosscompile USE_CROSS_COMPILE /**/ +#define PERL_TARGETARCH "$targetarch" /**/ +#endif + /* HAS_DBMINIT_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the dbminit() function. Otherwise, it is up diff --git a/configure.com b/configure.com index 1d09675..447a981 100644 --- a/configure.com +++ b/configure.com @@ -4969,7 +4969,6 @@ $ WC "cpplast='" + cpplast + "'" $ WC "cppminus='" + cppminus + "'" $ WC "cpprun='" + cpprun + "'" $ WC "cppstdin='" + cppstdin + "'" -$ WC "crosscompile='undef'" $ WC "d_Gconvert='my_gconvert(x,n,t,b)'" $ WC "d_PRIEldbl='" + d_PRIEUldbl + "'" $ WC "d_PRIFldbl='" + d_PRIFUldbl + "'" @@ -5564,6 +5563,7 @@ $ WC "use5005threads='" + use5005threads + "'" $ WC "use64bitall='" + use64bitall + "'" $ WC "use64bitint='" + use64bitint + "'" $ WC "usedebugging_perl='" + use_debugging_perl + "'" +$ WC "usecrosscompile='undef'" $ WC "usedl='" + usedl + "'" $ WC "useithreads='" + useithreads + "'" $ WC "uselargefiles='" + uselargefiles + "'" diff --git a/epoc/config.sh b/epoc/config.sh index 0e5549e..4e80423 100644 --- a/epoc/config.sh +++ b/epoc/config.sh @@ -76,7 +76,6 @@ cppminus='-' cpprun='arm-pe-gcc -E -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/' cppstdin='arm-pe-gcc -E -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/' cppsymbols='' -crosscompile='define' cryptlib='' csh='csh' d_Gconvert='epoc_gcvt((x),(n),(b))' @@ -725,6 +724,7 @@ uname='uname' uniq='uniq' use64bitall='undef' use64bitint='undef' +usecrosscompile='define' usedl='undef' uselargefiles='undef' uselongdouble='undef' diff --git a/hints/linux.sh b/hints/linux.sh index a6b2bd9..3234aea 100644 --- a/hints/linux.sh +++ b/hints/linux.sh @@ -119,7 +119,7 @@ main() { exit(0); /* succeed (yes, it's ELF) */ } EOM -if ${cc:-gcc} try.c >/dev/null 2>&1 && ./a.out; then +if ${cc:-gcc} try.c >/dev/null 2>&1 && $run ./a.out; then cat <<'EOM' >&4 You appear to have ELF support. I'll try to use it for dynamic loading. diff --git a/pod/perltoc.pod b/pod/perltoc.pod index 35e834e..ba9a0fe 100644 --- a/pod/perltoc.pod +++ b/pod/perltoc.pod @@ -6775,18 +6775,6 @@ FETCH_I_ATTRIBUTES, MODIFY_I_ATTRIBUTES =back -=head2 attrs - set/get attributes of a subroutine (deprecated) - -=over 4 - -=item SYNOPSIS - -=item DESCRIPTION - -method, locked - -=back - =head2 autouse - postpone load of modules until a function is used =over 4 @@ -8577,7 +8565,7 @@ C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, -C, C, C, C, C, C +C, C, C, C, C =item d @@ -8665,7 +8653,8 @@ C, C, C =item f C, C, C, C, C, -C, C, C, C, C, C +C, C, C, C, C, C, +C =item g @@ -8758,7 +8747,7 @@ C, C =item r C, C, C, C, C, -C, C, C, C +C, C, C, C, C =item s @@ -8779,20 +8768,20 @@ C, C, C, C, C =item t -C, C, C, C, C, C, C, -C, C, C, C +C, C, C, C, C, C, C, +C, C, C, C, C, C =item u C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, -C, C, C, C, -C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, C, -C, C +C, C, C, C, +C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C =item v @@ -9401,22 +9390,6 @@ arrays =back -=head2 Errno - System errno constants - -=over 4 - -=item SYNOPSIS - -=item DESCRIPTION - -=item CAVEATS - -=item AUTHOR - -=item COPYRIGHT - -=back - =head2 Exporter - Implements default import method for modules =over 4 @@ -14105,27 +14078,6 @@ C =back -=head2 Syslog, Sys::Syslog, openlog, closelog, setlogmask, syslog - Perl -interface to the UNIX syslog(3) calls - -=over 4 - -=item SYNOPSIS - -=item DESCRIPTION - -openlog $ident, $logopt, $facility, syslog $priority, $format, @args, -setlogmask $mask_priority, setlogsock $sock_type (added in 5.004_02), -closelog - -=item EXAMPLES - -=item SEE ALSO - -=item AUTHOR - -=back - =head2 Syslog::Syslog, Sys::Syslog, openlog, closelog, setlogmask, syslog - Perl interface to the UNIX syslog(3) calls @@ -14758,24 +14710,6 @@ seconds to other date values =back -=head2 Time::Seconds - a simple API to convert seconds to other date values - -=over 4 - -=item SYNOPSIS - -=item DESCRIPTION - -=item METHODS - -=item AUTHOR - -=item LICENSE - -=item Bugs - -=back - =head2 Time::gmtime - by-name interface to Perl's built-in gmtime() function diff --git a/uconfig.h b/uconfig.h index 08799f2..67578fa 100644 --- a/uconfig.h +++ b/uconfig.h @@ -121,26 +121,6 @@ */ /*#define HAS_DLERROR / **/ -/* SETUID_SCRIPTS_ARE_SECURE_NOW: - * This symbol, if defined, indicates that the bug that prevents - * setuid scripts from being secure is not present in this kernel. - */ -/* DOSUID: - * This symbol, if defined, indicates that the C program should - * check the script that it is executing for setuid/setgid bits, and - * attempt to emulate setuid/setgid on systems that have disabled - * setuid #! scripts because the kernel can't do it securely. - * It is up to the package designer to make sure that this emulation - * is done securely. Among other things, it should do an fstat on - * the script it just opened to make sure it really is a setuid/setgid - * script, it should make sure the arguments passed correspond exactly - * to the argument on the #! line, and it should not trust any - * subprocesses to which it must pass the filename rather than the - * file descriptor of the script to be executed. - */ -/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/ -/*#define DOSUID / **/ - /* HAS_DUP2: * This symbol, if defined, indicates that the dup2 routine is * available to duplicate file descriptors. @@ -918,17 +898,6 @@ */ /*#define I_VALUES / **/ -/* I_STDARG: - * This symbol, if defined, indicates that exists and should - * be included. - */ -/* I_VARARGS: - * This symbol, if defined, indicates to the C program that it should - * include . - */ -#define I_STDARG /**/ -/*#define I_VARARGS / **/ - /* I_VFORK: * This symbol, if defined, indicates to the C program that it should * include vfork.h. @@ -962,12 +931,6 @@ */ #define SH_PATH "" /**/ -/* CROSSCOMPILE: - * This symbol, if defined, signifies that we our - * build process is a cross-compilation. - */ -/*#define CROSSCOMPILE / **/ - /* INTSIZE: * This symbol contains the value of sizeof(int) so that the C * preprocessor can make decisions based on it. @@ -1051,8 +1014,8 @@ * double, or a long double when applicable. Usual values are 2, * 4 and 8. The default is eight, for safety. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) -# define MEM_ALIGNBYTES 8 +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) +#define MEM_ALIGNBYTES 8 #else #define MEM_ALIGNBYTES 4 #endif @@ -1128,7 +1091,7 @@ * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ # if LONGSIZE == 4 # define BYTEORDER 0x1234 @@ -3346,6 +3309,49 @@ #define PERL_XS_APIVERSION "5.005" #define PERL_PM_APIVERSION "5.005" +/* SETUID_SCRIPTS_ARE_SECURE_NOW: + * This symbol, if defined, indicates that the bug that prevents + * setuid scripts from being secure is not present in this kernel. + */ +/* DOSUID: + * This symbol, if defined, indicates that the C program should + * check the script that it is executing for setuid/setgid bits, and + * attempt to emulate setuid/setgid on systems that have disabled + * setuid #! scripts because the kernel can't do it securely. + * It is up to the package designer to make sure that this emulation + * is done securely. Among other things, it should do an fstat on + * the script it just opened to make sure it really is a setuid/setgid + * script, it should make sure the arguments passed correspond exactly + * to the argument on the #! line, and it should not trust any + * subprocesses to which it must pass the filename rather than the + * file descriptor of the script to be executed. + */ +/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/ +/*#define DOSUID / **/ + +/* I_STDARG: + * This symbol, if defined, indicates that exists and should + * be included. + */ +/* I_VARARGS: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#define I_STDARG /**/ +/*#define I_VARARGS / **/ + +/* USE_CROSS_COMPILE: + * This symbol, if defined, indicates that Perl is being cross-compiled. + */ +/* PERL_TARGETARCH: + * This symbol, if defined, indicates the target architecture + * Perl has been cross-compiled to. Undefined if not a cross-compile. + */ +#ifndef USE_CROSS_COMPILE +/*#define USE_CROSS_COMPILE / **/ +#define PERL_TARGETARCH "" /**/ +#endif + /* HAS_DBMINIT_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the dbminit() function. Otherwise, it is up diff --git a/uconfig.sh b/uconfig.sh index 5ffccae..52e34b7 100755 --- a/uconfig.sh +++ b/uconfig.sh @@ -15,7 +15,6 @@ castflags='0' charsize='1' clocktype='clock_t' cpp_stuff='42' -crosscompile='undef' d_Gconvert='sprintf((b),"%.*g",(n),(x))' d_PRIEUldbl='undef' d_PRIFUldbl='undef' @@ -560,6 +559,7 @@ uquadtype='uint64_t' use5005threads='undef' use64bitall='undef' use64bitint='undef' +usecrosscompile='undef' usedl='undef' useithreads='undef' uselargefiles='undef' diff --git a/vos/config.alpha.def b/vos/config.alpha.def index 0fb92e3..5d437d8 100644 --- a/vos/config.alpha.def +++ b/vos/config.alpha.def @@ -15,7 +15,6 @@ $cpplast='-' $cppminus='-' $cpprun='cc -E -' $cppstdin='cc -E' -$crosscompile='undef' $d_Gconvert='sprintf((b),"%.*g",(n),(x))' $d_PRIeldbl='define' $d_PRIfldbl='define' @@ -503,6 +502,7 @@ $uquadtype='_error_' $use5005threads='undef' $use64bitall='undef' $use64bitint='undef' +$usecrosscompile='undef' $usedl='undef' $useithreads='undef' $uselargefiles='undef' diff --git a/vos/config.alpha.h b/vos/config.alpha.h index 1b560b4..f610d32 100644 --- a/vos/config.alpha.h +++ b/vos/config.alpha.h @@ -962,12 +962,6 @@ */ #define SH_PATH "/bin/sh" /**/ -/* CROSSCOMPILE: - * This symbol, if defined, signifies that we our - * build process is a cross-compilation. - */ -/*#define CROSSCOMPILE /**/ - /* INTSIZE: * This symbol contains the value of sizeof(int) so that the C * preprocessor can make decisions based on it. @@ -1051,7 +1045,7 @@ * double, or a long double when applicable. Usual values are 2, * 4 and 8. The default is eight, for safety. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # define MEM_ALIGNBYTES 8 #else #define MEM_ALIGNBYTES 8 @@ -1128,7 +1122,7 @@ * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ # if LONGSIZE == 4 # define BYTEORDER 0x1234 diff --git a/vos/config.ga.def b/vos/config.ga.def index ffcd3cf..7ad9bd0 100644 --- a/vos/config.ga.def +++ b/vos/config.ga.def @@ -15,7 +15,6 @@ $cpplast='-' $cppminus='-' $cpprun='cc -E -' $cppstdin='cc -E' -$crosscompile='undef' $d_Gconvert='sprintf((b),"%.*g",(n),(x))' $d_PRIeldbl='define' $d_PRIfldbl='define' @@ -503,6 +502,7 @@ $uquadtype='_error_' $use5005threads='undef' $use64bitall='undef' $use64bitint='undef' +$usecrosscompile='undef' $usedl='undef' $useithreads='undef' $uselargefiles='undef' diff --git a/vos/config.ga.h b/vos/config.ga.h index 7afd9a3..791d937 100644 --- a/vos/config.ga.h +++ b/vos/config.ga.h @@ -962,12 +962,6 @@ */ #define SH_PATH "/system/gnu_library/bin/bash.pm" /**/ -/* CROSSCOMPILE: - * This symbol, if defined, signifies that we our - * build process is a cross-compilation. - */ -/*#define CROSSCOMPILE /**/ - /* INTSIZE: * This symbol contains the value of sizeof(int) so that the C * preprocessor can make decisions based on it. @@ -1051,7 +1045,7 @@ * double, or a long double when applicable. Usual values are 2, * 4 and 8. The default is eight, for safety. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # define MEM_ALIGNBYTES 8 #else #define MEM_ALIGNBYTES 8 @@ -1128,7 +1122,7 @@ * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ # if LONGSIZE == 4 # define BYTEORDER 0x1234 diff --git a/win32/config.bc b/win32/config.bc index e1eeca8..a47e405 100644 --- a/win32/config.bc +++ b/win32/config.bc @@ -68,7 +68,6 @@ cppminus='' cpprun='cpp32 -oCON' cppstdin='cpp32 -oCON' cppsymbols='' -crosscompile='undef' cryptlib='' csh='undef' d_Gconvert='gcvt((x),(n),(b))' @@ -783,6 +782,7 @@ uquadtype='unsigned __int64' use5005threads='undef' use64bitall='undef' use64bitint='undef' +usecrosscompile='undef' usedl='define' useithreads='undef' uselargefiles='undef' diff --git a/win32/config.gc b/win32/config.gc index 7085cd2..38c7a15 100644 --- a/win32/config.gc +++ b/win32/config.gc @@ -68,7 +68,6 @@ cppminus='-' cpprun='gcc -E' cppstdin='gcc -E' cppsymbols='' -crosscompile='undef' cryptlib='' csh='undef' d_Gconvert='sprintf((b),"%.*g",(n),(x))' @@ -783,6 +782,7 @@ uquadtype='unsigned long long' use5005threads='undef' use64bitall='undef' use64bitint='undef' +usecrosscompile='undef' usedl='define' useithreads='undef' uselargefiles='undef' diff --git a/win32/config.vc b/win32/config.vc index c01ce0c..2e0bae2 100644 --- a/win32/config.vc +++ b/win32/config.vc @@ -68,7 +68,6 @@ cppminus='' cpprun='cl -nologo -E' cppstdin='cl -nologo -E' cppsymbols='' -crosscompile='undef' cryptlib='' csh='undef' d_Gconvert='sprintf((b),"%.*g",(n),(x))' @@ -783,6 +782,7 @@ uquadtype='unsigned __int64' use5005threads='undef' use64bitall='undef' use64bitint='undef' +usecrosscompile='undef' usedl='define' useithreads='undef' uselargefiles='undef' diff --git a/win32/config_H.bc b/win32/config_H.bc index b1de84b..c85c2e2 100644 --- a/win32/config_H.bc +++ b/win32/config_H.bc @@ -962,12 +962,6 @@ */ #define SH_PATH "cmd /x /c" /**/ -/* CROSSCOMPILE: - * This symbol, if defined, signifies that we our - * build process is a cross-compilation. - */ -/*#define CROSSCOMPILE /**/ - /* INTSIZE: * This symbol contains the value of sizeof(int) so that the C * preprocessor can make decisions based on it. @@ -1051,7 +1045,7 @@ * double, or a long double when applicable. Usual values are 2, * 4 and 8. The default is eight, for safety. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # define MEM_ALIGNBYTES 8 #else #define MEM_ALIGNBYTES 8 @@ -1128,7 +1122,7 @@ * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ # if LONGSIZE == 4 # define BYTEORDER 0x1234 diff --git a/win32/config_H.gc b/win32/config_H.gc index 8025e52..945fa8a 100644 --- a/win32/config_H.gc +++ b/win32/config_H.gc @@ -962,12 +962,6 @@ */ #define SH_PATH "cmd /x /c" /**/ -/* CROSSCOMPILE: - * This symbol, if defined, signifies that we our - * build process is a cross-compilation. - */ -/*#define CROSSCOMPILE /**/ - /* INTSIZE: * This symbol contains the value of sizeof(int) so that the C * preprocessor can make decisions based on it. @@ -1051,7 +1045,7 @@ * double, or a long double when applicable. Usual values are 2, * 4 and 8. The default is eight, for safety. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # define MEM_ALIGNBYTES 8 #else #define MEM_ALIGNBYTES 8 @@ -1128,7 +1122,7 @@ * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ # if LONGSIZE == 4 # define BYTEORDER 0x1234 diff --git a/win32/config_H.vc b/win32/config_H.vc index ca07d2b..ab4927d 100644 --- a/win32/config_H.vc +++ b/win32/config_H.vc @@ -962,12 +962,6 @@ */ #define SH_PATH "cmd /x /c" /**/ -/* CROSSCOMPILE: - * This symbol, if defined, signifies that we our - * build process is a cross-compilation. - */ -/*#define CROSSCOMPILE /**/ - /* INTSIZE: * This symbol contains the value of sizeof(int) so that the C * preprocessor can make decisions based on it. @@ -1051,7 +1045,7 @@ * double, or a long double when applicable. Usual values are 2, * 4 and 8. The default is eight, for safety. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # define MEM_ALIGNBYTES 8 #else #define MEM_ALIGNBYTES 8 @@ -1128,7 +1122,7 @@ * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ -#if defined(CROSSCOMPILE) || defined(MULTIARCH) +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ # if LONGSIZE == 4 # define BYTEORDER 0x1234