From: Jarkko Hietaniemi Date: Thu, 5 Apr 2001 17:47:01 +0000 (+0000) Subject: Introduce d_u32align / U32_REQUIRES_ALIGNMENT, needed for X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=4e0554ec1a41c5b5d840b8e29e149a0efe77a52c;p=p5sagit%2Fp5-mst-13.2.git Introduce d_u32align / U32_REQUIRES_ALIGNMENT, needed for ext/Digest/MD5/Makefile.PL and t/lib/md5-align.t. Introduce probes for struct msghdr, struct cmsghdr, sendmsg, recvmsg, readv, writev, setitimer, getitimer, ualarm, usleep, for possible later extension work. p4raw-id: //depot/perl@9560 --- diff --git a/Configure b/Configure index e170872..d2fe5bb 100755 --- a/Configure +++ b/Configure @@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Tue Apr 3 04:12:27 EET DST 2001 [metaconfig 3.0 PL70] +# Generated on Thu Apr 5 20:11:33 EET DST 2001 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ <&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" + : 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 + 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" + fi + fi + fi +fi + +: see if socketpair exists +set socketpair d_sockpair +eval $inlibc + + +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 < +#include +int main() { + int i = $ENUM; +} +EOF + val="$undef" + set try; if eval $compile; then + val="$define" + fi + set d_${enum}; eval $setvar + $rm -f try.c try +done + +: see if this is a sys/uio.h system +set sys/uio.h i_sysuio +eval $inhdr + + +echo " " +echo "Checking to see if your system supports struct cmsghdr..." >&4 +set d_cmsghdr_s cmsghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h +eval $hasstruct +case "$d_cmsghdr_s" in +"$define") echo "Yes, it does." ;; +*) echo "No, it doesn't." ;; +esac + + : check for const keyword echo " " echo 'Checking to see if your C compiler knows about "const"...' >&4 @@ -9388,107 +9537,6 @@ eval $setvar $rm -f try* -hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift; -while $test $# -ge 2; do - case "$1" in - $define) echo "#include <$2>";; - esac ; - shift 2; -done > try.c; -echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c; -set try; -if eval $compile; then - val="$define"; -else - val="$undef"; -fi; -set $varname; -eval $setvar; -$rm -f try.c try.o' - -socketlib='' -sockethdr='' -: see whether socket exists -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" - : 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 - 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" - fi - fi - fi -fi - -: see if socketpair exists -set socketpair d_sockpair -eval $inlibc - - -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 < -#include -int main() { - int i = $ENUM; -} -EOF - val="$undef" - set try; if eval $compile; then - val="$define" - fi - set d_${enum}; eval $setvar - $rm -f try.c try -done - : see if sys/select.h has to be included set sys/select.h i_sysselct eval $inhdr @@ -9698,24 +9746,6 @@ eval $setvar set frexpl d_frexpl eval $inlibc -hasstruct='varname=$1; struct=$2; shift; shift; -while $test $# -ge 2; do - case "$1" in - $define) echo "#include <$2>";; - esac ; - shift 2; -done > try.c; -echo "int main () { struct $struct foo; }" >> try.c; -set try; -if eval $compile; then - val="$define"; -else - val="$undef"; -fi; -set $varname; -eval $setvar; -$rm -f try.c try.o' - : see if this is a sys/param system set sys/param.h i_sysparam eval $inhdr @@ -9724,10 +9754,6 @@ eval $inhdr set sys/mount.h i_sysmount eval $inhdr -: see if sys/types.h has to be included -set sys/types.h i_systypes -eval $inhdr - echo " " echo "Checking to see if your system supports struct fs_data..." >&4 @@ -9898,6 +9924,10 @@ echo " " set d_gethostprotos gethostent $i_netdb netdb.h eval $hasproto +: see if getitimer exists +set getitimer d_getitimer +eval $inlibc + : see if getlogin exists set getlogin d_getlogin eval $inlibc @@ -10394,6 +10424,17 @@ fi set d_msg eval $setvar + +echo " " +echo "Checking to see if your system supports struct msghdr..." >&4 +set d_msghdr_s msghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h +eval $hasstruct +case "$d_msghdr_s" in +"$define") echo "Yes, it does." ;; +*) echo "No, it doesn't." ;; +esac + + : see if msync exists set msync d_msync eval $inlibc @@ -10980,6 +11021,14 @@ eval $inlibc set readlink d_readlink eval $inlibc +: see if readv exists +set readv d_readv +eval $inlibc + +: see if recvmsg exists +set recvmsg d_recvmsg +eval $inlibc + : see if rename exists set rename d_rename eval $inlibc @@ -11462,6 +11511,10 @@ END ;; esac +: see if sendmsg exists +set sendmsg d_sendmsg +eval $inlibc + : see if setegid exists set setegid d_setegid eval $inlibc @@ -11478,6 +11531,10 @@ eval $inlibc set sethostent d_sethent eval $inlibc +: see if setitimer exists +set setitimer d_setitimer +eval $inlibc + : see if setlinebuf exists set setlinebuf d_setlinebuf eval $inlibc @@ -12501,10 +12558,185 @@ fi set d_tzname eval $setvar +case "$crosscompile" in +''|[nN]*) crosscompile="$undef" ;; +esac + +case "$osname" in +next|rhapsody|darwin) multiarch="$define" ;; +esac +case "$multiarch" in +''|[nN]*) multiarch="$undef" ;; +esac + +: check for ordering of bytes in a long +echo " " +case "$crosscompile$multiarch" in +*$define*) + $cat <try.c <<'EOCP' +#include +int main() +{ + int i; + union { + unsigned long l; + char c[sizeof(long)]; + } u; + + if (sizeof(long) > 4) + u.l = (0x08070605L << 32) | 0x04030201L; + else + u.l = 0x04030201L; + for (i = 0; i < sizeof(long); i++) + printf("%c", u.c[i]+'0'); + printf("\n"); + exit(0); +} +EOCP + xxx_prompt=y + set try + if eval $compile && ./try > /dev/null; then + dflt=`./try` + case "$dflt" in + [1-4][1-4][1-4][1-4]|12345678|87654321) + echo "(The test program ran ok.)" + echo "byteorder=$dflt" + xxx_prompt=n + ;; + ????|????????) echo "(The test program ran ok.)" ;; + *) echo "(The test program didn't run right for some reason.)" ;; + esac + else + dflt='4321' + cat <<'EOM' +(I can't seem to compile the test program. Guessing big-endian...) +EOM + fi + case "$xxx_prompt" in + y) + rp="What is the order of bytes in a long?" + . ./myread + byteorder="$ans" + ;; + *) byteorder=$dflt + ;; + esac + ;; + esac + $rm -f try.c try + ;; +esac + + +$cat <try.c < +#define U32 $u32type +#define BYTEORDER $byteorder +int main() { +#if BYTEORDER == 0x1234 || BYTEORDER == 0x4321 + U8 buf[] = "\0\0\0\1\0\0\0\0"; + U32 *up; + int i; + + if (sizeof(U32) != 4) { + printf("sizeof(U32) is not 4, but %d\n", sizeof(U32)); + exit(1); + } + + fflush(stdout); + + for (i = 0; i < 4; i++) { + up = (U32*)(buf + i); + if (! ((*up == 1 << (8*i)) || /* big-endian */ + (*up == 1 << (8*(3-i))) /* little-endian */ + ) + ) + { + printf("read failed (%x)\n", *up); + exit(2); + } + } + + /* write test */ + for (i = 0; i < 4; i++) { + up = (U32*)(buf + i); + *up = 0xBeef; + if (*up != 0xBeef) { + printf("write failed (%x)\n", *up); + exit(3); + } + } + + exit(0); +#else + printf("1\n"); + exit(1); +#endif + return 0; +} +EOCP +set try +if eval $compile_ok; then + echo "(This test may dump core.)" >&4 + ./try >&2 >/dev/null + case "$?" in + 0) cat >&4 <&4 <try.c <<'EOCP' -#include -int main() -{ - int i; - union { - unsigned long l; - char c[sizeof(long)]; - } u; - - if (sizeof(long) > 4) - u.l = (0x08070605L << 32) | 0x04030201L; - else - u.l = 0x04030201L; - for (i = 0; i < sizeof(long); i++) - printf("%c", u.c[i]+'0'); - printf("\n"); - exit(0); -} -EOCP - xxx_prompt=y - set try - if eval $compile && ./try > /dev/null; then - dflt=`./try` - case "$dflt" in - [1-4][1-4][1-4][1-4]|12345678|87654321) - echo "(The test program ran ok.)" - echo "byteorder=$dflt" - xxx_prompt=n - ;; - ????|????????) echo "(The test program ran ok.)" ;; - *) echo "(The test program didn't run right for some reason.)" ;; - esac - else - dflt='4321' - cat <<'EOM' -(I can't seem to compile the test program. Guessing big-endian...) -EOM - fi - case "$xxx_prompt" in - y) - rp="What is the order of bytes in a long?" - . ./myread - byteorder="$ans" - ;; - *) byteorder=$dflt - ;; - esac - ;; - esac - $rm -f try.c try - ;; -esac - - : how do we catenate cpp tokens here? echo " " echo "Checking to see how your cpp does stuff like catenate tokens..." >&4 @@ -15514,10 +15661,6 @@ eval $inhdr set sys/statvfs.h i_sysstatvfs eval $inhdr -: see if this is a sys/uio.h system -set sys/uio.h i_sysuio -eval $inhdr - : see if this is a sys/un.h system set sys/un.h i_sysun eval $inhdr @@ -16025,6 +16168,7 @@ d_chown='$d_chown' d_chroot='$d_chroot' d_chsize='$d_chsize' d_closedir='$d_closedir' +d_cmsghdr_s='$d_cmsghdr_s' d_const='$d_const' d_crypt='$d_crypt' d_csh='$d_csh' @@ -16079,6 +16223,7 @@ d_gethbyname='$d_gethbyname' d_gethent='$d_gethent' d_gethname='$d_gethname' d_gethostprotos='$d_gethostprotos' +d_getitimer='$d_getitimer' d_getlogin='$d_getlogin' d_getmnt='$d_getmnt' d_getmntent='$d_getmntent' @@ -16151,6 +16296,7 @@ d_msg_peek='$d_msg_peek' d_msg_proxy='$d_msg_proxy' d_msgctl='$d_msgctl' d_msgget='$d_msgget' +d_msghdr_s='$d_msghdr_s' d_msgrcv='$d_msgrcv' d_msgsnd='$d_msgsnd' d_msync='$d_msync' @@ -16184,6 +16330,8 @@ d_qgcvt='$d_qgcvt' d_quad='$d_quad' d_readdir='$d_readdir' d_readlink='$d_readlink' +d_readv='$d_readv' +d_recvmsg='$d_recvmsg' d_rename='$d_rename' d_rewinddir='$d_rewinddir' d_rmdir='$d_rmdir' @@ -16201,11 +16349,13 @@ d_semctl_semid_ds='$d_semctl_semid_ds' d_semctl_semun='$d_semctl_semun' d_semget='$d_semget' d_semop='$d_semop' +d_sendmsg='$d_sendmsg' d_setegid='$d_setegid' d_seteuid='$d_seteuid' d_setgrent='$d_setgrent' d_setgrps='$d_setgrps' d_sethent='$d_sethent' +d_setitimer='$d_setitimer' d_setlinebuf='$d_setlinebuf' d_setlocale='$d_setlocale' d_setnent='$d_setnent' @@ -16281,9 +16431,12 @@ d_time='$d_time' d_times='$d_times' d_truncate='$d_truncate' d_tzname='$d_tzname' +d_u32align='$d_u32align' +d_ualarm='$d_ualarm' d_umask='$d_umask' d_uname='$d_uname' d_union_semun='$d_union_semun' +d_usleep='$d_usleep' d_ustat='$d_ustat' d_vendorarch='$d_vendorarch' d_vendorbin='$d_vendorbin' @@ -16298,6 +16451,7 @@ d_wait4='$d_wait4' d_waitpid='$d_waitpid' d_wcstombs='$d_wcstombs' d_wctomb='$d_wctomb' +d_writev='$d_writev' d_xenix='$d_xenix' date='$date' db_hashtype='$db_hashtype' diff --git a/MANIFEST b/MANIFEST index 2d05186..11c4c57 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1516,6 +1516,7 @@ t/lib/lc-currency.t See if Locale::Codes work t/lib/lc-language.t See if Locale::Codes work t/lib/lc-uk.t See if Locale::Codes work t/lib/md5-aaa.t See if Digest::MD5 extension works +t/lib/md5-align.t See if Digest::MD5 extension works t/lib/md5-badf.t See if Digest::MD5 extension works t/lib/md5-file.t See if Digest::MD5 extension works t/lib/mimeb64.t see whether MIME::Base64 works diff --git a/Porting/Glossary b/Porting/Glossary index 61a52c5..d621d2f 100644 --- a/Porting/Glossary +++ b/Porting/Glossary @@ -437,6 +437,10 @@ d_closedir (d_closedir.U): This variable conditionally defines HAS_CLOSEDIR if closedir() is available. +d_cmsghdr_s (d_cmsghdr_s.U): + This variable conditionally defines the HAS_STRUCT_CMSGHDR symbol, + which indicates that the struct cmsghdr is supported. + d_const (d_const.U): This variable conditionally defines the HASCONST symbol, which indicates to the C program that this C compiler knows about the @@ -689,6 +693,10 @@ d_gethostprotos (d_gethostprotos.U): prototypes for the various gethost*() functions. See also netdbtype.U for probing for various netdb types. +d_getitimer (d_getitimer.U): + This variable conditionally defines the HAS_GETITIMER symbol, which + indicates to the C program that the getitimer() routine is available. + d_getlogin (d_getlogin.U): This variable conditionally defines the HAS_GETLOGIN symbol, which indicates to the C program that the getlogin() routine is available @@ -1024,6 +1032,10 @@ d_msgget (d_msgget.U): This variable conditionally defines the HAS_MSGGET symbol, which indicates to the C program that the msgget() routine is available. +d_msghdr_s (d_msghdr_s.U): + This variable conditionally defines the HAS_STRUCT_MSGHDR symbol, + which indicates that the struct msghdr is supported. + d_msgrcv (d_msgrcv.U): This variable conditionally defines the HAS_MSGRCV symbol, which indicates to the C program that the msgrcv() routine is available. @@ -1226,6 +1238,14 @@ d_readlink (d_readlink.U): indicates to the C program that the readlink() routine is available to read the value of a symbolic link. +d_readv (d_readv.U): + This variable conditionally defines the HAS_READV symbol, which + indicates to the C program that the readv() routine is available. + +d_recvmsg (d_recvmsg.U): + This variable conditionally defines the HAS_RECVMSG symbol, which + indicates to the C program that the recvmsg() routine is available. + d_rename (d_rename.U): This variable conditionally defines the HAS_RENAME symbol, which indicates to the C program that the rename() routine is available @@ -1305,6 +1325,10 @@ d_semop (d_semop.U): This variable conditionally defines the HAS_SEMOP symbol, which indicates to the C program that the semop() routine is available. +d_sendmsg (d_sendmsg.U): + This variable conditionally defines the HAS_SENDMSG symbol, which + indicates to the C program that the sendmsg() routine is available. + d_setegid (d_setegid.U): This variable conditionally defines the HAS_SETEGID symbol, which indicates to the C program that the setegid() routine is available @@ -1329,6 +1353,10 @@ d_sethent (d_sethent.U): This variable conditionally defines HAS_SETHOSTENT if sethostent() is available. +d_setitimer (d_setitimer.U): + This variable conditionally defines the HAS_SETITIMER symbol, which + indicates to the C program that the setitimer() routine is available. + d_setlinebuf (d_setlnbuf.U): This variable conditionally defines the HAS_SETLINEBUF symbol, which indicates to the C program that the setlinebuf() routine is available @@ -1663,6 +1691,14 @@ d_tzname (d_tzname.U): This variable conditionally defines HAS_TZNAME if tzname[] is available to access timezone names. +d_u32align (d_u32align.U): + This variable tells whether you must access character data + through U32-aligned pointers. + +d_ualarm (d_ualarm.U): + This variable conditionally defines the HAS_UALARM symbol, which + indicates to the C program that the ualarm() routine is available. + d_umask (d_umask.U): This variable conditionally defines the HAS_UMASK symbol, which indicates to the C program that the umask() routine is available. @@ -1677,6 +1713,10 @@ d_union_semun (d_union_semun.U): This variable conditionally defines HAS_UNION_SEMUN if the union semun is defined by including . +d_usleep (d_usleep.U): + This variable conditionally defines HAS_USLEEP if usleep() is + available to do high granularity sleeps. + d_ustat (d_ustat.U): This variable conditionally defines HAS_USTAT if ustat() is available to query file system statistics by dev_t. @@ -1737,6 +1777,10 @@ d_wctomb (d_wctomb.U): indicates to the C program that the wctomb() routine is available to convert a wide character to a multibyte. +d_writev (d_writev.U): + This variable conditionally defines the HAS_WRITEV symbol, which + indicates to the C program that the writev() routine is available. + d_xenix (Guess.U): This variable conditionally defines the symbol XENIX, which alerts the C program that it runs under Xenix. diff --git a/Porting/config.sh b/Porting/config.sh index 3853ffb..1e09d64 100644 --- a/Porting/config.sh +++ b/Porting/config.sh @@ -8,7 +8,7 @@ # Package name : perl5 # Source directory : . -# Configuration time: Tue Mar 27 07:55:38 EET DST 2001 +# Configuration time: Thu Apr 5 20:36:09 EET DST 2001 # Configured by : jhi # Target system : osf1 alpha.hut.fi v4.0 878 alpha @@ -62,7 +62,7 @@ ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_ ccversion='V5.6-082' cf_by='jhi' cf_email='yourname@yourhost.yourplace.com' -cf_time='Tue Mar 27 07:55:38 EET DST 2001' +cf_time='Thu Apr 5 20:36:09 EET DST 2001' charsize='1' chgrp='' chmod='' @@ -121,6 +121,7 @@ d_chown='define' d_chroot='define' d_chsize='undef' d_closedir='define' +d_cmsghdr_s='define' d_const='define' d_crypt='define' d_csh='define' @@ -175,6 +176,7 @@ d_gethbyname='define' d_gethent='define' d_gethname='define' d_gethostprotos='define' +d_getitimer='define' d_getlogin='define' d_getmnt='undef' d_getmntent='undef' @@ -247,6 +249,7 @@ d_msg_peek='define' d_msg_proxy='undef' d_msgctl='define' d_msgget='define' +d_msghdr_s='define' d_msgrcv='define' d_msgsnd='define' d_msync='define' @@ -280,6 +283,8 @@ d_qgcvt='undef' d_quad='define' d_readdir='define' d_readlink='define' +d_readv='define' +d_recvmsg='define' d_rename='define' d_rewinddir='define' d_rmdir='define' @@ -297,11 +302,13 @@ d_semctl_semid_ds='define' d_semctl_semun='define' d_semget='define' d_semop='define' +d_sendmsg='define' d_setegid='define' d_seteuid='define' d_setgrent='define' d_setgrps='define' d_sethent='define' +d_setitimer='define' d_setlinebuf='define' d_setlocale='define' d_setnent='define' @@ -377,9 +384,12 @@ d_time='define' d_times='define' d_truncate='define' d_tzname='define' +d_u32align='define' +d_ualarm='define' d_umask='define' d_uname='define' d_union_semun='undef' +d_usleep='define' d_ustat='define' d_vendorarch='undef' d_vendorbin='undef' @@ -394,6 +404,7 @@ d_wait4='define' d_waitpid='define' d_wcstombs='define' d_wctomb='define' +d_writev='define' d_xenix='undef' date='date' db_hashtype='u_int32_t' @@ -404,7 +415,7 @@ dlext='so' dlsrc='dl_dlopen.xs' doublesize='8' drand01='drand48()' -dynamic_ext='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread attrs re' +dynamic_ext='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread XS/Typemap attrs re' eagain='EAGAIN' ebcdic='undef' echo='echo' @@ -413,7 +424,7 @@ emacs='' eunicefix=':' exe_ext='' expr='expr' -extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread attrs re Errno' +extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread XS/Typemap attrs re Errno' fflushNULL='define' fflushall='undef' find='' @@ -553,7 +564,7 @@ issymlink='test -h' ivdformat='"ld"' ivsize='8' ivtype='long' -known_extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread attrs re' +known_extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread XS/Typemap attrs re' ksh='' ld='ld' lddlflags='-shared -expect_unresolved "*" -msym -std -s' diff --git a/Porting/config_H b/Porting/config_H index fb8bf3b..5c1db50 100644 --- a/Porting/config_H +++ b/Porting/config_H @@ -17,7 +17,7 @@ /* * Package name : perl5 * Source directory : . - * Configuration time: Tue Mar 27 07:55:38 EET DST 2001 + * Configuration time: Thu Apr 5 20:36:09 EET DST 2001 * Configured by : jhi * Target system : osf1 alpha.hut.fi v4.0 878 alpha */ @@ -645,6 +645,12 @@ */ #define HAS_UMASK /**/ +/* HAS_USLEEP: + * This symbol, if defined, indicates that the usleep routine is + * available to let the process sleep on a sub-second accuracy. + */ +#define HAS_USLEEP /**/ + /* HASVOLATILE: * This symbol, if defined, indicates that this C compiler knows about * the volatile declaration. @@ -1241,6 +1247,12 @@ */ /*#define VOID_CLOSEDIR / **/ +/* HAS_STRUCT_CMSGHDR: + * This symbol, if defined, indicates that the struct cmsghdr + * is supported. + */ +#define HAS_STRUCT_CMSGHDR /**/ + /* HAS_CSH: * This symbol, if defined, indicates that the C-shell exists. */ @@ -1462,6 +1474,12 @@ */ #define HAS_GETHOST_PROTOS /**/ +/* HAS_GETITIMER: + * This symbol, if defined, indicates that the getitimer routine is + * available to return interval timers. + */ +#define HAS_GETITIMER /**/ + /* HAS_GETMNT: * This symbol, if defined, indicates that the getmnt routine is * available to get filesystem mount info by filename. @@ -1770,6 +1788,12 @@ */ #define HAS_MSG /**/ +/* HAS_STRUCT_MSGHDR: + * This symbol, if defined, indicates that the struct msghdr + * is supported. + */ +#define HAS_STRUCT_MSGHDR /**/ + /* HAS_OFF64_T: * This symbol will be defined if the C compiler supports off64_t. */ @@ -1810,6 +1834,19 @@ #define SCHED_YIELD sched_yield() /**/ #define HAS_SCHED_YIELD /**/ +/* HAS_READV: + * This symbol, if defined, indicates that the readv routine is + * available to do gather reads. You will also need + * and there I_SYSUIO. + */ +#define HAS_READV /**/ + +/* HAS_RECVMSG: + * This symbol, if defined, indicates that the recvmsg routine is + * available to send structured socket messages. + */ +#define HAS_RECVMSG /**/ + /* HAS_SAFE_BCOPY: * This symbol, if defined, indicates that the bcopy routine is available * to copy potentially overlapping memory blocks. Otherwise you should @@ -1848,6 +1885,12 @@ */ #define HAS_SEM /**/ +/* HAS_SENDMSG: + * This symbol, if defined, indicates that the sendmsg routine is + * available to send structured socket messages. + */ +#define HAS_SENDMSG /**/ + /* HAS_SETGRENT: * This symbol, if defined, indicates that the setgrent routine is * available for initializing sequential access of the group database. @@ -1867,6 +1910,12 @@ */ #define HAS_SETHOSTENT /**/ +/* HAS_SETITIMER: + * This symbol, if defined, indicates that the setitimer routine is + * available to set interval timers. + */ +#define HAS_SETITIMER /**/ + /* HAS_SETNETENT: * This symbol, if defined, indicates that the setnetent() routine is * available. @@ -2202,6 +2251,12 @@ */ #define HAS_TIMES /**/ +/* HAS_UALARM: + * This symbol, if defined, indicates that the ualarm routine is + * available to do alarms with microsecond granularity. + */ +#define HAS_UALARM /**/ + /* HAS_UNION_SEMUN: * This symbol, if defined, indicates that the union semun is * defined by including . If not, the user code @@ -2257,6 +2312,12 @@ #define HAS_VPRINTF /**/ /*#define USE_CHAR_VSPRINTF / **/ +/* HAS_WRITEV: + * This symbol, if defined, indicates that the writev routine is + * available to do scatter writes. + */ +#define HAS_WRITEV /**/ + /* USE_DYNAMIC_LOADING: * This symbol, if defined, indicates that dynamic loading of * some sort is available. @@ -3265,4 +3326,10 @@ */ /*#define HAS_SOCKATMARK / **/ +/* U32_ALIGNMENT_REQUIRED: + * This symbol, if defined, indicates that you must access + * character data through U32-aligned pointers. + */ +#define U32_ALIGNMENT_REQUIRED /**/ + #endif diff --git a/config_h.SH b/config_h.SH index eb95593..0b828e6 100644 --- a/config_h.SH +++ b/config_h.SH @@ -665,6 +665,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_umask HAS_UMASK /**/ +/* HAS_USLEEP: + * This symbol, if defined, indicates that the usleep routine is + * available to let the process sleep on a sub-second accuracy. + */ +#$d_usleep HAS_USLEEP /**/ + /* HASVOLATILE: * This symbol, if defined, indicates that this C compiler knows about * the volatile declaration. @@ -1261,6 +1267,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_void_closedir VOID_CLOSEDIR /**/ +/* HAS_STRUCT_CMSGHDR: + * This symbol, if defined, indicates that the struct cmsghdr + * is supported. + */ +#$d_cmsghdr_s HAS_STRUCT_CMSGHDR /**/ + /* HAS_CSH: * This symbol, if defined, indicates that the C-shell exists. */ @@ -1482,6 +1494,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_gethostprotos HAS_GETHOST_PROTOS /**/ +/* HAS_GETITIMER: + * This symbol, if defined, indicates that the getitimer routine is + * available to return interval timers. + */ +#$d_getitimer HAS_GETITIMER /**/ + /* HAS_GETMNT: * This symbol, if defined, indicates that the getmnt routine is * available to get filesystem mount info by filename. @@ -1790,6 +1808,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_msg HAS_MSG /**/ +/* HAS_STRUCT_MSGHDR: + * This symbol, if defined, indicates that the struct msghdr + * is supported. + */ +#$d_msghdr_s HAS_STRUCT_MSGHDR /**/ + /* HAS_OFF64_T: * This symbol will be defined if the C compiler supports off64_t. */ @@ -1830,6 +1854,19 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #define SCHED_YIELD $sched_yield /**/ #$d_sched_yield HAS_SCHED_YIELD /**/ +/* HAS_READV: + * This symbol, if defined, indicates that the readv routine is + * available to do gather reads. You will also need + * and there I_SYSUIO. + */ +#$d_readv HAS_READV /**/ + +/* HAS_RECVMSG: + * This symbol, if defined, indicates that the recvmsg routine is + * available to send structured socket messages. + */ +#$d_recvmsg HAS_RECVMSG /**/ + /* HAS_SAFE_BCOPY: * This symbol, if defined, indicates that the bcopy routine is available * to copy potentially overlapping memory blocks. Otherwise you should @@ -1868,6 +1905,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_sem HAS_SEM /**/ +/* HAS_SENDMSG: + * This symbol, if defined, indicates that the sendmsg routine is + * available to send structured socket messages. + */ +#$d_sendmsg HAS_SENDMSG /**/ + /* HAS_SETGRENT: * This symbol, if defined, indicates that the setgrent routine is * available for initializing sequential access of the group database. @@ -1887,6 +1930,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_sethent HAS_SETHOSTENT /**/ +/* HAS_SETITIMER: + * This symbol, if defined, indicates that the setitimer routine is + * available to set interval timers. + */ +#$d_setitimer HAS_SETITIMER /**/ + /* HAS_SETNETENT: * This symbol, if defined, indicates that the setnetent() routine is * available. @@ -2222,6 +2271,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_times HAS_TIMES /**/ +/* HAS_UALARM: + * This symbol, if defined, indicates that the ualarm routine is + * available to do alarms with microsecond granularity. + */ +#$d_ualarm HAS_UALARM /**/ + /* HAS_UNION_SEMUN: * This symbol, if defined, indicates that the union semun is * defined by including . If not, the user code @@ -2277,6 +2332,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$d_vprintf HAS_VPRINTF /**/ #$d_charvspr USE_CHAR_VSPRINTF /**/ +/* HAS_WRITEV: + * This symbol, if defined, indicates that the writev routine is + * available to do scatter writes. + */ +#$d_writev HAS_WRITEV /**/ + /* USE_DYNAMIC_LOADING: * This symbol, if defined, indicates that dynamic loading of * some sort is available. @@ -3285,5 +3346,11 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_sockatmark HAS_SOCKATMARK /**/ +/* U32_ALIGNMENT_REQUIRED: + * This symbol, if defined, indicates that you must access + * character data through U32-aligned pointers. + */ +#$d_u32align U32_ALIGNMENT_REQUIRED /**/ + #endif !GROK!THIS! diff --git a/configure.com b/configure.com index 6bb3040..8b13c1f 100644 --- a/configure.com +++ b/configure.com @@ -4982,6 +4982,7 @@ $ WC "d_gethbyname='" + d_gethbyname + "'" $ WC "d_gethent='" + d_gethent + "'" $ WC "d_gethname='" + d_gethname + "'" $ WC "d_gethostprotos='" + d_gethostprotos + "'" +$ WC "d_getitimer='undef'" $ WC "d_getlogin='define'" $ WC "d_getmnt='undef'" $ WC "d_getmntent='undef'" @@ -5109,6 +5110,7 @@ $ WC "d_seteuid='undef'" $ WC "d_setgrent='undef'" $ WC "d_setgrps='undef'" $ WC "d_sethent='" + d_sethent + "'" +$ WC "d_setitimer='undef'" $ WC "d_setlinebuf='undef'" $ WC "d_setlocale='" + d_setlocale + "'" $ WC "d_setnent='" + d_setnent + "'" @@ -5178,10 +5180,13 @@ $ WC "d_telldirproto='define'" $ WC "d_times='define'" $ WC "d_truncate='" + d_truncate + "'" $ WC "d_tzname='undef'" +$ WC "d_u32align='define'" +$ WC "d_ualarm='undef'" $ WC "d_umask='define'" $ WC "d_uname='" + d_uname + "'" $ WC "d_union_semun='undef'" $ WC "d_unlink_all_versions='undef'" +$ WC "d_usleep='undef'" $ WC "d_ustat='undef'" $ WC "d_vendorarch='undef'" $ WC "d_vendorlib='undef'" diff --git a/epoc/config.sh b/epoc/config.sh index 2c4c03e..7606769 100644 --- a/epoc/config.sh +++ b/epoc/config.sh @@ -115,6 +115,7 @@ d_chsize='undef' d_closedir='undef' d_cmsghdr_s='undef' d_const='define' +d_cmsghdr_s='undef' d_crypt='undef' d_csh='undef' d_cuserid='undef' @@ -166,6 +167,7 @@ d_gethbyname='define' d_gethent='undef' d_gethname='undef' d_gethostprotos='define' +d_getitimer='undef' d_getlogin='undef' d_getmntent='undef' d_getnbyaddr='undef' @@ -235,6 +237,7 @@ d_msg_oob='undef' d_msg_peek='undef' d_msg_proxy='undef' d_msgctl='undef' +d_msghdr_s='undef' d_msgget='undef' d_msghdr_s='undef' d_msgrcv='undef' @@ -269,6 +272,8 @@ d_readdir='define' d_readlink='undef' d_readv='undef' d_recvmsg='undef' +d_readv='undef' +d_recvmsg='undef' d_rename='define' d_rewinddir='define' d_rmdir='define' @@ -292,6 +297,7 @@ d_seteuid='undef' d_setgrent='undef' d_setgrps='undef' d_sethent='undef' +d_setitimer='undef' d_setlinebuf='undef' d_setlocale='undef' d_setnent='undef' @@ -363,6 +369,8 @@ d_time='undef' d_times='undef' d_truncate='undef' d_tzname='undef' +d_u32align='define' +d_ualarm='undef' d_umask='undef' d_uname='undef' d_union_semun='undef' @@ -794,6 +802,7 @@ d_sqrtl='undef' d_getmnt='undef' d_statfs_f_flags='undef' d_statfs_s='undef' +d_usleep='undef' d_ustat='undef' i_sysstatfs='undef' i_sysvfs='undef' diff --git a/ext/Digest/MD5/Makefile.PL b/ext/Digest/MD5/Makefile.PL index 9d59dba..31dcabf 100644 --- a/ext/Digest/MD5/Makefile.PL +++ b/ext/Digest/MD5/Makefile.PL @@ -5,10 +5,9 @@ use ExtUtils::MakeMaker; my @extra; @extra = (DEFINE => "-DU32_ALIGNMENT_REQUIRED") - if $Config{'byteorder'} ne '1234' || - $Config{'byteorder'} ne '4321' || + if !($Config{'byteorder'} eq '1234' || $Config{'byteorder'} eq '4321') || $^O eq 'VMS' || - $Config{u32_alignment_required}; + $Config{d_u32align}; WriteMakefile( 'NAME' => 'Digest::MD5', diff --git a/perl.h b/perl.h index 7e5d994..ab7a8e8 100644 --- a/perl.h +++ b/perl.h @@ -718,6 +718,11 @@ typedef struct perl_mstats perl_mstats_t; # define WIN32SCK_IS_STDSCK /* don't pull in custom wsock layer */ #endif +/* In Tru64 use the 4.4BSD struct msghdr, not the 4.3 one */ +#if defined(__osf__) && defined(__alpha) && !defined(_SOCKADDR_LEN) +# define _SOCKADDR_LEN +#endif + #if defined(HAS_SOCKET) && !defined(VMS) /* VMS handles sockets via vmsish.h */ # include # if defined(USE_SOCKS) && defined(I_SOCKS) @@ -3626,6 +3631,20 @@ typedef struct am_table_short AMTS; NVff NVgf + HAS_USLEEP + HAS_UALARM + + HAS_SETITIMER + HAS_GETITIMER + + HAS_SENDMSG + HAS_RECVMSG + HAS_READV + HAS_WRITEV + I_SYSUIO + HAS_STRUCT_MSGHDR + HAS_STRUCT_CMSGHDR + so that Configure picks them up. */ #endif /* Include guard */ diff --git a/t/lib/md5-align.t b/t/lib/md5-align.t new file mode 100644 index 0000000..4176062 --- /dev/null +++ b/t/lib/md5-align.t @@ -0,0 +1,20 @@ +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; +} + +# Test that md5 works on unaligned memory blocks + +print "1..1\n"; + +use strict; +use Digest::MD5 qw(md5_hex); + +my $str = "\100" x 20; +substr($str, 0, 1, ""); # chopping off first char makes the string unaligned + +#use Devel::Peek; Dump($str); + +print "not " unless md5_hex($str) eq "c7ebb510e59ee96f404f288d14cc656a"; +print "ok 1\n"; + diff --git a/uconfig.h b/uconfig.h index 60239ac..6914151 100644 --- a/uconfig.h +++ b/uconfig.h @@ -641,6 +641,12 @@ */ /*#define HAS_UMASK / **/ +/* HAS_USLEEP: + * This symbol, if defined, indicates that the usleep routine is + * available to let the process sleep on a sub-second accuracy. + */ +/*#define HAS_USLEEP / **/ + /* HASVOLATILE: * This symbol, if defined, indicates that this C compiler knows about * the volatile declaration. @@ -1237,6 +1243,12 @@ */ /*#define VOID_CLOSEDIR / **/ +/* HAS_STRUCT_CMSGHDR: + * This symbol, if defined, indicates that the struct cmsghdr + * is supported. + */ +/*#define HAS_STRUCT_CMSGHDR / **/ + /* HAS_CSH: * This symbol, if defined, indicates that the C-shell exists. */ @@ -1458,6 +1470,12 @@ */ /*#define HAS_GETHOST_PROTOS / **/ +/* HAS_GETITIMER: + * This symbol, if defined, indicates that the getitimer routine is + * available to return interval timers. + */ +/*#define HAS_GETITIMER / **/ + /* HAS_GETMNT: * This symbol, if defined, indicates that the getmnt routine is * available to get filesystem mount info by filename. @@ -1766,6 +1784,12 @@ */ /*#define HAS_MSG / **/ +/* HAS_STRUCT_MSGHDR: + * This symbol, if defined, indicates that the struct msghdr + * is supported. + */ +/*#define HAS_STRUCT_MSGHDR / **/ + /* HAS_OFF64_T: * This symbol will be defined if the C compiler supports off64_t. */ @@ -1806,6 +1830,19 @@ #define SCHED_YIELD sched_yield() /**/ /*#define HAS_SCHED_YIELD / **/ +/* HAS_READV: + * This symbol, if defined, indicates that the readv routine is + * available to do gather reads. You will also need + * and there I_SYSUIO. + */ +/*#define HAS_READV / **/ + +/* HAS_RECVMSG: + * This symbol, if defined, indicates that the recvmsg routine is + * available to send structured socket messages. + */ +/*#define HAS_RECVMSG / **/ + /* HAS_SAFE_BCOPY: * This symbol, if defined, indicates that the bcopy routine is available * to copy potentially overlapping memory blocks. Otherwise you should @@ -1844,6 +1881,12 @@ */ /*#define HAS_SEM / **/ +/* HAS_SENDMSG: + * This symbol, if defined, indicates that the sendmsg routine is + * available to send structured socket messages. + */ +/*#define HAS_SENDMSG / **/ + /* HAS_SETGRENT: * This symbol, if defined, indicates that the setgrent routine is * available for initializing sequential access of the group database. @@ -1863,6 +1906,12 @@ */ /*#define HAS_SETHOSTENT / **/ +/* HAS_SETITIMER: + * This symbol, if defined, indicates that the setitimer routine is + * available to set interval timers. + */ +/*#define HAS_SETITIMER / **/ + /* HAS_SETNETENT: * This symbol, if defined, indicates that the setnetent() routine is * available. @@ -2198,6 +2247,12 @@ */ /*#define HAS_TIMES / **/ +/* HAS_UALARM: + * This symbol, if defined, indicates that the ualarm routine is + * available to do alarms with microsecond granularity. + */ +/*#define HAS_UALARM / **/ + /* HAS_UNION_SEMUN: * This symbol, if defined, indicates that the union semun is * defined by including . If not, the user code @@ -2253,6 +2308,12 @@ #define HAS_VPRINTF /**/ /*#define USE_CHAR_VSPRINTF / **/ +/* HAS_WRITEV: + * This symbol, if defined, indicates that the writev routine is + * available to do scatter writes. + */ +/*#define HAS_WRITEV / **/ + /* USE_DYNAMIC_LOADING: * This symbol, if defined, indicates that dynamic loading of * some sort is available. @@ -3261,4 +3322,10 @@ */ /*#define HAS_SOCKATMARK / **/ +/* U32_ALIGNMENT_REQUIRED: + * This symbol, if defined, indicates that you must access + * character data through U32-aligned pointers. + */ +#define U32_ALIGNMENT_REQUIRED /**/ + #endif diff --git a/uconfig.sh b/uconfig.sh index f2afe30..9ded43b 100755 --- a/uconfig.sh +++ b/uconfig.sh @@ -52,6 +52,7 @@ d_chroot='undef' d_chsize='undef' d_closedir='undef' d_const='undef' +d_cmsghdr_s='undef' d_crypt='undef' d_csh='undef' d_cuserid='undef' @@ -105,6 +106,7 @@ d_gethbyname='undef' d_gethent='undef' d_gethname='undef' d_gethostprotos='undef' +d_getitimer='undef' d_getlogin='undef' d_getmnt='undef' d_getmntent='undef' @@ -178,6 +180,7 @@ d_msg_peek='undef' d_msg_proxy='undef' d_msgctl='undef' d_msgget='undef' +d_msghdr_s='undef' d_msgrcv='undef' d_msgsnd='undef' d_msync='undef' @@ -211,6 +214,8 @@ d_qgcvt='undef' d_quad='undef' d_readdir='undef' d_readlink='undef' +d_readv='undef' +d_recvmsg='undef' d_rename='undef' d_rewinddir='undef' d_rmdir='undef' @@ -228,11 +233,13 @@ d_semctl_semid_ds='undef' d_semctl_semun='undef' d_semget='undef' d_semop='undef' +d_sendmsg='undef' d_setegid='undef' d_seteuid='undef' d_setgrent='undef' d_setgrps='undef' d_sethent='undef' +d_setitimer='undef' d_setlinebuf='undef' d_setlocale='undef' d_setnent='undef' @@ -308,9 +315,12 @@ d_time='undef' d_times='undef' d_truncate='undef' d_tzname='undef' +d_u32align='define' +d_ualarm='undef' d_umask='undef' d_uname='undef' d_union_semun='undef' +d_usleep='undef' d_ustat='undef' d_vendorarch='undef' d_vendorbin='undef' @@ -325,6 +335,7 @@ d_wait4='undef' d_waitpid='undef' d_wcstombs='undef' d_wctomb='undef' +d_writev='undef' d_xenix='undef' db_hashtype='u_int32_t' db_prefixtype='size_t' diff --git a/vos/config.alpha.def b/vos/config.alpha.def index 3128752..1242114 100644 --- a/vos/config.alpha.def +++ b/vos/config.alpha.def @@ -36,6 +36,7 @@ $d_charvspr='undef' $d_chown='undef' $d_chroot='undef' $d_chsize='undef' +$d_cmsghdr_s='undef' $d_const='define' $d_crypt='undef' $d_csh='undef' @@ -86,6 +87,7 @@ $d_gethbyname='define' $d_gethent='define' $d_gethname='define' $d_gethostprotos='define' +$d_getitimer='undef' $d_getlogin='define' $d_getmnt='undef' $d_getmntent='undef' @@ -156,6 +158,7 @@ $d_msg_dontroute='undef' $d_msg_oob='undef' $d_msg_peek='undef' $d_msg_proxy='undef' +$d_msghdr_s='undef' $d_msync='undef' $d_munmap='undef' $d_mymalloc='undef' @@ -187,6 +190,8 @@ $d_pwquota='undef' $d_quad='undef' $d_readdir='define' $d_readlink='define' +$d_readv='undef' +$d_recvmsg='undef' $d_rename='define' $d_rewinddir='define' $d_rmdir='define' @@ -202,6 +207,7 @@ $d_select='define' $d_sem='undef' $d_semctl_semid_ds='undef' $d_semctl_semun='undef' +$d_sendmsg='undef' $d_setegid='undef' $d_seteuid='undef' $d_setgrent='undef' @@ -274,9 +280,12 @@ $d_telldirproto='undef' $d_times='define' $d_truncate='undef' $d_tzname='define' +$d_u32align='define' +$d_ualarm='undef' $d_umask='define' $d_uname='define' $d_union_semun='undef' +$d_usleep='undef' $d_ustat='undef' $d_vendorarch='define' $d_vendorlib='define' @@ -288,6 +297,7 @@ $d_wait4='undef' $d_waitpid='define' $d_wcstombs='define' $d_wctomb='define' +$d_writev='undef' $db_hashtype='int' $db_prefixtype='int' $defvoidused='15' diff --git a/vos/config.alpha.h b/vos/config.alpha.h index a4d0f3d..c4291f9 100644 --- a/vos/config.alpha.h +++ b/vos/config.alpha.h @@ -442,6 +442,19 @@ */ #define HAS_READLINK /**/ +/* HAS_READV: + * This symbol, if defined, indicates that the readv routine is + * available to do gather reads. You will also need + * and there I_SYSUIO. + */ +/*#define HAS_READV /**/ + +/* HAS_RECVMSG: + * This symbol, if defined, indicates that the recvmsg routine is + * available to send structured socket messages. + */ +/*#define HAS_RECVMSG /**/ + /* HAS_RENAME: * This symbol, if defined, indicates that the rename routine is available * to rename files. Otherwise you should do the unlink(), link(), unlink() @@ -667,6 +680,12 @@ */ #define HAS_UMASK /**/ +/* HAS_USLEEP: + * This symbol, if defined, indicates that the usleep routine is + * available to let the process sleep on a sub-second accuracy. + */ +/*#define HAS_USLEEP /**/ + /* HASVOLATILE: * This symbol, if defined, indicates that this C compiler knows about * the volatile declaration. @@ -1258,6 +1277,12 @@ */ /*#define VOID_CLOSEDIR /**/ +/* HAS_STRUCT_CMSGHDR: + * This symbol, if defined, indicates that the struct cmsghdr + * is supported. + */ +/*#define HAS_STRUCT_CMSGHDR / **/ + /* HAS_CSH: * This symbol, if defined, indicates that the C-shell exists. */ @@ -1472,6 +1497,12 @@ */ #define HAS_GETHOST_PROTOS /**/ +/* HAS_GETITIMER: + * This symbol, if defined, indicates that the getitimer routine is + * available to return interval timers. + */ +/*#define HAS_GETITIMER /**/ + /* HAS_GETMNT: * This symbol, if defined, indicates that the getmnt routine is * available to get filesystem mount info by filename. @@ -1762,6 +1793,12 @@ */ /*#define HAS_MSG /**/ +/* HAS_STRUCT_MSGHDR: + * This symbol, if defined, indicates that the struct msghdr + * is supported. + */ +/*#define HAS_STRUCT_MSGHDR / **/ + /* HAS_OFF64_T: * This symbol will be defined if the C compiler supports off64_t. */ @@ -1840,6 +1877,12 @@ */ /*#define HAS_SEM /**/ +/* HAS_SENDMSG: + * This symbol, if defined, indicates that the sendmsg routine is + * available to send structured socket messages. + */ +/*#define HAS_SENDMSG /**/ + /* HAS_SETGRENT: * This symbol, if defined, indicates that the setgrent routine is * available for initializing sequential access of the group database. @@ -1859,6 +1902,12 @@ */ #define HAS_SETHOSTENT /**/ +/* HAS_SETITIMER: + * This symbol, if defined, indicates that the setitimer routine is + * available to set interval timers. + */ +/*#define HAS_SETITIMER /**/ + /* HAS_SETNETENT: * This symbol, if defined, indicates that the setnetent() routine is * available. @@ -2189,6 +2238,12 @@ */ #define HAS_TIMES /**/ +/* HAS_UALARM: + * This symbol, if defined, indicates that the ualarm routine is + * available to do alarms with microsecond granularity. + */ +/*#define HAS_UALARM /**/ + /* HAS_UNION_SEMUN: * This symbol, if defined, indicates that the union semun is * defined by including . If not, the user code @@ -2244,6 +2299,12 @@ #define HAS_VPRINTF /**/ /*#define USE_CHAR_VSPRINTF /**/ +/* HAS_WRITEV: + * This symbol, if defined, indicates that the writev routine is + * available to do scatter writes. + */ +/*#define HAS_WRITEV /**/ + /* USE_DYNAMIC_LOADING: * This symbol, if defined, indicates that dynamic loading of * some sort is available. @@ -3262,4 +3323,10 @@ */ /*#define HAS_SOCKATMARK / **/ +/* U32_ALIGNMENT_REQUIRED: + * This symbol, if defined, indicates that you must access + * character data through U32-aligned pointers. + */ +#define U32_ALIGNMENT_REQUIRED /**/ + #endif diff --git a/vos/config.ga.def b/vos/config.ga.def index 7f0cbdb..63d2aa9 100644 --- a/vos/config.ga.def +++ b/vos/config.ga.def @@ -36,6 +36,7 @@ $d_charvspr='undef' $d_chown='define' $d_chroot='undef' $d_chsize='undef' +$d_cmsghdr_s='undef' $d_const='define' $d_crypt='undef' $d_csh='define' @@ -86,6 +87,7 @@ $d_gethbyname='define' $d_gethent='define' $d_gethname='define' $d_gethostprotos='define' +$d_getitimer='undef' $d_getlogin='define' $d_getmnt='undef' $d_getmntent='undef' @@ -156,6 +158,7 @@ $d_msg_dontroute='undef' $d_msg_oob='undef' $d_msg_peek='undef' $d_msg_proxy='undef' +$d_msghdr_s='undef' $d_msync='undef' $d_munmap='define' $d_mymalloc='undef' @@ -187,6 +190,8 @@ $d_pwquota='undef' $d_quad='undef' $d_readdir='define' $d_readlink='define' +$d_readv='undef' +$d_recvmsg='undef' $d_rename='define' $d_rewinddir='define' $d_rmdir='define' @@ -202,6 +207,7 @@ $d_select='define' $d_sem='undef' $d_semctl_semid_ds='undef' $d_semctl_semun='undef' +$d_sendmsg='undef' $d_setegid='define' $d_seteuid='define' $d_setgrent='undef' @@ -274,9 +280,12 @@ $d_telldirproto='undef' $d_times='define' $d_truncate='undef' $d_tzname='define' +$d_u32align='define' +$d_ualarm='undef' $d_umask='define' $d_uname='define' $d_union_semun='undef' +$d_usleep='undef' $d_ustat='undef' $d_vendorarch='define' $d_vendorlib='define' @@ -288,6 +297,7 @@ $d_wait4='define' $d_waitpid='define' $d_wcstombs='define' $d_wctomb='define' +$d_writev='undef' $db_hashtype='int' $db_prefixtype='int' $defvoidused='15' diff --git a/vos/config.ga.h b/vos/config.ga.h index f54c4de..642b65b 100644 --- a/vos/config.ga.h +++ b/vos/config.ga.h @@ -442,6 +442,19 @@ */ #define HAS_READLINK /**/ +/* HAS_READV: + * This symbol, if defined, indicates that the readv routine is + * available to do gather reads. You will also need + * and there I_SYSUIO. + */ +/*#define HAS_READV /**/ + +/* HAS_RECVMSG: + * This symbol, if defined, indicates that the recvmsg routine is + * available to send structured socket messages. + */ +/*#define HAS_RECVMSG /**/ + /* HAS_RENAME: * This symbol, if defined, indicates that the rename routine is available * to rename files. Otherwise you should do the unlink(), link(), unlink() @@ -679,6 +692,12 @@ */ #define HAS_UMASK /**/ +/* HAS_USLEEP: + * This symbol, if defined, indicates that the usleep routine is + * available to let the process sleep on a sub-second accuracy. + */ +/*#define HAS_USLEEP /**/ + /* HASVOLATILE: * This symbol, if defined, indicates that this C compiler knows about * the volatile declaration. @@ -1270,6 +1289,12 @@ */ /*#define VOID_CLOSEDIR /**/ +/* HAS_STRUCT_CMSGHDR: + * This symbol, if defined, indicates that the struct cmsghdr + * is supported. + */ +/*#define HAS_STRUCT_CMSGHDR / **/ + /* HAS_CSH: * This symbol, if defined, indicates that the C-shell exists. */ @@ -1484,6 +1509,12 @@ */ #define HAS_GETHOST_PROTOS /**/ +/* HAS_GETITIMER: + * This symbol, if defined, indicates that the getitimer routine is + * available to return interval timers. + */ +/*#define HAS_GETITIMER /**/ + /* HAS_GETMNT: * This symbol, if defined, indicates that the getmnt routine is * available to get filesystem mount info by filename. @@ -1774,6 +1805,12 @@ */ /*#define HAS_MSG /**/ +/* HAS_STRUCT_MSGHDR: + * This symbol, if defined, indicates that the struct msghdr + * is supported. + */ +/*#define HAS_STRUCT_MSGHDR / **/ + /* HAS_OFF64_T: * This symbol will be defined if the C compiler supports off64_t. */ @@ -1852,6 +1889,12 @@ */ /*#define HAS_SEM /**/ +/* HAS_SENDMSG: + * This symbol, if defined, indicates that the sendmsg routine is + * available to send structured socket messages. + */ +/*#define HAS_SENDMSG /**/ + /* HAS_SETGRENT: * This symbol, if defined, indicates that the setgrent routine is * available for initializing sequential access of the group database. @@ -1871,6 +1914,12 @@ */ #define HAS_SETHOSTENT /**/ +/* HAS_SETITIMER: + * This symbol, if defined, indicates that the setitimer routine is + * available to set interval timers. + */ +/*#define HAS_SETITIMER /**/ + /* HAS_SETNETENT: * This symbol, if defined, indicates that the setnetent() routine is * available. @@ -2189,6 +2238,12 @@ */ #define HAS_TIMES /**/ +/* HAS_UALARM: + * This symbol, if defined, indicates that the ualarm routine is + * available to do alarms with microsecond granularity. + */ +/*#define HAS_UALARM /**/ + /* HAS_UNION_SEMUN: * This symbol, if defined, indicates that the union semun is * defined by including . If not, the user code @@ -2244,6 +2299,12 @@ #define HAS_VPRINTF /**/ /*#define USE_CHAR_VSPRINTF /**/ +/* HAS_WRITEV: + * This symbol, if defined, indicates that the writev routine is + * available to do scatter writes. + */ +/*#define HAS_WRITEV /**/ + /* USE_DYNAMIC_LOADING: * This symbol, if defined, indicates that dynamic loading of * some sort is available. @@ -3262,4 +3323,10 @@ */ /*#define HAS_SOCKATMARK / **/ +/* U32_ALIGNMENT_REQUIRED: + * This symbol, if defined, indicates that you must access + * character data through U32-aligned pointers. + */ +#define U32_ALIGNMENT_REQUIRED /**/ + #endif diff --git a/win32/config.bc b/win32/config.bc index f777579..b859846 100644 --- a/win32/config.bc +++ b/win32/config.bc @@ -106,6 +106,7 @@ d_chroot='undef' d_chsize='define' d_closedir='define' d_const='define' +d_cmsghdr_s='undef' d_crypt='undef' d_csh='undef' d_cuserid='undef' @@ -159,6 +160,7 @@ d_gethbyname='define' d_gethent='undef' d_gethname='define' d_gethostprotos='define' +d_getitimer='undef' d_getlogin='define' d_getmnt='undef' d_getmntent='undef' @@ -231,6 +233,7 @@ d_msg_peek='undef' d_msg_proxy='undef' d_msgctl='undef' d_msgget='undef' +d_msghdr_s='undef' d_msgrcv='undef' d_msgsnd='undef' d_msync='undef' @@ -264,6 +267,8 @@ d_qgcvt='undef' d_quad='undef' d_readdir='define' d_readlink='undef' +d_readv='undef' +d_recvmsg='undef' d_rename='define' d_rewinddir='define' d_rmdir='define' @@ -281,11 +286,13 @@ d_semctl_semid_ds='undef' d_semctl_semun='undef' d_semget='undef' d_semop='undef' +d_sendmsg='undef' d_setegid='undef' d_seteuid='undef' d_setgrent='undef' d_setgrps='undef' d_sethent='undef' +d_setitimer='undef' d_setlinebuf='undef' d_setlocale='define' d_setnent='undef' @@ -360,9 +367,12 @@ d_time='define' d_times='define' d_truncate='undef' d_tzname='define' +d_u32align='define' +d_ualarm='undef' d_umask='define' d_uname='define' d_union_semun='define' +d_usleep='undef' d_ustat='undef' d_vendorarch='undef' d_vendorbin='undef' @@ -377,6 +387,7 @@ d_wait4='undef' d_waitpid='define' d_wcstombs='define' d_wctomb='define' +d_writev='undef' d_xenix='undef' date='date' db_hashtype='int' diff --git a/win32/config.gc b/win32/config.gc index 64ccb20..e3bd468 100644 --- a/win32/config.gc +++ b/win32/config.gc @@ -106,6 +106,7 @@ d_chroot='undef' d_chsize='define' d_closedir='define' d_const='define' +d_cmsghdr_s='undef' d_crypt='undef' d_csh='undef' d_cuserid='undef' @@ -159,6 +160,7 @@ d_gethbyname='define' d_gethent='undef' d_gethname='define' d_gethostprotos='define' +d_getitimer='undef' d_getlogin='define' d_getmnt='undef' d_getmntent='undef' @@ -231,6 +233,7 @@ d_msg_peek='undef' d_msg_proxy='undef' d_msgctl='undef' d_msgget='undef' +d_msghdr_s='undef' d_msgrcv='undef' d_msgsnd='undef' d_msync='undef' @@ -264,6 +267,8 @@ d_qgcvt='undef' d_quad='undef' d_readdir='define' d_readlink='undef' +d_readv='undef' +d_recvmsg='undef' d_rename='define' d_rewinddir='define' d_rmdir='define' @@ -281,11 +286,13 @@ d_semctl_semid_ds='undef' d_semctl_semun='undef' d_semget='undef' d_semop='undef' +d_sendmsg='undef' d_setegid='undef' d_seteuid='undef' d_setgrent='undef' d_setgrps='undef' d_sethent='undef' +d_setitimer='undef' d_setlinebuf='undef' d_setlocale='define' d_setnent='undef' @@ -360,9 +367,12 @@ d_time='define' d_times='define' d_truncate='undef' d_tzname='define' +d_u32align='define' +d_ualarm='undef' d_umask='define' d_uname='define' d_union_semun='define' +d_usleep='undef' d_ustat='undef' d_vendorarch='undef' d_vendorbin='undef' @@ -377,6 +387,7 @@ d_wait4='undef' d_waitpid='define' d_wcstombs='define' d_wctomb='define' +d_writev='undef' d_xenix='undef' date='date' db_hashtype='int' diff --git a/win32/config.vc b/win32/config.vc index b243518..0495fd5 100644 --- a/win32/config.vc +++ b/win32/config.vc @@ -106,6 +106,7 @@ d_chroot='undef' d_chsize='define' d_closedir='define' d_const='define' +d_cmsghdr_s='undef' d_crypt='undef' d_csh='undef' d_cuserid='undef' @@ -159,6 +160,7 @@ d_gethbyname='define' d_gethent='undef' d_gethname='define' d_gethostprotos='define' +d_getitimer='undef' d_getlogin='define' d_getmnt='undef' d_getmntent='undef' @@ -231,6 +233,7 @@ d_msg_peek='undef' d_msg_proxy='undef' d_msgctl='undef' d_msgget='undef' +d_msghdr_s='undef' d_msgrcv='undef' d_msgsnd='undef' d_msync='undef' @@ -264,6 +267,8 @@ d_qgcvt='undef' d_quad='undef' d_readdir='define' d_readlink='undef' +d_readv='undef' +d_recvmsg='undef' d_rename='define' d_rewinddir='define' d_rmdir='define' @@ -281,11 +286,13 @@ d_semctl_semid_ds='undef' d_semctl_semun='undef' d_semget='undef' d_semop='undef' +d_sendmsg='undef' d_setegid='undef' d_seteuid='undef' d_setgrent='undef' d_setgrps='undef' d_sethent='undef' +d_setitimer='undef' d_setlinebuf='undef' d_setlocale='define' d_setnent='undef' @@ -360,9 +367,12 @@ d_time='define' d_times='define' d_truncate='undef' d_tzname='define' +d_u32align='define' +d_ualarm='undef' d_umask='define' d_uname='define' d_union_semun='define' +d_usleep='undef' d_ustat='undef' d_vendorarch='undef' d_vendorbin='undef' @@ -377,6 +387,7 @@ d_wait4='undef' d_waitpid='define' d_wcstombs='define' d_wctomb='define' +d_writev='undef' d_xenix='undef' date='date' db_hashtype='int'