X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/6e89a33a76ad97097e5b456387f1289b6addf741..e76fdebf5815ffaf53ebcfd2c7b78b0e9eacbfd2:/Configure diff --git a/Configure b/Configure index f9cbfe7..293ef61 100755 --- a/Configure +++ b/Configure @@ -28,7 +28,7 @@ # See Porting/pumpkin.pod for more information on metaconfig. # -# Generated on Wed Jan 1 18:06:40 CET 2014 [metaconfig 3.5 PL0] +# Generated on Wed Apr 9 12:24:24 CEST 2014 [metaconfig 3.5 PL0] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ </dev/null 2>&1`; then shsharp=true @@ -2300,6 +2316,48 @@ EOH esac fi +: Set 'sysroot' to change the logical root directory to your headers and libraries see man gcc +: This is primarily meant for cross-compile environments, and may fail to be useful in other cases +if test "X$sysroot" = X; then + sysroot="" +else + case "$cc" in + *gcc*|*g++*) + echo "Using $sysroot to find your headers and libraries, adding to ccflags" + # _sysroot is used in places where we need --sysroot=foo + # but using the rest of the flags could cause issues. + _sysroot="--sysroot=$sysroot"; + case "$ccflags" in + *sysroot*) ;; + 'undef'|*) + ccflags="$ccflags $_sysroot" + esac + case "$ldflags" in + *sysroot*) ;; + 'undef'|*) + ldflags="$ldflags $_sysroot" + esac + case "$cppflags" in + *sysroot*) ;; + 'undef'|*) + cppflags="$cppflags $_sysroot" + esac + # lddlflags updated below in lddlflags section; + # same with cccdlflags + ;; + esac + + # Adjust some defaults to also use $sysroot + for var in xlibpth loclibpth locincpth glibpth; do + eval xxx=\$$var + eval $var='' + for path in $xxx; do + eval $var=\"\$$var $sysroot$path\" + done + done + +fi + : find out where common programs are echo " " echo "Locating common programs..." >&4 @@ -2388,7 +2446,7 @@ uname zip " pth=`echo $PATH | sed -e "s/$p_/ /g"` -pth="$pth /lib /usr/lib" +pth="$pth $sysroot/lib $sysroot/usr/lib" for file in $loclist; do eval xxx=\$$file case "$xxx" in @@ -2780,71 +2838,101 @@ $define|true|[yY]*) esac : Check for Cross-Compilation +if $test "X$targethost" = "X"; then + targethost="" +fi +if $test "X$targetenv" = "X"; then + targetenv="" +fi case "$usecrosscompile" in $define|true|[yY]*) $echo "Cross-compiling..." - croak='' - case "$cc" in - *-*-gcc) # A cross-compiling gcc, probably. - targetarch=`$echo $cc|$sed 's/-gcc$//'` - ar=$targetarch-ar + croak='' + case "$cc" in + *-gcc*|*-g++*) # A cross-compiling gcc, probably. + # arm-linux-androideabi-gcc -> arm-linux-androideabi + # x86_64-w64-mingw32-gcc.exe -> x86_64-w64-mingw32 + targetarch=`$echo $cc|$sed 's/-g[c\+][c\+].*$//'` + ar=`$echo $cc|$sed 's/-g[c\+][c\+]/-ar/'` # leave out ld, choosing it is more complex - nm=$targetarch-nm - ranlib=$targetarch-ranlib - $echo 'extern int foo;' > try.c - set X `$cc -v -E try.c 2>&1 | $awk '/^#include &4 - for i in $*; do - j="`$echo $i|$sed 's,/include$,/lib,'`" - if $test -d $j; then - libpth="$libpth $j" - fi - done - libpth="`$echo $libpth|$sed 's/^ //'`" - echo "Guessing libpth '$libpth'." >&4 - fi - $rm -f try.c - ;; + nm=`$echo $cc|$sed 's/-g[c\+][c\+]/-nm/'` + ranlib=`$echo $cc|$sed 's/-g[c\+][c\+]/-ranlib/'` + # We are in a weird spot. Just before us, some values + # were 'saved', to be restored after the hints are + # run. This means that the changes we made to ar, + # nm and ranlib will get reverted. + # To avoid that, we hijack the saving mechanism and + # have it save our new values. + for file in ar nm ranlib; do + eval xxx=\$$file + eval $file=$xxx$_exe + eval _$file=$xxx + done + ;; esac case "$targetarch" in '') echo "Targetarch not defined." >&4; croak=y ;; - *) echo "Using targetarch $targetarch." >&4 ;; - esac - case "$incpth" in - '') echo "Incpth not defined." >&4; croak=y ;; - *) echo "Using incpth '$incpth'." >&4 ;; - esac - case "$libpth" in - '') echo "Libpth not defined." >&4; croak=y ;; - *) echo "Using libpth '$libpth'." >&4 ;; - esac - case "$usrinc" in - '') for i in $incpth; do - if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then - usrinc=$i - echo "Guessing usrinc $usrinc." >&4 - break - fi - done - case "$usrinc" in - '') echo "Usrinc not defined." >&4; croak=y ;; - esac - ;; - *) echo "Using usrinc $usrinc." >&4 ;; + *) echo "Using targetarch $targetarch." >&4 ;; esac case "$targethost" in '') echo "Targethost not defined." >&4; croak=y ;; - *) echo "Using targethost $targethost." >&4 + *) echo "Using targethost $targethost." >&4 esac locincpth=' ' loclibpth=' ' case "$croak" in y) echo "Cannot continue, aborting." >&4; exit 1 ;; esac + : compile a host miniperl and generate_uudmap, unless we got passed them + if $test "X$hostperl" = X; then + echo "Building host miniperl and generate_uudmap binaries" >&4 + before_host=`pwd` + cd .. + cd $src + src=`pwd` + rm -rf $src/host + mkdir $src/host + cd $src/host + $src/Configure -des -Dusedevel -Dmksymlinks + $make miniperl + case "$hostgenerate" in + '') $make generate_uudmap + hostgenerate=$src/host/generate_uudmap + ;; + "$undef") hostgenerate='' + ;; + esac + hostperl=$src/host/miniperl + cd $before_host + fi + hostosname=`$hostperl -le 'print $^O'` + ;; +*) + usecrosscompile="$undef" + ;; +esac + +: Define -Dtargethost=somecomputer to run compiled tests on another machine +case "$targethost" in + '') echo "Checking for cross-compile" >&4 + case "$usecrosscompile$multiarch" in + *$define*) echo "Skipping the try tests in the rest of Configure as no targethost was defined when cross-compiling" >&4 + if [ -f Makefile ]; then + echo " " + echo "Now you must ensure config.sh, config.h and the generated headers exist and run a $make." + else + echo "Configure done." + fi + exit 0 + ;; + *) echo "No targethost for running compiler tests against defined, running locally" >&4 + run='' + to=: + from=: + ;; + esac + ;; + *) echo "Using targethost $targethost." >&4 case "$src" in /*) run=$src/Cross/run targetmkdir=$src/Cross/mkdir @@ -2867,18 +2955,23 @@ $define|true|[yY]*) case "$targetfrom" in '') targetfrom=scp ;; esac - run=$run-$targetrun - to=$to-$targetto - from=$from-$targetfrom + run=$run-$targetrun + to=$to-$targetto + from=$from-$targetfrom case "$targetdir" in '') targetdir=/tmp - echo "Guessing targetdir $targetdir." >&4 - ;; + echo "Guessing targetdir $targetdir." >&4 + ;; esac case "$targetuser" in '') targetuser=root - echo "Guessing targetuser $targetuser." >&4 - ;; + echo "Guessing targetuser $targetuser." >&4 + ;; + esac + case "$targetport" in + '') targetport=22 + echo "Guessing targetport $targetport." >&4 + ;; esac case "$targetfrom" in scp) q=-q ;; @@ -2888,6 +2981,7 @@ $define|true|[yY]*) ssh|rsh) cat >$run <&4 exit 1 ;; @@ -2915,7 +3016,7 @@ EOF */Cross/mkdir) cat >$targetmkdir </dev/null || exit 1 ;; *) $targetmkdir $targetdir/\`dirname \$f\` - $targetto $q \$f $targetuser@$targethost:$targetdir/\$f || exit 1 + $targetto -P $targetport -r $q \$f $targetuser@$targethost:$targetdir/\$f 2>/dev/null || exit 1 ;; esac done @@ -2972,7 +3073,7 @@ EOF for f in \$@ do $rm -f \$f - $targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1 + $targetfrom -P $targetport $q $targetuser@$targethost:$targetdir/\$f . || exit 1 done exit 0 EOF @@ -3018,7 +3119,7 @@ EOF *) run='' to=: from=: - usecrosscompile='undef' + usecrosscompile="$undef" targetarch='' ;; esac @@ -3295,6 +3396,7 @@ EOM case "$3" in *) osvers="$3" ;; esac + $test -f /system/lib/libandroid.so && osname=linux-android ;; MiNT) osname=mint ;; @@ -3444,8 +3546,42 @@ EOM case "$targetarch" in '') ;; *) hostarch=$osname - osname=`echo $targetarch|sed 's,^[^-]*-,,'` - osvers='' + case "$targetarch" in + nto*|*-nto-*) + # Will load qnx.sh, which should change osname to nto + osname=qnx + osvers='' + ;; + *linux-android*) + # Catch arm-linux-androideabi, mipsel-linux-android, + # and i686-linux-android + osname=linux-android + osvers='' + ;; + *linux*) + # Something like arm-linux-gnueabihf is really just + # plain linux. + osname=linux + osvers='' + ;; + *solaris*|*sunos*) + osname=solaris + # XXX perhaps we should just assume + # osvers to be 2, or maybe take the value + # from targetarch. Using $run before the + # hints are run is somewhat icky. + set X `$run $uname -a 2>/dev/null` + shift + case "$3" in + 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;; + *) osvers="$3" ;; + esac + ;; + *) + osname=`echo $targetarch|sed 's,^[^-]*-,,'` + osvers='' + ;; + esac ;; esac @@ -4335,8 +4471,8 @@ echo exit 1 >xenix echo exit 1 >venix echo exit 1 >os2 d_bsd="$undef" -$cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null -if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1 +$cat $sysroot/usr/include/signal.h $sysroot/usr/include/sys/signal.h >foo 2>/dev/null +if test -f /osf_boot || $contains 'OSF/1' $sysroot/usr/include/ctype.h >/dev/null 2>&1 then echo "Looks kind of like an OSF/1 system, but we'll see..." echo exit 0 >osf1 @@ -4507,10 +4643,27 @@ case "$gccversion" in $rm -f try try.* esac +# gcc 4.9 by default does some optimizations that break perl. +# see ticket 121505. +# +# The -fwrapv disables those optimizations (and probably others,) so +# for gcc 4.9 (and later, since the optimizations probably won't go +# away), add -fwrapv unless the user requests -fno-wrapv, which +# disables -fwrapv, or if the user requests -fsanitize=undefined, +# which turns the overflows -fwrapv ignores into runtime errors. +case "$gccversion" in +4.[3-9].*|4.[1-9][0-9]*|[5-9].*|[1-9][0-9]*) + case "$ccflags" in + *-fno-wrapv*|*-fsanitize=undefined*|*-fwrapv*) ;; + *) ccflags="$ccflags -fwrapv" ;; + esac +esac + : What should the include directory be ? +: Use sysroot if set, so findhdr looks in the right place. echo " " $echo $n "Hmm... $c" -dflt='/usr/include' +dflt="$sysroot/usr/include" incpath='' mips_type='' if $test -f /bin/mips && /bin/mips; then @@ -4520,7 +4673,7 @@ if $test -f /bin/mips && /bin/mips; then /bsd43 #endif EOCP - if cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then + if $cc $cppflags -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then dflt='/bsd43/usr/include' incpath='/bsd43' mips_type='BSD 4.3' @@ -4568,7 +4721,7 @@ if test ! -f cppstdin; then # locations but we'll cheat by using the -M flag. echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin else - echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin + echo 'cat >.$$.c; '"$cc $cppflags"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin fi else echo "Keeping your $hint cppstdin wrapper." @@ -4611,37 +4764,37 @@ elif echo 'Maybe "'"$cc"' -E" will work...'; \ $cc -E testcpp.out 2>&1; \ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Yup, it does." - x_cpp="$cc -E" + x_cpp="$cc $cppflags -E" x_minus=''; elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \ $cc -E - testcpp.out 2>&1; \ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Yup, it does." - x_cpp="$cc -E" + x_cpp="$cc $cppflags -E" x_minus='-'; elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \ $cc -P testcpp.out 2>&1; \ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Yipee, that works!" - x_cpp="$cc -P" + x_cpp="$cc $cppflags -P" x_minus=''; elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \ $cc -P - testcpp.out 2>&1; \ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "At long last!" - x_cpp="$cc -P" + x_cpp="$cc $cppflags -P" x_minus='-'; elif echo 'No such luck, maybe "'$cpp'" will work...'; \ $cpp testcpp.out 2>&1; \ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "It works!" - x_cpp="$cpp" + x_cpp="$cpp $cppflags" x_minus=''; elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \ $cpp - testcpp.out 2>&1; \ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Hooray, it works! I was beginning to wonder." - x_cpp="$cpp" + x_cpp="$cpp $cppflags" x_minus='-'; elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \ $wrapper testcpp.out 2>&1; \ @@ -4701,11 +4854,90 @@ case "$cppstdin" in esac $rm -f testcpp.c testcpp.out +: Adjust cppfilter for path component separator +case "$osname" in +vos) cppfilter="tr '\\\\>' '/' |" ;; # path component separator is > +os2) cppfilter="sed -e 's|\\\\\\\\|/|g' |" ;; # path component separator is \ +*) cppfilter='' ;; +esac + +: Use gcc to determine libpth and incpth +# If using gcc or clang, we can get better values for libpth, incpth +# and usrinc directly from the compiler. +# Note that ccname for clang is also gcc. +case "$ccname" in + gcc) + $echo 'extern int foo;' > try.c + set X `$cppstdin -v try.c 2>&1 | $awk '/^#include &4; croak=y ;; + *) echo "Using incpth '$incpth'." >&4 ;; + esac + case "$libpth" in + '') echo "Libpth not defined." >&4; croak=y ;; + *) echo "Using libpth '$libpth'." >&4 ;; + esac + case "$usrinc" in + '') echo "Usrinc not defined." >&4; croak=y ;; + *) echo "Using usrinc $usrinc." >&4 ;; + esac + case "$croak" in + y) + if test "X$sysroot" = X; then + echo "Cannot continue, aborting." >&4; exit 1 + else + echo "Cross-compiling using sysroot $sysroot, failing to guess inc/lib paths is not fatal" >&4 + fi + ;; + esac + ;; + esac + ;; +esac + +: Default value for incpth is just usrinc +case "$incpth" in +'') incpth="$usrinc";; +esac + : Set private lib path case "$plibpth" in '') if ./mips; then - plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib" - fi;; + plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib" + fi;; esac case "$libpth" in ' ') dlist='';; @@ -4714,7 +4946,6 @@ case "$libpth" in esac : Now check and see which directories actually exist, avoiding duplicates -libpth='' for xxx in $dlist do if $test -d $xxx; then @@ -4732,6 +4963,14 @@ know not to be holding relevant libraries, and add any that are needed. Say "none" for none. EOM + +if test "X$sysroot" != X; then + $cat <' '/' |" ;; # path component separator is > -os2) cppfilter="sed -e 's|\\\\\\\\|/|g' |" ;; # path component separator is \ -*) cppfilter='' ;; -esac : locate header file $cat >findhdr </dev/null 2>&1; then tval=true; elif $test "$mistrustnm" = compile -o "$mistrustnm" = run; then - echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c; + echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p() && p() != (void *)main) return(0); else return(1); }"> try.c; $cc -o try $optimize $ccflags $ldflags try.c >/dev/null 2>&1 $libs && tval=true; $test "$mistrustnm" = run -a -x try && { $run ./try$_exe >/dev/null 2>&1 || tval=false; }; $rm_try; fi; else - echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c; + echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p() && p() != (void *)main) return(0); else return(1); }"> try.c; $cc -o try $optimize $ccflags $ldflags try.c $libs >/dev/null 2>&1 && tval=true; $rm_try; fi; @@ -7811,15 +8065,15 @@ eval $inhdr echo " " dldir="ext/DynaLoader" case "$usedl" in -$define|y|true) + $define|y|true) dflt='y' usedl="$define" ;; -$undef|n|false) + $undef|n|false) dflt='n' usedl="$undef" ;; -*) + *) dflt='n' case "$d_dlopen" in $define) dflt='y' ;; @@ -7833,21 +8087,20 @@ rp="Do you wish to use dynamic loading?" usedl="$ans" bin_ELF="$undef" case "$ans" in -y*) usedl="$define" + y*) usedl="$define" case "$dlsrc" in - '') - if $test -f $rsrc/$dldir/dl_${osname}.xs ; then - dflt="$dldir/dl_${osname}.xs" + '') if $test -f $rsrc/$dldir/dl_${osname}.xs ; then + dflt="$dldir/dl_${osname}.xs" elif $test "$d_dlopen" = "$define" ; then - dflt="$dldir/dl_dlopen.xs" + dflt="$dldir/dl_dlopen.xs" else - dflt='' + dflt='' fi ;; - *) dflt="$dldir/$dlsrc" + *) dflt="$dldir/$dlsrc" ;; esac - echo "The following dynamic loading files are available:" + echo "The following dynamic loading files are available:" : Can not go over to $dldir because getfile has path hard-coded in. tdir=`pwd`; cd "$rsrc"; $ls -C $dldir/dl*.xs; cd "$tdir" rp="Source file to use for dynamic loading" @@ -7865,8 +8118,8 @@ compile modules that will be used to create a shared library. To use no flags, say "none". EOM - case "$cccdlflags" in - '') case "$gccversion" in + case "$cccdlflags" in + '') case "$gccversion" in '') case "$osname" in hpux) dflt='+z' ;; next) dflt='none' ;; @@ -7875,24 +8128,47 @@ EOM sunos) dflt='-pic' ;; *) dflt='none' ;; esac - ;; + ;; *) case "$osname" in - darwin) dflt='none' ;; - linux*|svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;; + darwin) dflt='none' ;; + *linux*|svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;; *) dflt='-fpic' ;; esac ;; - esac ;; - ' ') dflt='none' ;; - *) dflt="$cccdlflags" ;; - esac - rp="Any special flags to pass to $cc -c to compile shared library modules?" - . ./myread - case "$ans" in - none) cccdlflags=' ' ;; - *) cccdlflags="$ans" ;; - esac + esac ;; + ' ') dflt='none' ;; + *) dflt="$cccdlflags" ;; + esac - cat << EOM + case "$dflt" in + none) dflt='' ;; + esac + + # If -Dsysroot was specified, now's the time to add it + # to cccdlflags + if test "X$sysroot" != X; then + case "$gccversion" in + '') ;; + *) case "$dflt" in + *sysroot*) ;; + 'undef'|*) + dflt="$dflt --sysroot=$sysroot" ;; + esac + ;; + esac + fi + + case "$dflt" in + '') dflt='none';; + esac + + rp="Any special flags to pass to $cc -c to compile shared library modules?" + . ./myread + case "$ans" in + none) cccdlflags=' ' ;; + *) cccdlflags="$ans" ;; + esac + + cat << EOM Some systems use ld to create libraries that can be dynamically loaded, while other systems (such as those using ELF) use $cc. @@ -7912,41 +8188,40 @@ EOM #include #endif int main() { - char b[4]; - int i = open("a.out",O_RDONLY); - if(i == -1) - exit(1); /* fail */ - if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F') - exit(0); /* succeed (yes, it is ELF) */ - else - exit(1); /* fail */ + char b[4]; + int i = open("a.out",O_RDONLY); + if(i == -1) + exit(1); /* fail */ + if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F') + exit(0); /* succeed (yes, it is ELF) */ + exit(1); /* fail */ } EOM if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then - bin_ELF="$define" + bin_ELF="$define" fi $rm_try case "$ld" in - '') if $test $bin_ELF = "$define"; then - cat <try.c <try.c <try.h <try.h </dev/null 2>&1 \ - && $test -s a.out ; then - echo "ld supports scripting" >&4 - ld_can_script="$define" - else - echo "ld does not support scripting" >&4 - fi - $rm_try - ;; + if $cc $cccdlflags $ccdlflags $ccflags \ + $ldflags $lddlflags -o a.out try.c \ + -Wl,--version-script=try.h >/dev/null 2>&1 \ + && $test -s a.out ; then + echo "ld supports scripting" >&4 + ld_can_script="$define" + else + echo "ld does not support scripting" >&4 + fi + $rm_try + ;; esac : Do we want a shared libperl? @@ -8167,7 +8451,7 @@ true) dflt=libperl.5.$so # XXX How handle the --version stuff for MAB? ;; - linux*|gnu*) # ld won't link with a bare -lperl otherwise. + *linux*|gnu*) # ld won't link with a bare -lperl otherwise. dflt=libperl.$so ;; cygwin*) # ld links now against the dll directly @@ -11241,57 +11525,57 @@ sockethdr='' echo " " $echo $n "Hmm... $c" >&4 if set socket val -f d_socket; eval $csym; $val; then + echo "Looks like you have Berkeley networking support." >&4 + d_socket="$define" + if set setsockopt val -f; eval $csym; $val; then + d_oldsock="$undef" + else + echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4 + d_oldsock="$define" + fi +else + if $contains socklib libc.list >/dev/null 2>&1; then echo "Looks like you have Berkeley networking support." >&4 d_socket="$define" - if set setsockopt val -f; eval $csym; $val; then - d_oldsock="$undef" - else - echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4 - d_oldsock="$define" - fi -else - if $contains socklib libc.list >/dev/null 2>&1; then - echo "Looks like you have Berkeley networking support." >&4 - d_socket="$define" - : we will have to assume that it supports the 4.2 BSD interface - d_oldsock="$undef" + : we will have to assume that it supports the 4.2 BSD interface + d_oldsock="$undef" + else + echo "You don't have Berkeley networking in libc$_a..." >&4 + if test "X$d_socket" = "X$define"; then + echo "...but you seem to believe that you have sockets." >&4 else - echo "You don't have Berkeley networking in libc$_a..." >&4 - if test "X$d_socket" = "X$define"; then - echo "...but you seem to believe that you have sockets." >&4 - else - for net in net socket - do - if test -f /usr/lib/lib$net$_a; then - ( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \ - $ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list - if $contains socket libc.list >/dev/null 2>&1; then - d_socket="$define" - socketlib="-l$net" - case "$net" in - net) - echo "...but the Wollongong group seems to have hacked it in." >&4 - sockethdr="-I/usr/netinclude" - ;; - esac - echo "Found Berkeley sockets interface in lib$net." >&4 - if $contains setsockopt libc.list >/dev/null 2>&1; then - d_oldsock="$undef" - else - echo "...using the old BSD 4.1c interface, rather than 4.2." >&4 - d_oldsock="$define" - fi - break - fi - fi - done - if test "X$d_socket" != "X$define"; then - echo "or anywhere else I see." >&4 - d_socket="$undef" - d_oldsock="$undef" + for net in net socket + do + if test -f $sysroot/usr/lib/lib$net$_a; then + ( ($nm $nm_opt $sysroot/usr/lib/lib$net$_a | eval $nm_extract) || \ + $ar t $sysroot/usr/lib/lib$net$_a) 2>/dev/null >> libc.list + if $contains socket libc.list >/dev/null 2>&1; then + d_socket="$define" + socketlib="-l$net" + case "$net" in + net) + echo "...but the Wollongong group seems to have hacked it in." >&4 + sockethdr="-I$sysroot/usr/netinclude" + ;; + esac + echo "Found Berkeley sockets interface in lib$net." >&4 + if $contains setsockopt libc.list >/dev/null 2>&1; then + d_oldsock="$undef" + else + echo "...using the old BSD 4.1c interface, rather than 4.2." >&4 + d_oldsock="$define" fi + break + fi fi + done + if test "X$d_socket" != "X$define"; then + echo "or anywhere else I see." >&4 + d_socket="$undef" + d_oldsock="$undef" + fi fi + fi fi : see if socketpair exists @@ -11311,7 +11595,7 @@ return (sa.sa_len); EOF val="$undef" set try; if eval $compile; then - val="$define" + val="$define" fi set d_sockaddr_sa_len; eval $setvar $rm_try @@ -11329,7 +11613,7 @@ return (sin6.sin6_family); EOF val="$undef" set try; if eval $compile; then - val="$define" + val="$define" fi set d_sockaddr_in6; eval $setvar $rm_try @@ -11347,7 +11631,7 @@ return (sin6.sin6_scope_id); EOF val="$undef" set try; if eval $compile; then - val="$define" + val="$define" fi set d_sin6_scope_id; eval $setvar $rm_try @@ -11401,7 +11685,7 @@ return (mreq.ipv6mr_interface); EOF val="$undef" set try; if eval $compile; then - val="$define" + val="$define" fi set d_ipv6_mreq; eval $setvar $rm_try @@ -11427,20 +11711,20 @@ $rm_try echo " " echo "Checking the availability of certain socket constants..." >&4 for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do - enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'` - $cat >try.c <try.c < #include int main() { int i = $ENUM; } EOF - val="$undef" - set try; if eval $compile; then - val="$define" - fi - set d_${enum}; eval $setvar - $rm_try + val="$undef" + set try; if eval $compile; then + val="$define" + fi + set d_${enum}; eval $setvar + $rm_try done : see if this is a sys/uio.h system @@ -12778,7 +13062,7 @@ EOCP echo "$startsh" >mtry echo "$run ./try >try.out 2>try.ret 4>try.err || exit 4" >>mtry chmod +x mtry - ./mtry >/dev/null 2>&1 + $run ./mtry >/dev/null 2>&1 case $? in 0) eagain=`$cat try.out`;; 1) echo "Could not perform non-blocking setting!";; @@ -18634,10 +18918,10 @@ esac : check for ordering of bytes in a UV echo " " -case "$usecrosscompile$multiarch" in +case "$multiarch" in *$define*) $cat <&4 - if $test "X$uselongdouble" = Xdefine -a "X$d_longdbl" = Xdefine; then - $cat >try.c <<'EOCP' +case "$alignbytes" in + '') echo "Checking alignment constraints..." >&4 + if $test "X$uselongdouble" = Xdefine -a "X$d_longdbl" = Xdefine; then + $cat >try.c <<'EOCP' typedef long double NV; EOCP - else - $cat >try.c <<'EOCP' + else + $cat >try.c <<'EOCP' typedef double NV; EOCP - fi - $cat >>try.c <<'EOCP' + fi + $cat >>try.c <<'EOCP' #include struct foobar { - char foo; - NV bar; + char foo; + NV bar; } try_algn; int main() { @@ -18970,35 +19243,32 @@ int main() return(0); } EOCP - set try - if eval $compile_ok; then - dflt=`$run ./try` - else - dflt='8' - echo "(I can't seem to compile the test program...)" + set try + if eval $compile_ok; then + dflt=`$run ./try` + else + dflt='8' + echo "(I can't seem to compile the test program...)" + fi + case "$multiarch" in + *$define*) + : The usual safe value is 8, but Darwin with -Duselongdouble + : needs 16. Hence, we will take 8 as a minimum, but allow + : Configure to pick a larger value if needed. + if $test "$dflt" -lt 8; then + dflt='8' + echo "Setting alignment to 8 for multiarch support.">&4 fi - case "$multiarch" in - *$define*) - : The usual safe value is 8, but Darwin with -Duselongdouble - : needs 16. Hence, we will take 8 as a minimum, but allow - : Configure to pick a larger value if needed. - if $test "$dflt" -lt 8; then - dflt='8' - echo "Setting alignment to 8 for multiarch support.">&4 - fi - ;; - esac - ;; - *) dflt="$alignbytes" ;; esac - rp="Doubles must be aligned on a how-many-byte boundary?" - . ./myread - alignbytes="$ans" - $rm_try + ;; + *) dflt="$alignbytes" ;; esac - +rp="Doubles must be aligned on a how-many-byte boundary?" +. ./myread +alignbytes="$ans" +$rm_try : set the base revision baserev=5.0 @@ -19404,7 +19674,7 @@ if $test "X$fflushNULL" = X -o "X$fflushall" = X; then output='' set try -DTRY_FPUTC if eval $compile; then - $run ./try 2>/dev/null + $run ./try 2>/dev/null code="$?" $from try.out if $test ! -s try.out -a "X$code" = X42; then @@ -19415,7 +19685,7 @@ if $test "X$fflushNULL" = X -o "X$fflushall" = X; then '') set try -DTRY_FPRINTF if eval $compile; then - $run ./try 2>/dev/null + $run ./try 2>/dev/null code="$?" $from try.out if $test ! -s try.out -a "X$code" = X42; then @@ -19429,7 +19699,7 @@ fi case "$fflushNULL" in '') set try -DTRY_FFLUSH_NULL $output if eval $compile; then - $run ./try 2>/dev/null + $run ./try 2>/dev/null code="$?" $from try.out if $test -s try.out -a "X$code" = X42; then @@ -19460,37 +19730,44 @@ main(int argc, char **argv) int i; char *bp = buf; while (1) { - while ((i = getc(stdin)) != -1 - && (*bp++ = i) != '\n' - && bp < &buf[1024]) - /* DO NOTHING */ ; - *bp = '\0'; - fprintf(stdout, "%s", buf); - fflush(NULL); - if (i == -1) + while ((i = getc(stdin)) != -1 + && (*bp++ = i) != '\n' + && bp < &buf[1024]) + /* DO NOTHING */ ; + *bp = '\0'; + fprintf(stdout, "%s", buf); + fflush(NULL); + if (i == -1) return 0; - bp = buf; + bp = buf; } } EOCP - fflushNULL="$define" - set tryp - if eval $compile; then - $rm -f 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 + else + $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out + fi + if cmp tryp.c tryp.out >/dev/null 2>&1; then + $cat >&4 <&4 <&4 </dev/null > tryp.out + if $test "X$targethost" != X; then + $to tryp.c + $to tryp + $run "cat tryp.c | ./tryp " 2>/dev/null > tryp.out + else + $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out + fi if cmp tryp.c tryp.out >/dev/null 2>&1; then $cat >&4 <' | $cppstdin $cppminus $cppflags 2>/dev/null | @@ -21908,50 +22191,50 @@ val="$undef" val2="$undef" val3="$undef" if $test `./findhdr termios.h`; then - set tcsetattr i_termios - eval $inlibc - val3="$i_termios" + set tcsetattr i_termios + eval $inlibc + val3="$i_termios" fi echo " " case "$val3" in -"$define") echo "You have POSIX termios.h... good!" >&4;; -*) if ./Cppsym pyr; then - case "`/bin/universe`" in + "$define") echo "You have POSIX termios.h... good!" >&4;; + *) if ./Cppsym pyr; then + case "`$run /bin/universe`" in ucb) if $test `./findhdr sgtty.h`; then - val2="$define" - echo " found." >&4 - else - echo "System is pyramid with BSD universe." - ./warn " not found--you could have problems." - fi;; - *) if $test `./findhdr termio.h`; then - val="$define" - echo " found." >&4 - else - echo "System is pyramid with USG universe." - ./warn " not found--you could have problems." - fi;; - esac - elif ./usg; then - if $test `./findhdr termio.h`; then - echo " found." >&4 - val="$define" - elif $test `./findhdr sgtty.h`; then - echo " found." >&4 val2="$define" - else - ./warn "Neither nor found--cross fingers!" - fi - else - if $test `./findhdr sgtty.h`; then echo " found." >&4 - val2="$define" - elif $test `./findhdr termio.h`; then - echo " found." >&4 + else + echo "System is pyramid with BSD universe." + ./warn " not found--you could have problems." + fi;; + *) if $test `./findhdr termio.h`; then val="$define" - else - ./warn "Neither nor found--cross fingers!" - fi + echo " found." >&4 + else + echo "System is pyramid with USG universe." + ./warn " not found--you could have problems." + fi;; + esac + elif ./usg; then + if $test `./findhdr termio.h`; then + echo " found." >&4 + val="$define" + elif $test `./findhdr sgtty.h`; then + echo " found." >&4 + val2="$define" + else + ./warn "Neither nor found--cross fingers!" + fi + else + if $test `./findhdr sgtty.h`; then + echo " found." >&4 + val2="$define" + elif $test `./findhdr termio.h`; then + echo " found." >&4 + val="$define" + else + ./warn "Neither nor found--cross fingers!" + fi fi;; esac set i_termio; eval $setvar @@ -22890,6 +23173,7 @@ d_killpg='$d_killpg' d_lchown='$d_lchown' d_ldbl_dig='$d_ldbl_dig' d_libm_lib_version='$d_libm_lib_version' +d_libname_unique='$d_libname_unique' d_link='$d_link' d_localtime64='$d_localtime64' d_localtime_r='$d_localtime_r' @@ -23218,6 +23502,9 @@ h_fcntl='$h_fcntl' h_sysfile='$h_sysfile' hint='$hint' hostcat='$hostcat' +hostgenerate='$hostgenerate' +hostosname='$hostosname' +hostperl='$hostperl' html1dir='$html1dir' html1direxp='$html1direxp' html3dir='$html3dir' @@ -23320,6 +23607,7 @@ ignore_versioned_solibs='$ignore_versioned_solibs' inc_version_list='$inc_version_list' inc_version_list_init='$inc_version_list_init' incpath='$incpath' +incpth='$incpth' inews='$inews' initialinstalllocation='$initialinstalllocation' installarchlib='$installarchlib' @@ -23587,9 +23875,16 @@ strings='$strings' submit='$submit' subversion='$subversion' sysman='$sysman' +sysroot='$sysroot' tail='$tail' tar='$tar' targetarch='$targetarch' +targetdir='$targetdir' +targetenv='$targetenv' +targethost='$targethost' +targetmkdir='$targetmkdir' +targetport='$targetport' +targetsh='$targetsh' tbl='$tbl' tee='$tee' test='$test'