Introduce d_u32align / U32_REQUIRES_ALIGNMENT, needed for
Jarkko Hietaniemi [Thu, 5 Apr 2001 17:47:01 +0000 (17:47 +0000)]
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

20 files changed:
Configure
MANIFEST
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
configure.com
epoc/config.sh
ext/Digest/MD5/Makefile.PL
perl.h
t/lib/md5-align.t [new file with mode: 0644]
uconfig.h
uconfig.sh
vos/config.alpha.def
vos/config.alpha.h
vos/config.ga.def
vos/config.ga.h
win32/config.bc
win32/config.gc
win32/config.vc

index e170872..d2fe5bb 100755 (executable)
--- 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$$ <<EOF
@@ -324,6 +324,7 @@ d_chroot=''
 d_chsize=''
 d_closedir=''
 d_void_closedir=''
+d_cmsghdr_s=''
 d_const=''
 cryptlib=''
 d_crypt=''
@@ -381,6 +382,7 @@ d_gethname=''
 d_phostname=''
 d_uname=''
 d_gethostprotos=''
+d_getitimer=''
 d_getlogin=''
 d_getmnt=''
 d_getmntent=''
@@ -449,6 +451,7 @@ d_mprotect=''
 d_msg=''
 d_msgctl=''
 d_msgget=''
+d_msghdr_s=''
 d_msgrcv=''
 d_msgsnd=''
 d_msync=''
@@ -473,6 +476,8 @@ d_rewinddir=''
 d_seekdir=''
 d_telldir=''
 d_readlink=''
+d_readv=''
+d_recvmsg=''
 d_rename=''
 d_rmdir=''
 d_safebcpy=''
@@ -484,11 +489,13 @@ d_sem=''
 d_semctl=''
 d_semget=''
 d_semop=''
+d_sendmsg=''
 d_setegid=''
 d_seteuid=''
 d_setgrent=''
 d_setgrps=''
 d_sethent=''
+d_setitimer=''
 d_setlinebuf=''
 d_setlocale=''
 d_setnent=''
@@ -582,10 +589,13 @@ clocktype=''
 d_times=''
 d_truncate=''
 d_tzname=''
+d_u32align=''
+d_ualarm=''
 d_umask=''
 d_semctl_semid_ds=''
 d_semctl_semun=''
 d_union_semun=''
+d_usleep=''
 d_ustat=''
 d_vfork=''
 usevfork=''
@@ -598,6 +608,7 @@ d_wait4=''
 d_waitpid=''
 d_wcstombs=''
 d_wctomb=''
+d_writev=''
 dlext=''
 cccdlflags=''
 ccdlflags=''
@@ -8712,6 +8723,144 @@ eval $inlibc
 set chsize d_chsize
 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 sys/types.h has to be included
+set sys/types.h i_systypes
+eval $inhdr
+
+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 <<EOF
+#include <sys/types.h>
+#include <sys/socket.h>
+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 <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-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
 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
 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 <<EOM
+You seem to be either cross-compiling or doing a multiarchitecture build,
+skipping the byteorder check.
+
+EOM
+       byteorder='0xffff'
+       ;;
+*)
+       case "$byteorder" in
+       '')
+               $cat <<'EOM'
+In the following, larger digits indicate more significance.  A big-endian
+machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
+little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
+machines may have weird orders like 3412.  A Cray will report 87654321,
+an Alpha will report 12345678. If the test program works the default is
+probably right.
+I'm now running the test program...
+EOM
+               $cat >try.c <<'EOCP'
+#include <stdio.h>
+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 <<EOM
+
+Checking to see whether you can access character data unalignedly...
+EOM
+$cat >try.c <<EOCP
+#include <stdio.h>
+#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 <<EOM
+You can access character data pretty unalignedly.
+EOM
+               d_u32align="$undef"
+               ;;
+       *)      cat >&4 <<EOM
+It seems that you must access character data in an aligned manner.
+EOM
+               d_u32align="$define"
+               ;;
+       esac
+       $rm -f core core.try.* try.core
+else
+       rp='Can you access character data at unaligned addresses?'
+       dflt='n'
+       . ./myread
+       case "$ans" in
+       [yY]*)  d_u32align="$undef"  ;;
+       *)      d_u32align="$define" ;;
+       esac
+fi
+
+: see if ualarm exists
+set ualarm d_ualarm
+eval $inlibc
+
 : see if umask exists
 set umask d_umask
 eval $inlibc
 
+: see if usleep exists
+set usleep d_usleep
+eval $inlibc
+
 : see if ustat exists
 set ustat d_ustat
 eval $inlibc
@@ -12637,6 +12869,10 @@ eval $inlibc
 set wctomb d_wctomb
 eval $inlibc
 
