From: Larry Wall Date: Fri, 10 Nov 1989 16:10:36 +0000 (+0000) Subject: perl 3.0 patch #2 (combined patch) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=91407755d9b894ac1239c4fafe586e52138db38d;p=p5sagit%2Fp5-mst-13.2.git perl 3.0 patch #2 (combined patch) The metaconfig problem with pw_* fields has been fixed. When you specify extra libraries to link in, Configure now uses those libraries as well as libc to look for the functions that are available. From the ccflags you give it now derives the corresponding flags for the C preprocessor. And it has better support for the Gnu C preprocessor. Configure now detects USGness by the behavior of the tr program. If USGness isn't found, then SIGTSTP determines BSDness. The define of DEBUGGING has been taken out of perl.h and a2p.h. If you want debugging you have to add -DDEBUGGING in a cc flag. If you give an optimizer flag of -g, you get DEBUGGING as a default. Machines like the Cray have longs longer than 4 bytes. There is now support for that. Some machines have csh in other places than /bin. Configure now figures out where it is. Configure now supports Wollongong sockets and knows about /usr/netinclude and /usr/lib/libnet.a. Configure now gets sig names directly from signal.h if possible, and only if that fails does it try to use kill -l. The $sockethdr variable has been incorporated into $ccflags Non-BSD machines required two ^D's to exit while (<>) { ... } This has been fixed, I believe, though I can't test it here. It's now possible to compile perl without the DEBUGGING code. It runs about 10% faster when you take the code out. Configure now discovers if includes , or whether perl must include it itself. Configure now finds the wait4() routine if available. '-' x 26 made warnings about undefined value because of a bug in evalstatic(). (Non-static 'x' didn't have the problem.) A local list consisting of nothing but an array didn't work right. Now it does. A printf %c omitted the format string between the preceeding % field and the %c. Code to printf %D, %X and %O was misplaced. Some machines complain about printing signed values with unsigned format specifiers like %x. The unsigned specifiers now have a separate cast from the signed specifiers like %d. The various file modes were not orthogonal. Now you can use any of: < > >> +< +> +>> <& >& >>& +<& +>& +>>& Perl can now detect when a parent process passes in a socket so that you can write reasonable inetd servers. File descriptors above 2 are now closed on exec, either by using the fcntl(), or if unavailable, brute force closing in a loop. The return values of getsockopt(), getsockname() and getpeername() were always undefined. There were several places where a warn("shutdown") had to be changed to some other function name. The C routine gethostbyname() was misdeclared as gethostbynam(). telldir() is sometimes a macro, so we can't declare its return value if it's defined. Components of a slice corresponding to non-existent index elements are now undefined rather than just null. The mkdir and rmdir function will call the mkdir and rmdir programs if the corresponding system calls aren't available. The name of the directory was not quoted properly however. Also, some attempt is now made to translate the odd messages that some mkdirs and rmdir return into reasonable error codes. As a final check for mkdir programs that return NO useful status, a stat is done following the mkdir or rmdir to make sure the directory is really there or gone. The fileno, seekdir, rewinddir and closedir functions now specifically disallow defaults and return undef. Previously they would just crash perl. CX/UX needs to set the key each time when iterating over associative arrays due to a non-standard dbm_nextkey() function. The lib/getopts.pl routine needed to shift @ARGV explicitly in several spots. The malloc pointer corruption check was made more portable by just checking for alignment errors. It also is removed if DEBUGGING is not enabled. The include of needed to be moved down below the include of for some machines. Not all machines declare the yydebug variable as the same type. The reference to yydebug was moved to perl.y where it doesn't care. I documented that a space must separate any word and a subsequent single-quoted string because of package name prefixes. Some long lines were broken for nroff, but not for troff. One example of unshift in the manual had its arguments backwards. I clarified that operation of ^ and $ on multiline strings when $* is false is somewhat inconsistent. People were forced to say !($foo++) when !$foo++ should be legal. None of the unary operators correctly handled their default arguments because of a screw-up in the parser actions. /[\000]/ never matched a null due to some left over non-binary-ness of perl 2.0. /\b$foo/ gave up too early in trying to match at the end of a string. sys_nerr was being used as the maximum error message number, when in fact it's the maximum+1. The identifier "uchar" is a typedef on Crays, so the variable of that name was changed to "unchar". The TEST program tried to run patch reject files. The reject files are now rejected by TEST. One test failed on picky systems because it referred to a filename longer than 14 chars. The op.split test assumed that the perl -D switch was available, when in fact it's only available if perl was compiled with DEBUGGING. Some header file somewhere defined macro CLINE, which conflicted with toke.c's CLINE macro. In s2p, + within patterns needed backslashing because + isn't a metacharacter for sed. s2p was also printing out some debugging info to the output file. In a2p, an awk script with no line actions didn't make a main loop, but it needs one to keep the awk semantics. --- diff --git a/Configure b/Configure index a3aeb9b..f5a7fc6 100755 --- a/Configure +++ b/Configure @@ -8,7 +8,7 @@ # and edit it to reflect your system. Some packages may include samples # of config.h for certain machines, so you might look for one of those.) # -# $Header: Configure,v 3.0.1.1 89/10/26 22:58:02 lwall Locked $ +# $Header: Configure,v 3.0.1.2 89/11/11 04:05:37 lwall Locked $ # # Yes, you may rip this off to use in other distribution packages. # (Note: this Configure script was generated automatically. Rather than @@ -39,8 +39,8 @@ case "$1" in esac d_eunice='' -eunicefix='' define='' +eunicefix='' loclist='' expr='' sed='' @@ -91,6 +91,7 @@ lp='' touch='' make='' date='' +csh='' Log='' Header='' bin='' @@ -103,6 +104,7 @@ d_bcopy='' d_charsprf='' d_crypt='' cryptlib='' +d_csh='' d_dosuid='' d_dup2='' d_fchmod='' @@ -139,7 +141,6 @@ d_socket='' d_sockpair='' d_oldsock='' socketlib='' -sockethdr='' d_statblks='' d_stdstdio='' d_strctcpy='' @@ -147,11 +148,13 @@ d_symlink='' d_syscall='' d_tminsys='' i_systime='' +i_timetoo='' d_varargs='' d_vfork='' d_voidsig='' d_vprintf='' d_charvspr='' +d_wait4='' gidtype='' i_dirent='' d_dirnamlen='' @@ -161,14 +164,15 @@ i_niin='' i_pwd='' d_pwquota='' d_pwage='' +d_pwchange='' +d_pwclass='' +d_pwexpire='' i_sysdir='' i_sysioctl='' i_varargs='' i_vfork='' intsize='' libc='' -libdbm='' -libndir='' libnm='' mallocsrc='' mallocobj='' @@ -183,6 +187,7 @@ large='' huge='' optimize='' ccflags='' +cppflags='' ldflags='' cc='' libs='' @@ -230,7 +235,7 @@ fi echo "First let's make sure your kit is complete. Checking..." (cd ..; awk '' `awk '$1 !~ /PACKINGLIST/ {print $1}' MANIFEST` >/dev/null || kill $$) -echo " " +echo "Looks good..." attrlist="mc68000 sun gcos unix ibm gimpel interdata tss os mert pyr" attrlist="$attrlist vax pdp11 i8086 z8000 u3b2 u3b5 u3b20 u3b200" @@ -242,6 +247,7 @@ attrlist="$attrlist i186" pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /usr/plx /usr/5bin /vol/local/bin /etc /usr/lib /lib /usr/local/lib /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/bin /bsd4.3/usr/ucb" d_newshome="/usr/NeWS" defvoidused=7 +libswanted="net nm ndir ndbm dbm c_s" : some greps do not return status, grrr. echo "grimblepritz" >grimble @@ -264,6 +270,66 @@ EOSS chmod +x contains esac +: see if sh knows # comments +echo " " +echo "Checking your sh to see if it knows about # comments..." +if sh -c '#' >/dev/null 2>&1 ; then + echo "Your sh handles # comments correctly." + shsharp=true + spitshell=cat + echo " " + echo "Okay, let's see if #! works on this system..." + echo "#!/bin/echo hi" > try + $eunicefix try + chmod +x try + try > today + if $contains hi today >/dev/null 2>&1; then + echo "It does." + sharpbang='#!' + else + echo "#! /bin/echo hi" > try + $eunicefix try + chmod +x try + try > today + if test -s today; then + echo "It does." + sharpbang='#! ' + else + echo "It doesn't." + sharpbang=': use ' + fi + fi +else + echo "Your sh doesn't grok # comments--I will strip them later on." + shsharp=false + echo "exec grep -v '^#'" >spitshell + chmod +x spitshell + $eunicefix spitshell + spitshell=`pwd`/spitshell + echo "I presume that if # doesn't work, #! won't work either!" + sharpbang=': use ' +fi + +: figure out how to guarantee sh startup +echo " " +echo "Checking out how to guarantee sh startup..." +startsh=$sharpbang'/bin/sh' +echo "Let's see if '$startsh' works..." +cat >try <.echotmp @@ -423,6 +489,7 @@ uniq trylist=" Mcc cpp +csh egrep test " @@ -512,221 +579,6 @@ FOO esac rmlist="$rmlist loc" -: get list of predefined functions in a handy place -echo " " -set /usr/lib/libc.so.[0-9]* -eval set \$$# -if test -f "$1"; then - echo "Your shared C library is in $1." - libc="$1" -elif test -f /lib/libc.a; then - echo "Your C library is in /lib/libc.a. You're normal." - libc=/lib/libc.a -else - ans=`loc libc.a blurfl/dyick $libpth` - if test ! -f "$ans"; then - ans=`loc clib blurfl/dyick $libpth` - fi - if test ! -f "$ans"; then - ans=`loc libc blurfl/dyick $libpth` - fi - if test ! -f "$ans"; then - ans=`loc Slibc.a blurfl/dyick /usr/lib/386 /lib/386 $libpth` - fi - if test ! -f "$ans"; then - ans=`loc Mlibc.a blurfl/dyick $libpth` - fi - if test ! -f "$ans"; then - ans=`loc Llibc.a blurfl/dyick $libpth` - fi - if test -f "$ans"; then - echo "Your C library is in $ans, of all places." - libc=$ans - else - if test -f "$libc"; then - echo "Your C library is in $libc, like you said before." - else - cat </dev/null >libc.tmp -$sed -n -e 's/^.* [AT] *_[_.]*//p' -e 's/^.* [AT] //p' libc.list -if $contains '^printf$' libc.list >/dev/null 2>&1; then - echo "done" -else - $sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p' libc.list - $contains '^printf$' libc.list >/dev/null 2>&1 || \ - $sed -n -e 's/^.* D __*//p' -e 's/^.* D //p' libc.list - $contains '^printf$' libc.list >/dev/null 2>&1 || \ - $sed -n -e 's/^_//' \ - -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p' libc.list - if $contains '^printf$' libc.list >/dev/null 2>&1; then - echo "done" - else - echo " " - echo "nm didn't seem to work right." - echo "Trying ar instead..." - if ar t $libc > libc.tmp; then - $sed -e 's/\.o$//' < libc.tmp > libc.list - echo "Ok." - else - echo "ar didn't seem to work right." - echo "Maybe this is a Cray...trying bld instead..." - if bld t $libc | $sed -e 's/.*\///' -e 's/\.o:.*$//' > libc.list; then - echo "Ok." - else - echo "That didn't work either. Giving up." - exit 1 - fi - fi - fi -fi - -inlibc='echo " "; -if $contains "^$1\$" libc.list >/dev/null 2>&1; -then echo "$1() found"; eval "$2=$define"; -else echo "$1() not found"; eval "$2=$undef"; fi' - -rmlist="$rmlist libc.tmp libc.list" - -: make some quick guesses about what we are up against -echo " " -$echo $n "Hmm... $c" -cat /usr/include/signal.h /usr/include/sys/signal.h >foo -if $contains SIGTSTP foo >/dev/null 2>&1 ; then - echo "Looks kind of like a BSD system, but we'll see..." - echo exit 0 >bsd - echo exit 1 >usg - echo exit 1 >v7 -elif $contains '^fcntl$' libc.list >/dev/null 2>&1 ; then - echo "Looks kind of like a USG system, but we'll see..." - echo exit 1 >bsd - echo exit 0 >usg - echo exit 1 >v7 -else - echo "Looks kind of like a version 7 system, but we'll see..." - echo exit 1 >bsd - echo exit 1 >usg - echo exit 0 >v7 -fi -if $contains '^vmssystem$' libc.list >/dev/null 2>&1 ; then - cat <<'EOI' -There is, however, a strange, musty smell in the air that reminds me of -something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. -EOI - echo "exit 0" >eunice - eunicefix=unixtovms - d_eunice="$define" -: it so happens the Eunice I know will not run shell scripts in Unix format -else - echo " " - echo "Congratulations. You aren't running Eunice." - eunicefix=':' - d_eunice="$undef" - echo "exit 1" >eunice -fi -if test -f /xenix; then - echo "Actually, this looks more like a XENIX system..." - echo "exit 0" >xenix -else - echo " " - echo "It's not Xenix..." - echo "exit 1" >xenix -fi -chmod +x xenix -$eunicefix xenix -if test -f /venix; then - echo "Actually, this looks more like a VENIX system..." - echo "exit 0" >venix -else - echo " " - if xenix; then - : null - else - echo "Nor is it Venix..." - fi - echo "exit 1" >venix -fi -chmod +x bsd usg v7 eunice venix -$eunicefix bsd usg v7 eunice venix -rm -rf foo -rmlist="$rmlist bsd usg v7 eunice venix xenix" - -: see if sh knows # comments -echo " " -echo "Checking your sh to see if it knows about # comments..." -if sh -c '#' >/dev/null 2>&1 ; then - echo "Your sh handles # comments correctly." - shsharp=true - spitshell=cat - echo " " - echo "Okay, let's see if #! works on this system..." - echo "#!/bin/echo hi" > try - $eunicefix try - chmod +x try - try > today - if $contains hi today >/dev/null 2>&1; then - echo "It does." - sharpbang='#!' - else - echo "#! /bin/echo hi" > try - $eunicefix try - chmod +x try - try > today - if test -s today; then - echo "It does." - sharpbang='#! ' - else - echo "It doesn't." - sharpbang=': use ' - fi - fi -else - echo "Your sh doesn't grok # comments--I will strip them later on." - shsharp=false - echo "exec grep -v '^#'" >spitshell - chmod +x spitshell - $eunicefix spitshell - spitshell=`pwd`/spitshell - echo "I presume that if # doesn't work, #! won't work either!" - sharpbang=': use ' -fi - -: figure out how to guarantee sh startup -echo " " -echo "Checking out how to guarantee sh startup..." -startsh=$sharpbang'/bin/sh' -echo "Let's see if '$startsh' works..." -cat >try <filexp <foo +if test `echo abc | tr a-z A-Z` = Abc ; then + echo "Looks kind of like a USG system, but we'll see..." + echo exit 1 >bsd + echo exit 0 >usg + echo exit 1 >v7 +elif $contains SIGTSTP foo >/dev/null 2>&1 ; then + echo "Looks kind of like a BSD system, but we'll see..." + echo exit 0 >bsd + echo exit 1 >usg + echo exit 1 >v7 +else + echo "Looks kind of like a version 7 system, but we'll see..." + echo exit 1 >bsd + echo exit 1 >usg + echo exit 0 >v7 +fi +case "$eunicefix" in +*unixtovms*) + cat <<'EOI' +There is, however, a strange, musty smell in the air that reminds me of +something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. +EOI + echo "exit 0" >eunice + d_eunice="$define" + ;; +*) + echo " " + echo "Congratulations. You aren't running Eunice." + d_eunice="$undef" + echo "exit 1" >eunice + ;; +esac +if test -f /xenix; then + echo "Actually, this looks more like a XENIX system..." + echo "exit 0" >xenix +else + echo " " + echo "It's not Xenix..." + echo "exit 1" >xenix +fi +chmod +x xenix +$eunicefix xenix +if test -f /venix; then + echo "Actually, this looks more like a VENIX system..." + echo "exit 0" >venix +else + echo " " + if xenix; then + : null + else + echo "Nor is it Venix..." + fi + echo "exit 1" >venix +fi +chmod +x bsd usg v7 eunice venix +$eunicefix bsd usg v7 eunice venix +rm -rf foo +rmlist="$rmlist bsd usg v7 eunice venix xenix" + : see what memory models we can support case "$models" in '') @@ -1078,6 +993,7 @@ case "$optimize" in ;; esac cat <try.c <<'EOCP' #include @@ -1175,17 +1161,19 @@ main() int i; union { unsigned long l; - char c[4]; + char c[8]; } u; - u.l = 0x04030201; - printf("%c%c%c%c\n", u.c[0]+'0', u.c[1]+'0', u.c[2]+'0', u.c[3]+'0'); + u.l = 0x0807060504030201; + for (i=0; i < sizeof(long); i++) + printf("%c",u.c[i]+'0'); + printf("\n"); } EOCP if $cc try.c -o try >/dev/null 2>&1 ; then dflt=`try` case "$dflt" in - ????) echo "(The test program ran ok.)";; + ????|????????) echo "(The test program ran ok.)";; *) echo "(The test program didn't run right for some reason.)";; esac else @@ -1214,6 +1202,23 @@ ABC.XYZ EOT echo 'Maybe "'"$cc"' -E" will work...' $cc -E testcpp.out 2>&1 +: try to force gcc preprocessor if that is the compiler they are using +case $? in +0) cppstdin="$cc -E";; +*) case "$cc" in + *gcc*) + cd .. + echo 'Trying (cat >/tmp/$$.c; '"$cc"' -E /tmp/$$.c; rm /tmp/$$.c)' + echo 'cat >/tmp/$$.c; '"$cc"' -E /tmp/$$.c; rm /tmp/$$.c' >cppstdin + chmod 755 cppstdin + cppstdin=`pwd`/cppstdin + cppminus=''; + cd UU + $cppstdin testcpp.out 2>&1 + ;; + esac + ;; +esac if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then echo "Yup, it does." cppstdin="$cc -E" @@ -1296,6 +1301,137 @@ else fi rm -f testcpp.c testcpp.out +: get list of predefined functions in a handy place +echo " " +case "$libc" in +'') libc=unknown;; +esac +case "$libpth" in +'') libpth='/lib /usr/lib /usr/local/lib';; +esac +case "$libs" in +*-lc_s*) libc=`loc libc_s.a $libc $libpth` +esac +libnames=''; +case "$libs" in +'') ;; +*) for thislib in $libs; do + case "$thislib" in + -l*) thislib=`expr X$thislib : 'X-l\(.*\)'` + try=`loc lib$thislib.a blurfl/dyick $libpth` + if test ! -f $try; then + try=`loc lib$thislib blurfl/dyick $libpth` + if test ! -f $try; then + try=`loc $thislib blurfl/dyick $libpth` + if test ! -f $try; then + try='' + fi + fi + fi + libnames="$libnames $try" + ;; + *) libnames="$libnames $thisname" ;; + esac + done + ;; +esac +set /usr/lib/libc.so.[0-9]* +eval set \$$# +if test -f "$1"; then + echo "Your shared C library is in $1." + libc="$1" +elif test -f $libc; then + echo "Your C library is in $libc, like you said before." +elif test -f /lib/libc.a; then + echo "Your C library is in /lib/libc.a. You're normal." + libc=/lib/libc.a +else + ans=`loc libc.a blurfl/dyick $libpth` + if test ! -f "$ans"; then + ans=`loc libc blurfl/dyick $libpth` + fi + if test ! -f "$ans"; then + ans=`loc clib blurfl/dyick $libpth` + fi + if test ! -f "$ans"; then + ans=`loc Slibc.a blurfl/dyick /usr/lib/386 /lib/386 $libpth` + fi + if test ! -f "$ans"; then + ans=`loc Mlibc.a blurfl/dyick $libpth` + fi + if test ! -f "$ans"; then + ans=`loc Llibc.a blurfl/dyick $libpth` + fi + if test -f "$ans"; then + echo "Your C library is in $ans, of all places." + libc=$ans + else + cat </dev/null >libc.tmp +$sed -n -e 's/^.* [AT] *_[_.]*//p' -e 's/^.* [AT] //p' libc.list +if $contains '^printf$' libc.list >/dev/null 2>&1; then + echo "done" +else + $sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p' libc.list + $contains '^printf$' libc.list >/dev/null 2>&1 || \ + $sed -n -e 's/^.* D __*//p' -e 's/^.* D //p' libc.list + $contains '^printf$' libc.list >/dev/null 2>&1 || \ + $sed -n -e 's/^_//' \ + -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p' libc.list + if $contains '^printf$' libc.list >/dev/null 2>&1; then + echo "done" + else + echo " " + echo "nm didn't seem to work right." + echo "Trying ar instead..." + if ar t $libc > libc.tmp; then + for thisname in $libnames; do + ar t $thisname >>libc.tmp + done + $sed -e 's/\.o$//' < libc.tmp > libc.list + echo "Ok." + else + echo "ar didn't seem to work right." + echo "Maybe this is a Cray...trying bld instead..." + if bld t $libc | $sed -e 's/.*\///' -e 's/\.o:.*$//' > libc.list; then + for thisname in $libnames; do + bld t $libnames | \ + $sed -e 's/.*\///' -e 's/\.o:.*$//' >>libc.list + ar t $thisname >>libc.tmp + done + echo "Ok." + else + echo "That didn't work either. Giving up." + exit 1 + fi + fi + fi +fi + +inlibc='echo " "; +if $contains "^$1\$" libc.list >/dev/null 2>&1; +then echo "$1() found"; eval "$2=$define"; +else echo "$1() not found"; eval "$2=$undef"; fi' + +rmlist="$rmlist libc.tmp libc.list" + : see if bcmp exists set bcmp d_bcmp eval $inlibc @@ -1383,6 +1519,12 @@ else fi fi +: get csh whereabouts +case "$csh" in +'csh') d_csh="$undef" ;; +*) d_csh="$define" ;; +esac + : see if this is a dirent system echo " " if $test -r /usr/include/dirent.h ; then @@ -1529,7 +1671,7 @@ eval $inlibc : see if ndbm is available echo " " -if $test -r /usr/include/ndbm.h || $test -r /usr/local/include/ndbm.h; then +if xxx=`loc ndbm.h x /usr/include /usr/local/include /usr/netinclude`; then d_ndbm="$define" echo "ndbm.h found." else @@ -1539,7 +1681,7 @@ fi : see if we have the old dbm echo " " -if $test -r /usr/include/dbm.h ; then +if xxx=`loc dbm.h x /usr/include /usr/local/include /usr/netinclude`; then d_odbm="$define" echo "dbm.h found." else @@ -1552,31 +1694,33 @@ echo " " if $test -r /usr/include/pwd.h ; then i_pwd="$define" echo "pwd.h found." - if $contains 'pw_quota' /usr/include/pwd.h >/dev/null 2>&1; then + $cppstdin $cppflags $$.h + if $contains 'pw_quota' $$.h >/dev/null 2>&1; then d_pwquota="$define" else d_pwquota="$undef" fi - if $contains 'pw_age' /usr/include/pwd.h >/dev/null 2>&1; then + if $contains 'pw_age' $$.h >/dev/null 2>&1; then d_pwage="$define" else d_pwage="$undef" fi - if $contains 'pw_change' /usr/include/pwd.h >/dev/null 2>&1; then + if $contains 'pw_change' $$.h >/dev/null 2>&1; then d_pwchange="$define" else d_pwchange="$undef" fi - if $contains 'pw_class' /usr/include/pwd.h >/dev/null 2>&1; then + if $contains 'pw_class' $$.h >/dev/null 2>&1; then d_pwclass="$define" else d_pwclass="$undef" fi - if $contains 'pw_expire' /usr/include/pwd.h >/dev/null 2>&1; then + if $contains 'pw_expire' $$.h >/dev/null 2>&1; then d_pwexpire="$define" else d_pwexpire="$undef" fi + rm -f $$.h else i_pwd="$undef" d_pwquota="$undef" @@ -1636,7 +1780,6 @@ set setruid d_setruid eval $inlibc socketlib='' -sockethdr='' : see whether socket exists echo " " if $contains socket libc.list >/dev/null 2>&1; then @@ -1665,7 +1808,6 @@ else if $contains socket libc.list >/dev/null 2>&1; then echo "but the Wollongong group seems to have hacked it in." socketlib="-lnet" - sockethdr="-I/usr/netinclude" d_socket="$define" : now check for advanced features if $contains setsockopt libc.list >/dev/null 2>&1; then @@ -1767,6 +1909,11 @@ else d_tminsys="$define" i_systime="$define" fi +if $contains '^#.*include.*' /usr/include/sys/time.h >/dev/null 2>&1 ; then + i_timetoo="$undef" +else + i_timetoo="$define" +fi : see if this is a varargs system echo " " @@ -1792,6 +1939,10 @@ else d_voidsig="$undef" fi +: see if there is a wait4 +set wait4 d_wait4 +eval $inlibc + : check for void type echo " " $cat </dev/null` + set X `cat /usr/include/signal.h /usr/include/sys/signal.h 2>&1 | awk ' +$1 ~ /^#define$/ && $2 ~ /^SIG[A-Z0-9]*$/ && $3 ~ /^[1-9][0-9]*$/ { + sig[$3] = substr($2,4,20) + if (max < $3 && $3 < 60) { + max = $3 + } +} + +END { + for (i=1; i<=max; i++) { + if (sig[i] == "") + printf "%d", i + else + printf "%s", sig[i] + if (i < max) + printf " " + } + printf "\n" +} +'` shift case $# in 0) echo 'kill -l' >/tmp/foo$$ - set X `/bin/csh -f Makefile <