Change 33872 by [EMAIL PROTECTED] on 2008/05/19 23:42:26 Integrate: [ 32647] Teach cflags.SH about -fstack-protector, and add it to gcc compiler flags when possible. [ 32667] Merge the duplicated code for the tests for -fno-strict-aliasing and -pipe into a new eval'd "function" checkccflag [ 32669] A new try at getting -fstack-protector working, by adding it to the gcc link flags so that any implementation dependant libraries are also linked in. [ 32670] Oops. Change 32669 didn't mean to add ssp to the libswanted list. [ 32671] char can be unsigned, so i8 needs to be signed char. [ 32705] Add a Configure probe for <assert.h> [ 32773] Sync after metaconfig backports. Some reorders were done [ 32795] Bring back the platforms that do not support -fstack-protector [ 32797] Missing test, adding $ to the other tests [ 32927] Intermediate re-gen for AndyA's dtrace work. More to come
Affected files ... ... //depot/maint-5.10/perl/Configure#4 integrate ... //depot/maint-5.10/perl/Cross/config.sh-arm-linux#2 integrate ... //depot/maint-5.10/perl/NetWare/config.wc#2 integrate ... //depot/maint-5.10/perl/NetWare/config_H.wc#2 integrate ... //depot/maint-5.10/perl/Porting/Glossary#2 integrate ... //depot/maint-5.10/perl/Porting/config.sh#2 integrate ... //depot/maint-5.10/perl/Porting/config_H#2 integrate ... //depot/maint-5.10/perl/cflags.SH#2 integrate ... //depot/maint-5.10/perl/config_h.SH#2 integrate ... //depot/maint-5.10/perl/configure.com#4 integrate ... //depot/maint-5.10/perl/epoc/config.sh#2 integrate ... //depot/maint-5.10/perl/plan9/config_h.sample#2 integrate ... //depot/maint-5.10/perl/plan9/config_sh.sample#2 integrate ... //depot/maint-5.10/perl/symbian/config.sh#2 integrate ... //depot/maint-5.10/perl/uconfig.h#2 integrate ... //depot/maint-5.10/perl/uconfig.sh#2 integrate ... //depot/maint-5.10/perl/win32/config.bc#2 integrate ... //depot/maint-5.10/perl/win32/config.ce#2 integrate ... //depot/maint-5.10/perl/win32/config.gc#2 integrate ... //depot/maint-5.10/perl/win32/config.vc#2 integrate ... //depot/maint-5.10/perl/win32/config.vc64#2 integrate ... //depot/maint-5.10/perl/win32/config_H.bc#2 integrate ... //depot/maint-5.10/perl/win32/config_H.ce#2 integrate ... //depot/maint-5.10/perl/win32/config_H.gc#2 integrate ... //depot/maint-5.10/perl/win32/config_H.vc#2 integrate ... //depot/maint-5.10/perl/win32/config_H.vc64#2 integrate Differences ... ==== //depot/maint-5.10/perl/Configure#4 (xtext) ==== Index: perl/Configure --- perl/Configure#3~33735~ 2008-04-23 10:26:40.000000000 -0700 +++ perl/Configure 2008-05-19 16:42:26.000000000 -0700 @@ -11,11 +11,10 @@ # Yes, you may rip this off to use in other distribution packages. This # script belongs to the public domain and cannot be copyrighted. # -# (Note: this Configure script was generated automatically. Rather than +# Note: this Configure script was generated automatically. Rather than # working with this copy of Configure, you may wish to get metaconfig. -# The dist-3.0 package (which contains metaconfig) was posted in -# comp.sources.misc and is available on CPAN under authors/id/RAM so -# you may fetch it yourself from your nearest archive site.) +# The dist package (which contains metaconfig) is available via SVN: +# svn co https://svn.sourceforge.net/svnroot/dist/trunk/dist # # # Though this script was generated by metaconfig, it is OK to send @@ -24,9 +23,9 @@ # See Porting/pumpkin.pod for more information on metaconfig. # -# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ +# $Id: Head.U 6 2006-08-25 22:21:46Z rmanfredi $ # -# Generated on Mon Oct 8 10:22:27 CEST 2007 [metaconfig 3.0 PL70] +# Generated on Wed Jan 9 22:02:14 CET 2008 [metaconfig 3.0 PL70] # (with additional metaconfig patches by [EMAIL PROTECTED]) cat >c1$$ <<EOF @@ -88,9 +87,9 @@ : Proper separator for the PATH environment variable p_=: -: On OS/2 this directory should exist if this is not floppy only system :-] +: On OS/2 this directory should exist if this is not floppy only system ":-]" if test -d c:/. || ( uname -a | grep -i 'os\(/\|\)2' ) 2>&1 >/dev/null ; then - if test -n "$OS2_SHELL"; then + if test -n "$OS2_SHELL"; then p_=\; PATH=`cmd /c "echo %PATH%" | tr '\\\\' / ` OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'` @@ -145,9 +144,9 @@ fi if test -f /osf_boot -a -f /usr/sbin/setld; then if test X`/usr/bin/uname -s` = XOSF1; then - avoidksh="to avoid Digital UNIX' ksh" - newsh=/bin/sh - unset BIN_SH # if this is 'xpg4' sh will start up ksh + avoidksh="to avoid Digital UNIX' ksh" + newsh=/bin/sh + unset BIN_SH fi fi case "$inksh/$needksh" in @@ -183,16 +182,17 @@ esac test -x "${newsh}" || unset newsh -: if needed set CDPATH to a harmless value that is not chatty +: if needed, set CDPATH to a harmless value that is not chatty : avoid bash 2.02 problems with empty CDPATH. case "$CDPATH" in '') ;; *) case "$SHELL" in - *bash*) CDPATH='.' ;; - *) CDPATH='' ;; + *bash*) CDPATH='.' ;; + *) CDPATH='' ;; esac ;; esac + : Configure runs within the UU subdirectory test -d UU || mkdir UU cd UU && rm -f ./* @@ -840,6 +840,7 @@ html3direxp='' installhtml3dir='' i_arpainet='' +i_assert='' i_crypt='' db_hashtype='' db_prefixtype='' @@ -1452,11 +1453,10 @@ fi rm -f sharp - : Save command line options in file UU/cmdline.opt for later use in : generating config.sh. cat > cmdline.opt <<EOSH -# Configure command line arguments. +: Configure command line arguments. config_arg0='$0' config_args='$*' config_argc=$# @@ -1468,7 +1468,6 @@ cat >>cmdline.opt <<EOSH config_arg$argn='$arg' EOSH - # Extreme backslashitis: replace each ' by '"'"' cat <<EOC | sed -e "s/'/'"'"'"'"'"'"'/g" > cmdl.opt $arg EOC @@ -1477,8 +1476,6 @@ argn=`expr $argn + 1` args_sep=' ' done -# args_exp is good for restarting self: eval "set X $args_exp"; shift; $0 "$@" -# used by ./hints/os2.sh rm -f cmdl.opt : produce awk script to parse command line options @@ -1610,7 +1607,7 @@ case "$zzz" in *:*) zzz='' ;; *) xxx=append - zzz=" "`echo "$yyy"|sed 's!^[^=]*=!!'` + zzz=" "`echo "$yyy"|sed 's!^[^=]*=!!'` yyy=`echo "$yyy"|sed 's!=.*!!'` ;; esac ;; @@ -1624,7 +1621,7 @@ *) xxx=`echo "$yyy"|sed 's!:.*!!'` yyy=`echo "$yyy"|sed 's!^[^:]*:!!'` ;; esac - ;; + ;; esac case "$xxx" in append) @@ -1975,8 +1972,8 @@ fi rm -f missing x?? -echo " " : Find the appropriate value for a newline for tr +echo " " if test -n "$DJGPP"; then trnl='\012' fi @@ -2120,6 +2117,7 @@ You may safely delete it if you wish. EOF +: See if we are using a devel version and want that xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` case "$usedevel" in $define|true|[yY]*) ;; @@ -2418,7 +2416,7 @@ ;; esac case "$make" in -make) +make) case "$gmake" in gmake) echo "I can't find make or gmake, and my life depends on it." >&4 @@ -2427,7 +2425,7 @@ ;; esac ;; -esac +esac case "$gmake" in gmake) ;; *) # We can't have osname yet. @@ -2496,6 +2494,7 @@ FOO +: Check what type of C compiler we use cat <<EOS >trygcc $startsh EOS @@ -2721,7 +2720,7 @@ ;; esac - +: Check for Cross-Compilation case "$usecrosscompile" in $define|true|[yY]*) $echo "Cross-compiling..." @@ -4035,7 +4034,7 @@ rp='Build Perl for SOCKS?' . ./myread case "$ans" in -y|Y) val="$define" ;; +y|Y) val="$define" ;; *) val="$undef" ;; esac set usesocks @@ -4146,12 +4145,13 @@ api_versionstring='5.005' fi +: Do we want threads support and if so, what type case "$usethreads" in $define|true|[yY]*) dflt='y';; *) # Catch case where user specified ithreads or 5005threads but # forgot -Dusethreads (A.D. 4/2002) case "$useithreads$use5005threads" in - *$define*) + *$define*) case "$useperlio" in "$define") dflt='y' ;; *) dflt='n' ;; @@ -4449,6 +4449,7 @@ fi . ./checkcc +: Check if we are using GNU gcc and what its version is echo " " echo "Checking for GNU cc in disguise and/or its version number..." >&4 $cat >try.c <<EOM @@ -4919,7 +4920,7 @@ xxx=$thisdir/lib$thislib.$so $test -f "$xxx" && eval $libscheck $test -f "$xxx" && libstyle=shared - fi + fi if test ! -f "$xxx"; then xxx=$thisdir/lib$thislib$_a $test -f "$xxx" && eval $libscheck @@ -4961,7 +4962,7 @@ ;; esac break - fi + fi done if $test ! -f "$xxx"; then echo "No -l$thislib." @@ -5045,6 +5046,32 @@ both|$define) dflt='-DDEBUGGING' esac +: argument order is deliberate, as the flag will start with - which set could +: think is an option +checkccflag='check=$1; flag=$2; callback=$3; +echo " "; +echo "Checking if your compiler accepts $flag" 2>&1; +echo "int main(void) { return 0; }" > gcctest.c; +if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && ./gcctest; then + echo "Yes, it does." 2>&1; + if $test -s gcctest.out ; then + echo "But your platform does not like it:"; + cat gcctest.out; + else + case "$ccflags" in + *$check*) + echo "Leaving current flags $ccflags alone." 2>&1 + ;; + *) dflt="$dflt $flag"; + eval $callback + ;; + esac + fi +else + echo "Nope, it does not, but that is ok." 2>&1; +fi +' + : We will not override a previous value, but we might want to : augment a hint file case "$hint" in @@ -5056,7 +5083,7 @@ *-g*:old) dflt="$dflt -DDEBUGGING";; esac case "$gccversion" in - 2*) if test -d /etc/conf/kconfig.d && + 2*) if $test -d /etc/conf/kconfig.d && $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 then # Interactive Systems (ISC) POSIX mode. @@ -5067,40 +5094,28 @@ case "$gccversion" in 1*) ;; 2.[0-8]*) ;; - ?*) echo " " - echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1 - echo 'int main(void) { return 0; }' > gcctest.c - if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then - echo "Yes, it does." 2>&1 - case "$ccflags" in - *strict-aliasing*) - echo "Leaving current flags $ccflags alone." 2>&1 - ;; - *) dflt="$dflt -fno-strict-aliasing" ;; - esac - else - echo "Nope, it doesn't, but that's ok." 2>&1 - fi + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag ;; esac # For gcc, adding -pipe speeds up compilations for some, but apparently # some assemblers can't read from stdin. (It also slows down compilations # in other cases, but those are apparently rarer these days.) AD 5/2004. case "$gccversion" in - ?*) echo " " - echo "Checking if your compiler accepts -pipe" 2>&1 - echo 'int main(void) { return 0; }' > gcctest.c - if $cc -pipe -o gcctest gcctest.c; then - echo "Yes, it does." 2>&1 - case "$ccflags" in - *-pipe*) - echo "Leaving current flags $ccflags alone." 2>&1 - ;; - *) dflt="$dflt -pipe" ;; - esac - else - echo "Nope, it doesn't, but that's ok." 2>&1 - fi + ?*) set pipe -pipe + eval $checkccflag + ;; + esac + + # on x86_64 (at least) we require an extra library (libssp) in the + # link command line. This library is not named, so I infer that it is + # an implementation detail that may change. Hence the safest approach + # is to add the flag to the flags passed to the compiler at link time, + # as that way the compiler can do the right implementation dependant + # thing. (NWC) + case "$gccversion" in + ?*) set stack-protector -fstack-protector 'ldflags="$ldflags -fstack-protector"' + eval $checkccflag ;; esac ;; @@ -5307,7 +5322,7 @@ EOM dflt=y if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then - if $sh -c "$run ./try" >>try.msg 2>&1; then + if $sh -c "$run ./try " >>try.msg 2>&1; then xxx=`$run ./try` case "$xxx" in "Ok") dflt=n ;; @@ -5356,7 +5371,7 @@ ;; n) echo "OK, that should do.";; esac -$rm_try +$rm_try gcctest gcctest.out : define a shorthand compile call compile=' @@ -5626,7 +5641,7 @@ set d_int64_t eval $setvar - +: Check if 64bit ints have a quad type echo " " echo "Checking which 64-bit integer type we could use..." >&4 @@ -5694,7 +5709,7 @@ EOM use64bitint="$define" ;; -esac +esac case "$use64bits" in "$define"|true|[yY]*) cat <<EOM >&4 @@ -5703,7 +5718,7 @@ EOM use64bitint="$define" ;; -esac +esac case "$use64bitints" in "$define"|true|[yY]*) cat <<EOM >&4 @@ -5712,7 +5727,7 @@ EOM use64bitint="$define" ;; -esac +esac case "$use64bitsint" in "$define"|true|[yY]*) cat <<EOM >&4 @@ -5721,7 +5736,7 @@ EOM use64bitint="$define" ;; -esac +esac case "$uselonglongs" in "$define"|true|[yY]*) cat <<EOM >&4 @@ -5730,7 +5745,7 @@ EOM use64bitint="$define" ;; -esac +esac case "$use64bitsall" in "$define"|true|[yY]*) cat <<EOM >&4 @@ -5739,7 +5754,7 @@ EOM use64bitall="$define" ;; -esac +esac case "$ccflags" in *-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";; @@ -5790,7 +5805,7 @@ *) dflt='n' ;; esac ;; -esac +esac cat <<EOM You may also choose to try maximal 64-bitness. It means using as much @@ -6362,6 +6377,7 @@ *) echo "Using $perl5." ;; esac +: Set the siteprefix variables $cat <<EOM After $package is installed, you may wish to install various @@ -6843,6 +6859,7 @@ d_sitearch="$define" fi +: Set the vendorprefix variables $cat <<EOM The installation process will also create a directory for @@ -6899,6 +6916,7 @@ ;; esac +: Set the vendorlib variables case "$vendorprefix" in '') d_vendorlib="$undef" vendorlib='' @@ -6929,6 +6947,7 @@ prefixvar=vendorlib . ./installprefix +: Set the vendorarch variables case "$vendorprefix" in '') d_vendorarch="$undef" vendorarch='' @@ -7012,6 +7031,7 @@ eval $setvar $rm -f prototype* +: Check if ansi2knr is required case "$prototype" in "$define") ;; *) ansi2knr='ansi2knr' @@ -7035,6 +7055,7 @@ ;; esac +: See if we want extra modules installed echo " " case "$extras" in '') dflt='n';; @@ -7176,6 +7197,7 @@ set installusrbinperl eval $setvar +: Check if we are using the GNU C library echo " " echo "Checking for GNU C Library..." >&4 cat >try.c <<'EOCP' @@ -7599,7 +7621,7 @@ set dld.h i_dld eval $inhdr - +: Check if we are using C++ echo " " echo "Checking for C++..." >&4 $cat >try.c <<'EOCP' @@ -9019,12 +9041,13 @@ set fpos_t fpostype long stdio.h sys/types.h eval $typedef_ask +: Check size for Fpos_t echo " " case "$fpostype" in *_t) zzz="$fpostype" ;; *) zzz="fpos_t" ;; esac -echo "Checking the size of $zzz..." >&4 +echo "Checking the size of $zzz..." >&4 cat > try.c <<EOCP #include <sys/types.h> #include <stdio.h> @@ -9057,6 +9080,7 @@ fpossize="$ans" fi +: Check for large file support # Backward compatibility (uselfs is deprecated). case "$uselfs" in "$define"|true|[yY]*) @@ -9170,6 +9194,7 @@ ;; esac +: Set the vendorbin variables case "$vendorprefix" in '') d_vendorbin="$undef" vendorbin='' @@ -9191,6 +9216,7 @@ prefixvar=vendorbin . ./installprefix +: Set the vendorhtml1dir variables case "$vendorprefix" in '') vendorhtml1dir='' vendorhtml1direxp='' @@ -9218,6 +9244,7 @@ prefixvar=vendorhtml1dir . ./installprefix +: Set the vendorhtml3dir variables case "$vendorprefix" in '') vendorhtml3dir='' vendorhtml3direxp='' @@ -9245,6 +9272,7 @@ prefixvar=vendorhtml3dir . ./installprefix +: Set the vendorman1dir variables case "$vendorprefix" in '') vendorman1dir='' vendorman1direxp='' @@ -9269,6 +9297,7 @@ prefixvar=vendorman1dir . ./installprefix +: Set the vendorman3dir variables case "$vendorprefix" in '') vendorman3dir='' vendorman3direxp='' @@ -9293,6 +9322,7 @@ prefixvar=vendorman3dir . ./installprefix +: Set the vendorscript variables case "$vendorprefix" in '') d_vendorscript="$undef" vendorscript='' @@ -9325,6 +9355,7 @@ set qgcvt d_qgcvt eval $inlibc +: Check print/scan long double stuff echo " " if $test X"$d_longdbl" = X"$define"; then @@ -10561,7 +10592,7 @@ val="$undef"; set i_stdarg; eval $setvar val="$undef"; set i_varargs; eval $setvar ;; -*) +*) set i_varhdr eval $setvar case "$i_varhdr" in @@ -11604,9 +11635,9 @@ } EOM : Call the object file tmp-dyna.o in case dlext=o. - 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 && + 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 && $to dyna.$dlext; then xxx=`$run ./fred` case $xxx in @@ -11624,7 +11655,7 @@ fi ;; esac - + $rm -f fred fred.* dyna.$dlext dyna.* tmp-dyna.* set d_dlsymun @@ -12751,8 +12782,8 @@ set fcntl d_fcntl eval $inlibc -echo " " : See if fcntl-based locking works. +echo " " $cat >try.c <<EOCP #$i_stdlib I_STDLIB #ifdef I_STDLIB @@ -13022,8 +13053,8 @@ 8) echo "(Your long is 64 bits, so you could use ftell.)" ;; esac -d_futimes="$undef" : check for a working futimes +d_futimes="$undef" echo " " echo "Checking if you have a working futimes()" >&4 $cat >try.c <<EOCP @@ -13300,7 +13331,7 @@ *define*) dflt=n cat <<EOM - + Every now and then someone has a $call() that lies about the hostname but can't be fixed for political or economic reasons. If you wish, I can pretend $call() isn't there and maybe compute hostname at run-time @@ -14660,10 +14691,10 @@ set math.h i_math eval $inhdr +: check to see if math.h defines _LIB_VERSION d_libm_lib_version="$undef" case $i_math in $define) - : check to see if math.h defines _LIB_VERSION echo " " echo "Checking to see if your libm supports _LIB_VERSION..." >&4 $cat >try.c <<EOCP @@ -15135,7 +15166,7 @@ eval $setvar $rm_try - +: Check basic sizes echo " " $echo "Choosing the C types to be used for Perl's internal types..." >&4 @@ -15192,7 +15223,7 @@ } EOCP -i8type=char +i8type="signed char" u8type="unsigned char" i8size=1 u8size=1 @@ -15561,6 +15592,7 @@ set readlink d_readlink eval $inlibc +: Check if exe is symlink to abs path of executing program echo " " procselfexe='' val="$undef" @@ -16943,8 +16975,8 @@ set d_shm eval $setvar -echo " " : see if we have sigaction +echo " " if set sigaction val -f d_sigaction; eval $csym; $val; then echo 'sigaction() found.' >&4 $cat > try.c <<EOP @@ -17358,6 +17390,7 @@ *) echo "No, it doesn't." ;; esac +: Check stream access $cat >&4 <<EOM Checking how to access stdio streams by file descriptor number... EOM @@ -17551,7 +17584,7 @@ #define strtoll _strtoll #endif #include <stdio.h> -extern long long int strtoll(char *s, char **, int); +extern long long int strtoll(char *s, char **, int); static int bad = 0; int check(char *s, long long ell, int een) { long long gll; @@ -17608,7 +17641,7 @@ $cat >try.c <<'EOCP' #include <errno.h> #include <stdio.h> -extern unsigned long int strtoul(char *s, char **, int); +extern unsigned long int strtoul(char *s, char **, int); static int bad = 0; void check(char *s, unsigned long eul, int een) { unsigned long gul; @@ -17691,7 +17724,7 @@ #define strtoull __strtoull #endif #include <stdio.h> -extern unsigned long long int strtoull(char *s, char **, int); +extern unsigned long long int strtoull(char *s, char **, int); static int bad = 0; int check(char *s, long long eull, int een) { long long gull; @@ -17745,7 +17778,7 @@ $cat >try.c <<'EOCP' #include <errno.h> #include <stdio.h> -extern unsigned long long int strtouq(char *s, char **, int); +extern unsigned long long int strtouq(char *s, char **, int); static int bad = 0; void check(char *s, unsigned long long eull, int een) { unsigned long long gull; @@ -17972,6 +18005,7 @@ set d_tzname eval $setvar +: Check if is a multiplatform env case "$osname" in next|rhapsody|darwin) multiarch="$define" ;; esac @@ -18062,6 +18096,7 @@ ;; esac +: Checking 32bit aligndness $cat <<EOM Checking to see whether you can access character data unalignedly... @@ -18686,6 +18721,7 @@ esac done +: Determine if this is an EBCDIC system echo " " echo "Determining whether or not we are on an EBCDIC system..." >&4 $cat >try.c <<'EOM' @@ -18713,6 +18749,7 @@ set ebcdic eval $setvar +: Check how to flush echo " " $cat >&4 <<EOM Checking how to flush all pending stdio output... @@ -19035,12 +19072,13 @@ ;; esac +: Check the size of GID echo " " case "$gidtype" in *_t) zzz="$gidtype" ;; *) zzz="gid" ;; esac -echo "Checking the size of $zzz..." >&4 +echo "Checking the size of $zzz..." >&4 cat > try.c <<EOCP #include <sys/types.h> #include <stdio.h> @@ -19070,12 +19108,13 @@ fi +: Check if GID is signed echo " " case "$gidtype" in *_t) zzz="$gidtype" ;; *) zzz="gid" ;; esac -echo "Checking the sign of $zzz..." >&4 +echo "Checking the sign of $zzz..." >&4 cat > try.c <<EOCP #include <sys/types.h> #include <stdio.h> @@ -19107,6 +19146,7 @@ fi +: Check 64bit sizes echo " " if $test X"$quadtype" != X; then @@ -19389,6 +19429,7 @@ *) groupstype="$gidtype";; esac +: MAD = Misc Attribute Definition if $test $patchlevel -lt 9; then : MAD is not available in 5.8.x or earlier. @@ -19736,7 +19777,7 @@ fi $rm -f foo* bar* -: check for type of arguments to select. +: check for type of arguments to select. case "$selecttype" in '') case "$d_select" in $define) @@ -19745,7 +19786,7 @@ Checking to see what type of arguments are accepted by select(). EOM hdrs="$define sys/types.h - $i_systime sys/time.h + $i_systime sys/time.h $i_sysselct sys/select.h $d_socket sys/socket.h" : The first arg can be int, unsigned, or size_t @@ -19905,11 +19946,11 @@ else xxx=`echo '#include <signal.h>' | $cppstdin $cppminus $cppflags 2>/dev/null | - $grep '^[ ]*#.*include' | + $grep '^[ ]*#.*include' | $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sed 's!\\\\\\\\!/!g' | $sort | $uniq` fi : Check this list of files to be sure we have parsed the cpp output ok. -: This will also avoid potentially non-existent files, such +: This will also avoid potentially non-existent files, such : as ../foo/bar.h xxxfiles='' for xx in $xxx /dev/null ; do @@ -20026,14 +20067,14 @@ if (sig_name[$2]) { dup_name[ndups] = $1 dup_num[ndups] = $2 - ndups++ + ndups++ } else { sig_name[$2] = $1 sig_num[$2] = $2 } } -END { +END { if (nsig == 0) { nsig = maxsig + 1 } @@ -20043,7 +20084,7 @@ printf("%s %d\n", sig_name[n], sig_num[n]) } else { - printf("NUM%d %d\n", n, n) + printf("NUM%d %d\n", n, n) } } for (n = 0; n < ndups; n++) { @@ -20163,14 +20204,15 @@ printf "\n" }' sig_size=`echo $sig_name | awk '{print NF}'` -$rm -f signal signal.c signal.awk signal.lst signal_cmd +$rm -f signal signal.c signal.awk signal.lst signal_cmd +: Check size of size echo " " case "$sizetype" in *_t) zzz="$sizetype" ;; *) zzz="filesize" ;; esac -echo "Checking the size of $zzz..." >&4 +echo "Checking the size of $zzz..." >&4 cat > try.c <<EOCP #include <sys/types.h> #include <stdio.h> @@ -20357,12 +20399,13 @@ ;; esac +: Check size of UID echo " " case "$uidtype" in *_t) zzz="$uidtype" ;; *) zzz="uid" ;; esac -echo "Checking the size of $zzz..." >&4 +echo "Checking the size of $zzz..." >&4 cat > try.c <<EOCP #include <sys/types.h> #include <stdio.h> @@ -20391,6 +20434,7 @@ echo "(I can't compile the test program--guessing $uidsize.)" >&4 fi +: Check if UID is signed echo " " case "$uidtype" in *_t) zzz="$uidtype" ;; @@ -20508,6 +20552,11 @@ ;; esac + +: see if this is a assert.h system +set assert.h i_assert +eval $inhdr + : see if this is a fp.h system set fp.h i_fp eval $inhdr @@ -20555,8 +20604,6 @@ i_machcthr="$undef" fi - - : see if this is a mntent.h system set mntent.h i_mntent eval $inhdr @@ -20636,6 +20683,7 @@ set prot.h i_prot eval $inhdr +: Preprocessor symbols echo " " $echo "Guessing which symbols your C compiler and preprocessor define..." >&4 $cat <<'EOSH' > Cppsym.know @@ -21019,6 +21067,7 @@ ;; esac +: Check extensions echo " " echo "Looking for extensions..." >&4 : If we are using the old config.sh, known_extensions may contain @@ -22097,6 +22146,7 @@ i8size='$i8size' i8type='$i8type' i_arpainet='$i_arpainet' +i_assert='$i_assert' i_bsdioctl='$i_bsdioctl' i_crypt='$i_crypt' i_db='$i_db' ==== //depot/maint-5.10/perl/Cross/config.sh-arm-linux#2 (text) ==== Index: perl/Cross/config.sh-arm-linux --- perl/Cross/config.sh-arm-linux#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/Cross/config.sh-arm-linux 2008-05-19 16:42:26.000000000 -0700 @@ -611,6 +611,7 @@ i8size='1' i8type='char' i_arpainet='define' +i_assert='define' i_bsdioctl='' i_crypt='define' i_db='undef' ==== //depot/maint-5.10/perl/NetWare/config.wc#2 (text) ==== Index: perl/NetWare/config.wc --- perl/NetWare/config.wc#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/NetWare/config.wc 2008-05-19 16:42:26.000000000 -0700 @@ -594,6 +594,7 @@ i8size='1' i8type='char' i_arpainet='define' +i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/NetWare/config_H.wc#2 (text) ==== Index: perl/NetWare/config_H.wc --- perl/NetWare/config_H.wc#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/NetWare/config_H.wc 2008-05-19 16:42:26.000000000 -0700 @@ -686,6 +686,12 @@ */ #define I_ARPA_INET /**/ +/* I_ASSERT: + * This symbol, if defined, indicates to the C program that it could + * include <assert.h> to get the assert() macro. + */ +#define I_ASSERT /**/ + /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should * be included. ==== //depot/maint-5.10/perl/Porting/Glossary#2 (text) ==== Index: perl/Porting/Glossary --- perl/Porting/Glossary#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/Porting/Glossary 2008-05-19 16:42:26.000000000 -0700 @@ -2824,6 +2824,11 @@ This variable conditionally defines the I_ARPA_INET symbol, and indicates whether a C program should include <arpa/inet.h>. +i_assert (i_assert.U): + This variable conditionally defines the I_ASSERT symbol, which + indicates to the C program that <assert.h> exists and could be + included. + i_bsdioctl (i_sysioctl.U): This variable conditionally defines the I_SYS_BSDIOCTL symbol, which indicates to the C program that <sys/bsdioctl.h> exists and should ==== //depot/maint-5.10/perl/Porting/config.sh#2 (text) ==== Index: perl/Porting/config.sh --- perl/Porting/config.sh#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/Porting/config.sh 2008-05-19 16:42:26.000000000 -0700 @@ -611,6 +611,7 @@ i8size='1' i8type='char' i_arpainet='define' +i_assert='define' i_bsdioctl='' i_crypt='define' i_db='define' ==== //depot/maint-5.10/perl/Porting/config_H#2 (text) ==== Index: perl/Porting/config_H --- perl/Porting/config_H#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/Porting/config_H 2008-05-19 16:42:26.000000000 -0700 @@ -640,6 +640,12 @@ */ #define I_ARPA_INET /**/ +/* I_ASSERT: + * This symbol, if defined, indicates to the C program that it could + * include <assert.h> to get the assert() macro. + */ +#define I_ASSERT /**/ + /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should * be included. ==== //depot/maint-5.10/perl/config_h.SH#2 (text) ==== Index: perl/config_h.SH --- perl/config_h.SH#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/config_h.SH 2008-05-19 16:42:26.000000000 -0700 @@ -700,12 +700,6 @@ */ #$i_memory I_MEMORY /**/ -/* I_NET_ERRNO: - * This symbol, if defined, indicates that <net/errno.h> exists and - * should be included. - */ -#$i_neterrno I_NET_ERRNO /**/ - /* I_NETINET_IN: * This symbol, if defined, indicates to the C program that it should * include <netinet/in.h>. Otherwise, you may try <sys/in.h>. @@ -1784,7 +1778,7 @@ * doubles. */ /* LONG_DOUBLESIZE: - * This symbol contains the size of a long double, so that the + * This symbol contains the size of a long double, so that the * C preprocessor can make decisions based on it. It is only * defined if the system supports long doubles. */ @@ -1797,7 +1791,7 @@ * This symbol will be defined if the C compiler supports long long. */ /* LONGLONGSIZE: - * This symbol contains the size of a long long, so that the + * This symbol contains the size of a long long, so that the * C preprocessor can make decisions based on it. It is only * defined if the system supports long long. */ @@ -1869,7 +1863,7 @@ #$d_pthread_atfork HAS_PTHREAD_ATFORK /**/ /* HAS_PTHREAD_YIELD: - * This symbol, if defined, indicates that the pthread_yield + * This symbol, if defined, indicates that the pthread_yield * routine is available to yield the execution of the current * thread. sched_yield is preferable to pthread_yield. */ @@ -2361,8 +2355,8 @@ * This symbol holds the type used for the second argument to * getgroups() and setgroups(). Usually, this is the same as * gidtype (gid_t) , but sometimes it isn't. - * It can be int, ushort, gid_t, etc... - * It may be necessary to include <sys/types.h> to get any + * It can be int, ushort, gid_t, etc... + * It may be necessary to include <sys/types.h> to get any * typedef'ed information. This is only required if you have * getgroups() or setgroups().. */ @@ -2419,6 +2413,12 @@ */ #$i_netdb I_NETDB /**/ +/* I_NET_ERRNO: + * This symbol, if defined, indicates that <net/errno.h> exists and + * should be included. + */ +#$i_neterrno I_NET_ERRNO /**/ + /* I_PTHREAD: * This symbol, if defined, indicates to the C program that it should * include <pthread.h>. @@ -2551,7 +2551,7 @@ #$d_mymalloc MYMALLOC /**/ /* Mode_t: - * This symbol holds the type used to declare file modes + * This symbol holds the type used to declare file modes * for systems calls. It is usually mode_t, but may be * int or unsigned short. It may be necessary to include <sys/types.h> * to get any typedef'ed information. @@ -2630,7 +2630,7 @@ /* Select_fd_set_t: * This symbol holds the type used for the 2nd, 3rd, and 4th * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET - * is defined, and 'int *' otherwise. This is only useful if you + * is defined, and 'int *' otherwise. This is only useful if you * have select(), of course. */ #define Select_fd_set_t $selecttype /**/ @@ -2667,10 +2667,10 @@ * The signals in the list are separated with commas, and the indices * within that list and the SIG_NAME list match, so it's easy to compute * the signal name from a number or vice versa at the price of a small - * dynamic linear lookup. + * dynamic linear lookup. * Duplicates are allowed, but are moved to the end of the list. * The signal number corresponding to sig_name[i] is sig_number[i]. - * if (i < NSIG) then sig_number[i] == i. + * if (i < NSIG) then sig_number[i] == i. * The last element is 0, corresponding to the 0 at the end of * the sig_name_init list. * Note that this variable is initialized from the sig_num_init, @@ -2887,11 +2887,11 @@ * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture * Binaries (MAB) on either big endian or little endian machines. * The endian-ness is available at compile-time. This only matters - * for perl, where the config.h can be generated and installed on + * for perl, where the config.h can be generated and installed on * one system, and used by a different architecture to build an * extension. Older versions of NeXT that might not have * defined either *_ENDIAN__ were all on Motorola 680x0 series, - * so the default case (for NeXT) is big endian to catch them. + * so the default case (for NeXT) is big endian to catch them. * This might matter for NeXT 3.0. */ #if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) @@ -2979,7 +2979,7 @@ #$d_getpagsz HAS_GETPAGESIZE /**/ /* HAS_GNULIBC: - * This symbol, if defined, indicates to the C program that + * This symbol, if defined, indicates to the C program that * the GNU C library is being used. A better check is to use * the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc. */ @@ -2988,7 +2988,7 @@ # define _GNU_SOURCE #endif /* HAS_ISASCII: - * This manifest constant lets the C program know that isascii + * This manifest constant lets the C program know that isascii * is available. */ #$d_isascii HAS_ISASCII /**/ @@ -4019,6 +4019,12 @@ #$fflushNULL FFLUSH_NULL /**/ #$fflushall FFLUSH_ALL /**/ +/* I_ASSERT: + * This symbol, if defined, indicates that <assert.h> exists and + * could be included by the C program to get the assert() macro. + */ +#$i_assert I_ASSERT /**/ + /* I_CRYPT: * This symbol, if defined, indicates that <crypt.h> exists and * should be included. ==== //depot/maint-5.10/perl/configure.com#4 (text) ==== Index: perl/configure.com --- perl/configure.com#3~33730~ 2008-04-22 12:22:09.000000000 -0700 +++ perl/configure.com 2008-05-19 16:42:26.000000000 -0700 @@ -6146,6 +6146,7 @@ $ WC "i8size='" + i8size + "'" $ WC "i8type='" + i8type + "'" $ WC "i_arpainet='undef'" +$ WC "i_assert='define'" $ WC "i_crypt='undef'" $ WC "i_db='undef'" $ WC "i_dbm='undef'" ==== //depot/maint-5.10/perl/epoc/config.sh#2 (text) ==== Index: perl/epoc/config.sh --- perl/epoc/config.sh#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/epoc/config.sh 2008-05-19 16:42:26.000000000 -0700 @@ -557,6 +557,7 @@ hint='' hostcat='' i_arpainet='define' +i_assert='define' i_bsdioctl='undef' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/plan9/config_h.sample#2 (text) ==== Index: perl/plan9/config_h.sample --- perl/plan9/config_h.sample#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/plan9/config_h.sample 2008-05-19 16:42:26.000000000 -0700 @@ -654,6 +654,12 @@ */ #define I_ARPA_INET /**/ +/* I_ASSERT: + * This symbol, if defined, indicates to the C program that it could + * include <assert.h> to get the assert() macro. + */ +#define I_ASSERT /**/ + /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should * be included. ==== //depot/maint-5.10/perl/plan9/config_sh.sample#2 (text) ==== Index: perl/plan9/config_sh.sample --- perl/plan9/config_sh.sample#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/plan9/config_sh.sample 2008-05-19 16:42:26.000000000 -0700 @@ -605,6 +605,7 @@ i8size='1' i8type='char' i_arpainet='define' +i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/symbian/config.sh#2 (text) ==== Index: perl/symbian/config.sh --- perl/symbian/config.sh#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/symbian/config.sh 2008-05-19 16:42:26.000000000 -0700 @@ -532,6 +532,7 @@ i8size='1' i8type='char' i_arpainet='undef' +i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/uconfig.h#2 (text+w) ==== Index: perl/uconfig.h --- perl/uconfig.h#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/uconfig.h 2008-05-19 16:42:26.000000000 -0700 @@ -627,7 +627,13 @@ * This symbol, if defined, indicates to the C program that it should * include <arpa/inet.h> to get inet_addr and friends declarations. */ -/*#define I_ARPA_INET / **/ +#define I_ARPA_INET /**/ + +/* I_ASSERT: + * This symbol, if defined, indicates to the C program that it could + * include <assert.h> to get the assert() macro. + */ +#define I_ASSERT /**/ /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should ==== //depot/maint-5.10/perl/uconfig.sh#2 (xtext) ==== Index: perl/uconfig.sh --- perl/uconfig.sh#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/uconfig.sh 2008-05-19 16:42:26.000000000 -0700 @@ -518,6 +518,7 @@ i8size='1' i8type='char' i_arpainet='undef' +i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/win32/config.bc#2 (text) ==== Index: perl/win32/config.bc --- perl/win32/config.bc#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config.bc 2008-05-19 16:42:26.000000000 -0700 @@ -599,6 +599,7 @@ i8size='1' i8type='char' i_arpainet='define' +i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/win32/config.ce#2 (text) ==== Index: perl/win32/config.ce --- perl/win32/config.ce#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config.ce 2008-05-19 16:42:26.000000000 -0700 @@ -592,6 +592,7 @@ i8size='1' i8type='char' i_arpainet='define' +i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/win32/config.gc#2 (text) ==== Index: perl/win32/config.gc --- perl/win32/config.gc#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config.gc 2008-05-19 16:42:26.000000000 -0700 @@ -599,6 +599,7 @@ i8size='1' i8type='char' i_arpainet='define' +i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/win32/config.vc#2 (text) ==== Index: perl/win32/config.vc --- perl/win32/config.vc#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config.vc 2008-05-19 16:42:26.000000000 -0700 @@ -599,6 +599,7 @@ i8size='1' i8type='char' i_arpainet='define' +i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/win32/config.vc64#2 (text) ==== Index: perl/win32/config.vc64 --- perl/win32/config.vc64#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config.vc64 2008-05-19 16:42:26.000000000 -0700 @@ -599,6 +599,7 @@ i8size='1' i8type='char' i_arpainet='define' +i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' ==== //depot/maint-5.10/perl/win32/config_H.bc#2 (text+w) ==== Index: perl/win32/config_H.bc --- perl/win32/config_H.bc#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config_H.bc 2008-05-19 16:42:26.000000000 -0700 @@ -635,6 +635,12 @@ */ #define I_ARPA_INET /**/ +/* I_ASSERT: + * This symbol, if defined, indicates to the C program that it could + * include <assert.h> to get the assert() macro. + */ +#define I_ASSERT /**/ + /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should * be included. ==== //depot/maint-5.10/perl/win32/config_H.ce#2 (text) ==== Index: perl/win32/config_H.ce --- perl/win32/config_H.ce#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config_H.ce 2008-05-19 16:42:26.000000000 -0700 @@ -636,6 +636,12 @@ */ #define I_ARPA_INET /**/ +/* I_ASSERT: + * This symbol, if defined, indicates to the C program that it could + * include <assert.h> to get the assert() macro. + */ +#define I_ASSERT /**/ + /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should * be included. ==== //depot/maint-5.10/perl/win32/config_H.gc#2 (text+w) ==== Index: perl/win32/config_H.gc --- perl/win32/config_H.gc#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config_H.gc 2008-05-19 16:42:26.000000000 -0700 @@ -635,6 +635,12 @@ */ #define I_ARPA_INET /**/ +/* I_ASSERT: + * This symbol, if defined, indicates to the C program that it could + * include <assert.h> to get the assert() macro. + */ +#define I_ASSERT /**/ + /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should * be included. ==== //depot/maint-5.10/perl/win32/config_H.vc#2 (text+w) ==== Index: perl/win32/config_H.vc --- perl/win32/config_H.vc#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config_H.vc 2008-05-19 16:42:26.000000000 -0700 @@ -635,6 +635,12 @@ */ #define I_ARPA_INET /**/ +/* I_ASSERT: + * This symbol, if defined, indicates to the C program that it could + * include <assert.h> to get the assert() macro. + */ +#define I_ASSERT /**/ + /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should * be included. ==== //depot/maint-5.10/perl/win32/config_H.vc64#2 (text) ==== Index: perl/win32/config_H.vc64 --- perl/win32/config_H.vc64#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/win32/config_H.vc64 2008-05-19 16:42:26.000000000 -0700 @@ -635,6 +635,12 @@ */ #define I_ARPA_INET /**/ +/* I_ASSERT: + * This symbol, if defined, indicates to the C program that it could + * include <assert.h> to get the assert() macro. + */ +#define I_ASSERT /**/ + /* I_DBM: * This symbol, if defined, indicates that <dbm.h> exists and should * be included. End of Patch.