+: see if writev exists
+set writev d_writev
+eval $inlibc
+
 : preserve RCS keywords in files with variable substitution, grrr
 Date='$Date'
 Id='$Id'
@@ -12644,17 +12880,6 @@ Log='$Log'
 RCSfile='$RCSfile'
 Revision='$Revision'
 
-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 alignment requirements
 echo " "
 case "$crosscompile$multiarch" in
@@ -12714,84 +12939,6 @@ esac
 : set the base revision
 baserev=5.0
 
-: check for ordering of bytes in a long
-echo " "
-case "$crosscompile$multiarch" in
-*$define*)
-       $cat <<EOM
-You seem to be either cross-compiling or doing a multiarchitecture build,
-skipping the byteorder check.
-
-EOM
-       byteorder='0xffff'
-       ;;
-*)
-       case "$byteorder" in
-       '')
-               $cat <<'EOM'
-In the following, larger digits indicate more significance.  A big-endian
-machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
-little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
-machines may have weird orders like 3412.  A Cray will report 87654321,
-an Alpha will report 12345678. If the test program works the default is
-probably right.
-I'm now running the test program...
-EOM
-               $cat >try.c <<'EOCP'
-#include <stdio.h>
-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'
index 2d05186..11c4c57 100644 (file)
--- 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
index 61a52c5..d621d2f 100644 (file)
@@ -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 <sys/sem.h>.
 
+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.
index 3853ffb..1e09d64 100644 (file)
@@ -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'
index fb8bf3b..5c1db50 100644 (file)
@@ -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 
  */
  */
 #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.
  */
 /*#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.
  */
  */
 #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.
  */
 #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.
  */
 #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 <sys/uio.h>
+ *     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
  */
 #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.
  */
 #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.
  */
 #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 <sys/sem.h>.  If not, the user code
 #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.
  */
 /*#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
index eb95593..0b828e6 100644 (file)
@@ -665,6 +665,12 @@ sed <<!GROK!THIS! >$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 <<!GROK!THIS! >$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 <<!GROK!THIS! >$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 <<!GROK!THIS! >$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 <<!GROK!THIS! >$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 <sys/uio.h>
+ *     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 <<!GROK!THIS! >$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 <<!GROK!THIS! >$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 <<!GROK!THIS! >$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 <sys/sem.h>.  If not, the user code
@@ -2277,6 +2332,12 @@ sed <<!GROK!THIS! >$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 <<!GROK!THIS! >$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!
index 6bb3040..8b13c1f 100644 (file)
@@ -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'"
index 2c4c03e..7606769 100644 (file)
@@ -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'
index 9d59dba..31dcabf 100644 (file)
@@ -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 (file)
--- 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 <sys/socket.h>
 # 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 (file)
index 0000000..4176062
--- /dev/null
@@ -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";
+
index 60239ac..6914151 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
  */
 /*#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.
  */
 /*#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.
  */
  */
 /*#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.
  */
 /*#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.
  */
 #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 <sys/uio.h>
+ *     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
  */
 /*#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.
  */
 /*#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.
  */
 /*#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 <sys/sem.h>.  If not, the user code
 #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.
  */
 /*#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
index f2afe30..9ded43b 100755 (executable)
@@ -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'
index 3128752..1242114 100644 (file)
@@ -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'
index a4d0f3d..c4291f9 100644 (file)
  */
 #define HAS_READLINK           /**/
 
+/* HAS_READV:
+ *     This symbol, if defined, indicates that the readv routine is
+ *     available to do gather reads.  You will also need <sys/uio.h>
+ *     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()
  */
 #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.
  */
 /*#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.
  */
  */
 #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.
  */
 /*#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.
  */
  */
 /*#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.
  */
 #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.
  */
 #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 <sys/sem.h>.  If not, the user code
 #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.
  */
 /*#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
index 7f0cbdb..63d2aa9 100644 (file)
@@ -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'
index f54c4de..642b65b 100644 (file)
  */
 #define HAS_READLINK           /**/
 
+/* HAS_READV:
+ *     This symbol, if defined, indicates that the readv routine is
+ *     available to do gather reads.  You will also need <sys/uio.h>
+ *     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()
  */
 #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.
  */
 /*#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.
  */
  */
 #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.
  */
 /*#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.
  */
  */
 /*#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.
  */
 #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.
  */
 #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 <sys/sem.h>.  If not, the user code
 #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.
  */
 /*#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
index f777579..b859846 100644 (file)
@@ -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'
index 64ccb20..e3bd468 100644 (file)
@@ -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'
index b243518..0495fd5 100644 (file)
@@ -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'