all GNU libc platforms have MSG_PROXY. Untrue).
In fact this ended up as a major MSG_* and SCM_*
update. The MSG_XXX known to be enums in some
versions of the glibc are now probed for and respective
HAS_MSG_XXX are defined. While I was at it I noticed
SCM_RIGHTS being similarly an enum. This reminded me of
an ancient discussion in perl5-porters:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/9612/msg01017.html
The BSD socket interface has a nifty feature for passing
file descriptors and credentials--via sockets. It may be
too late to add this functionality to the CORE but
at least Configure now probes for the functions,
structs, and includes, defining the appropriate
HAS_YYY and I_ZZZ, and the Socket extension exports
the constants, in case somebody wants to write an
extension for this interface.
p4raw-id: //depot/cfgperl@2285
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Thu Nov 12 19:00:08 EET 1998 [metaconfig 3.0 PL70]
+# Generated on Sun Nov 22 19:12:18 EET 1998 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by jhi@iki.fi)
cat >/tmp/c1$$ <<EOF
d_seekdir=''
d_telldir=''
d_readlink=''
+d_readv=''
d_rename=''
d_rmdir=''
d_safebcpy=''
d_shmget=''
d_sigaction=''
d_sigsetjmp=''
+d_cmsghdr_s=''
+d_msg_ctrunc=''
+d_msg_dontroute=''
+d_msg_oob=''
+d_msg_peek=''
+d_msg_proxy=''
+d_msghdr_s=''
d_oldsock=''
+d_recvmsg=''
+d_scm_rights=''
+d_sendmsg=''
d_socket=''
d_sockpair=''
sockethdr=''
d_waitpid=''
d_wcstombs=''
d_wctomb=''
+d_writev=''
d_dbmclose64=''
d_dbminit64=''
d_delete64=''
i_sysstat=''
i_systimes=''
i_systypes=''
+d_iovec_s=''
+i_sysuio=''
i_sysun=''
i_syswait=''
i_sgtty=''
intsize=''
longsize=''
shortsize=''
-d_dirent64s=''
-d_flock64s=''
+d_dirent64_s=''
+d_flock64_s=''
d_fstat64=''
d_ftruncate64=''
d_ino64t=''
set chsize d_chsize
eval $inlibc
+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; foo.$field = 0; }" >> try.c;
+if eval $cc $optimize $ccflags -c try.c >/dev/null 2>&1; then
+ val="$define";
+else
+ val="$undef";
+fi;
+set $varname;
+eval $setvar;
+$rm -f try.c try.o'
+
+: see if this is a sys/uio.h system
+set sys/uio.h i_sysuio
+eval $inhdr
+
+echo "Checking to see if your system supports struct iovec..." >&4
+set d_iovec_s iovec iov_base $i_sysuio sys/uio.h
+eval $hasfield
+case "$d_iovec_s" in
+"$define") echo "Yup, it does." >&4
+ ;;
+*) echo "Nope, it doesn't." >&4
+ ;;
+esac
+
+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 "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/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
+
+set sendmsg d_sendmsg
+eval $inlibc
+
+set recvmsg d_recvmsg
+eval $inlibc
+
+echo " "
+$echo $n "Checking to see if your system supports struct msghdr...$c" >&4
+set d_msghdr_s msghdr msg_name define sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
+eval $hasfield
+case "$d_msghdr_s" in
+"$define") echo "Yup, it does." >&4
+ ;;
+*) echo "Nope, it doesn't." >&4
+ ;;
+esac
+
+$echo $n "Checking to see if your system supports struct cmsghdr...$c" >&4
+set d_cmsghdr_s cmsghdr cmsg_len define sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
+eval $hasfield
+case "$d_cmsghdr_s" in
+"$define") echo "Yup, it does." >&4
+ ;;
+*) echo "Nope, it doesn't." >&4
+ ;;
+esac
+
: check for const keyword
echo " "
echo 'Checking to see if your C compiler knows about "const"...' >&4
eval $setvar
$rm -f try.c
-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; foo.$field = 0; }" >> try.c;
-if eval $cc $optimize $ccflags -c try.c >/dev/null 2>&1; then
- val="$define";
-else
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm -f try.c try.o'
-
if $test X"$use64bits" = X"$define"; then
: see if fstat64 exists
echo " "
echo "Checking to see if your system supports struct flock64..." >&4
if $h_fcntl; then
- set d_flock64s flock64 l_len define fcntl.h
+ set d_flock64_s flock64 l_len define fcntl.h
eval $hasfield
else
val="$undef"
- set d_flock64s
+ set d_flock64_s
eval $setvar
fi
- case "$d_flock64s" in
+ case "$d_flock64_s" in
"$define") echo "Yup, it does." >&4
;;
*) echo "Nope, it doesn't." >&4
: check for struct dirent64
echo " "
echo "Checking to see if your system supports struct dirent64..." >&4
- set d_dirent64s dirent64 d_off $i_dirent dirent.h
+ set d_dirent64_s dirent64 d_off $i_dirent dirent.h
eval $hasfield
- case "$d_flock64s" in
+ case "$d_dirent64_s" in
"$define") echo "Yup, it does." >&4
;;
*) echo "Nope, it doesn't." >&4
else
val="$undef"
- for xxx in d_fstat64 d_ftruncate64 d_lockf64 d_lseek64 d_lstat64 d_open64 d_opendir64 d_readdir64 d_seekdir64 d_stat64 d_telldir64 d_truncate64 d_off64t d_ino64t d_flock64s d_dirent64s
+ for xxx in d_fstat64 d_ftruncate64 d_lockf64 d_lseek64 d_lstat64 d_open64 d_opendir64 d_readdir64 d_seekdir64 d_stat64 d_telldir64 d_truncate64 d_off64t d_ino64t d_flock64_s d_dirent64_s
do
set $xxx
eval $setvar
set fcntl d_fcntl
eval $inlibc
-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
-
: see if sys/select.h has to be included
set sys/select.h i_sysselct
eval $inhdr
set readlink d_readlink
eval $inlibc
+: see if readv exists
+set readv d_readv
+eval $inlibc
+
: see if rename exists
set rename d_rename
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'
: How can we generate normalized random numbers ?
echo " "
+echo "Looking for a random number function..." >&4
case "$randfunc" in
'')
if set drand48 val -f; eval $csym; $val; then
cont=''
else
dflt=n
- rp="Function $ans does not exists. Use that name anyway?"
+ rp="Function $ans does not exist. Use that name anyway?"
. ./myread
dflt=rand
case "$ans" in
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'
d_dbminit64='$d_dbminit64'
d_delete64='$d_delete64'
d_difftime='$d_difftime'
-d_dirent64s='$d_dirent64s'
+d_dirent64_s='$d_dirent64_s'
d_dirnamlen='$d_dirnamlen'
d_dlerror='$d_dlerror'
d_dlopen='$d_dlopen'
d_fgetpos='$d_fgetpos'
d_firstkey64='$d_firstkey64'
d_flexfnam='$d_flexfnam'
-d_flock64s='$d_flock64s'
+d_flock64_s='$d_flock64_s'
d_flock='$d_flock'
d_fopen64='$d_fopen64'
d_fork='$d_fork'
d_inetaton='$d_inetaton'
d_ino64t='$d_ino64t'
d_int64t='$d_int64t'
+d_iovec_s='$d_iovec_s'
d_isascii='$d_isascii'
d_killpg='$d_killpg'
d_lchown='$d_lchown'
d_mkfifo='$d_mkfifo'
d_mktime='$d_mktime'
d_msg='$d_msg'
+d_msg_ctrunc='$d_msg_ctrunc'
+d_msg_dontroute='$d_msg_dontroute'
+d_msg_oob='$d_msg_oob'
+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_mymalloc='$d_mymalloc'
d_readdir64='$d_readdir64'
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'
d_safemcpy='$d_safemcpy'
d_sanemcmp='$d_sanemcmp'
d_sched_yield='$d_sched_yield'
+d_scm_rights='$d_scm_rights'
d_seekdir64='$d_seekdir64'
d_seekdir='$d_seekdir'
d_select='$d_select'
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_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'
i_systimek='$i_systimek'
i_systimes='$i_systimes'
i_systypes='$i_systypes'
+i_sysuio='$i_sysuio'
i_sysun='$i_sysun'
i_syswait='$i_syswait'
i_termio='$i_termio'
This variable conditionally defines HAS_CLOSEDIR if closedir() is
available.
+d_cmsghdr_s (d_socket.U):
+ This variable conditionally defines the HAS_STRUCT_CMSGHDR symbol,
+ which indicates that the 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
This variable conditionally defines the HAS_DIFFTIME symbol, which
indicates to the C program that the difftime() routine is available.
-d_dirent64s (io64.U):
+d_dirent64_s (io64.U):
This symbol will be defined if the C compiler supports struct dirent64.
d_dirnamlen (i_dirent.U):
This variable conditionally defines the FLEXFILENAMES symbol, which
indicates that the system supports filenames longer than 14 characters.
-d_flock64s (io64.U):
+d_flock64_s (io64.U):
This symbol will be defined if the C compiler supports struct flock64.
d_flock (d_flock.U):
d_int64t (i_inttypes.U):
This symbol will be defined if the C compiler supports int64_t.
+d_iovec_s (i_sysuio.U):
+ This variable conditionally defines the HAS_STRUCT_IOVEC symbol,
+ which indicates that the struct iovec is supported.
+
d_isascii (d_isascii.U):
This variable conditionally defines the HAS_ISASCII constant,
which indicates to the C program that isascii() is available.
This variable conditionally defines the HAS_MSG symbol, which
indicates that the entire msg*(2) library is present.
+d_msg_ctrunc (d_socket.U):
+ This variable conditionally defines the HAS_MSG_CTRUNC symbol,
+ which indicates that the MSG_CTRUNC is available. #ifdef is
+ not enough because it may be an enum, glibc has been known to do this.
+
+d_msg_dontroute (d_socket.U):
+ This variable conditionally defines the HAS_MSG_DONTROUTE symbol,
+ which indicates that the MSG_DONTROUTE is available. #ifdef is
+ not enough because it may be an enum, glibc has been known to do this.
+
+d_msg_oob (d_socket.U):
+ This variable conditionally defines the HAS_MSG_OOB symbol,
+ which indicates that the MSG_OOB is available. #ifdef is
+ not enough because it may be an enum, glibc has been known to do this.
+
+d_msg_peek (d_socket.U):
+ This variable conditionally defines the HAS_MSG_PEEK symbol,
+ which indicates that the MSG_PEEK is available. #ifdef is
+ not enough because it may be an enum, glibc has been known to do this.
+
+d_msg_proxy (d_socket.U):
+ This variable conditionally defines the HAS_MSG_PROXY symbol,
+ which indicates that the MSG_PROXY is available. #ifdef is
+ not enough because it may be an enum, glibc has been known to do this.
+
d_msgctl (d_msgctl.U):
This variable conditionally defines the HAS_MSGCTL symbol, which
indicates to the C program that the msgctl() routine is available.
This variable conditionally defines the HAS_MSGGET symbol, which
indicates to the C program that the msgget() routine is available.
+d_msghdr_s (d_socket.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.
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_socket.U):
+ This variable conditionally defines the HAS_RECVMSG symbol,
+ which indicates that the recvmsg is supported.
+
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
symbol if the sched_yield routine is available to yield
the execution of the current thread.
+d_scm_rights (d_socket.U):
+ This variable conditionally defines the HAS_SCM_RIGHTS symbol,
+ which indicates that the SCM_RIGHTS is available. #ifdef is
+ not enough because it may be an enum, glibc has been known to do this.
+
d_seekdir64 (io64.U):
This variable conditionally defines the HAS_SEEKDIR64 symbol, which
indicates to the C program that the seekdir64() routine is available.
This variable conditionally defines the HAS_SEMOP symbol, which
indicates to the C program that the semop() routine is available.
+d_sendmsg (d_socket.U):
+ This variable conditionally defines the HAS_SENDMSG symbol,
+ which indicates that the sendmsg is supported.
+
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
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.
This variable conditionally defines the I_SYS_TYPES symbol,
and indicates whether a C program should include <sys/types.h>.
+i_sysuio (i_sysuio.U):
+ This variable conditionally defines the I_SYSUIO symbol, and indicates
+ whether a C program should include <sys/uio.h>.
+
i_sysun (i_sysun.U):
This variable conditionally defines I_SYS_UN, which indicates
to the C program that it should include <sys/un.h> to get UNIX
# Package name : perl5
# Source directory : .
-# Configuration time: Thu Nov 5 12:26:24 EET 1998
+# Configuration time: Sun Nov 22 19:19:34 EET 1998
# Configured by : jhi
# Target system : osf1 alpha.hut.fi v4.0 878 alpha
ccflags='-pthread -std -D__LANGUAGE_C__'
cf_by='jhi'
cf_email='yourname@yourhost.yourplace.com'
-cf_time='Thu Nov 5 12:26:24 EET 1998'
+cf_time='Sun Nov 22 19:19:34 EET 1998'
chgrp=''
chmod=''
chown=''
d_chroot='define'
d_chsize='undef'
d_closedir='define'
+d_cmsghdr_s='define'
d_const='define'
d_crypt='define'
d_csh='define'
d_dbminit64='undef'
d_delete64='undef'
d_difftime='define'
-d_dirent64s='undef'
+d_dirent64_s='undef'
d_dirnamlen='define'
d_dlerror='define'
d_dlopen='define'
d_fgetpos='define'
d_firstkey64='undef'
d_flexfnam='define'
-d_flock64s='undef'
+d_flock64_s='undef'
d_flock='define'
d_fopen64='undef'
d_fork='define'
d_inetaton='define'
d_ino64t='undef'
d_int64t='undef'
+d_iovec_s='define'
d_isascii='define'
d_killpg='define'
d_lchown='define'
d_mkfifo='define'
d_mktime='define'
d_msg='define'
+d_msg_ctrunc='define'
+d_msg_dontroute='define'
+d_msg_oob='define'
+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_mymalloc='undef'
d_readdir64='undef'
d_readdir='define'
d_readlink='define'
+d_readv='define'
+d_recvmsg='define'
d_rename='define'
d_rewinddir='define'
d_rmdir='define'
d_safemcpy='undef'
d_sanemcmp='define'
d_sched_yield='define'
+d_scm_rights='define'
d_seekdir64='undef'
d_seekdir='define'
d_select='define'
d_semctl_semun='define'
d_semget='define'
d_semop='define'
+d_sendmsg='define'
d_setegid='define'
d_seteuid='define'
d_setgrent='define'
d_waitpid='define'
d_wcstombs='define'
d_wctomb='define'
+d_writev='define'
d_xenix='undef'
date='date'
db_hashtype='u_int32_t'
i_systimek='undef'
i_systimes='define'
i_systypes='define'
+i_sysuio='define'
i_sysun='define'
i_syswait='define'
i_termio='undef'
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Thu Nov 5 13:03:49 EET 1998
+ * Configuration time: Sun Nov 22 19:19:34 EET 1998
* Configured by : jhi
* Target system : osf1 alpha.hut.fi v4.0 878 alpha
*/
* This symbol, if defined, indicates that the BSD socketpair() call is
* supported.
*/
-#define HAS_SOCKET /**/
-#define HAS_SOCKETPAIR /**/
+/* HAS_MSG_CTRUNC:
+ * This symbol, if defined, indicates that the MSG_CTRUNC is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_MSG_DONTROUTE:
+ * This symbol, if defined, indicates that the MSG_DONTROUTE is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_MSG_OOB:
+ * This symbol, if defined, indicates that the MSG_OOB is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_MSG_PEEK:
+ * This symbol, if defined, indicates that the MSG_PEEK is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_MSG_PROXY:
+ * This symbol, if defined, indicates that the MSG_PROXY is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_SCM_RIGHTS:
+ * This symbol, if defined, indicates that the SCM_RIGHTS is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_SENDMSG:
+ * This symbol, if defined, indicates that the sendmsg is supported
+ * to send messages between sockets. You will also need struct
+ * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
+ */
+/* HAS_RECVMSG:
+ * This symbol, if defined, indicates that the recvmsg is supported
+ * to send messages between sockets. You will also need struct
+ * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
+ */
+/* HAS_STRUCT_MSGHDR:
+ * This symbol, if defined, indicates that the struct msghdr
+ * (BSD 4.3 or 4.4) is supported. You will also need struct
+ * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
+ */
+/* HAS_STRUCT_CMSGHDR:
+ * This symbol, if defined, indicates that the struct cmsghdr
+ * (BSD 4.4) is supported. You will also need struct
+ * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
+ */
+#define HAS_SOCKET /**/
+#define HAS_SOCKETPAIR /**/
+#define HAS_MSG_CTRUNC /**/
+#define HAS_MSG_DONTROUTE /**/
+#define HAS_MSG_OOB /**/
+#define HAS_MSG_PEEK /**/
+/*#define HAS_MSG_PROXY / **/
+#define HAS_SCM_RIGHTS /**/
+#define HAS_SENDMSG /**/
+#define HAS_RECVMSG /**/
+#define HAS_STRUCT_MSGHDR /**/
+#define HAS_STRUCT_CMSGHDR /**/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
#define PWGECOS /**/
#define PWPASSWD /**/
+/* I_SYSUIO:
+ * This symbol, if defined, indicates that <sys/uio.h> exists and
+ * should be included.
+ */
+#define I_SYSUIO /**/
+
/* Free_t:
* This variable contains the return type of free(). It is usually
* void, but occasionally int.
*/
/*#define HAS_FTELLO / **/
+/* 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 /**/
+
/* USE_SFIO:
* This symbol, if defined, indicates that sfio should
* be used.
*/
/*#define USE_SFIO / **/
+/* HAS_WRITEV:
+ * This symbol, if defined, indicates that the writev routine is
+ * available to do scatter writes.
+ */
+#define HAS_WRITEV /**/
+
/* HAS_DBMINIT64:
* This symbol, if defined, indicates that the dbminit64 routine is
* available to open dbm files larger than 2 gigabytes.
* This symbol, if defined, indicates that the BSD socketpair() call is
* supported.
*/
-#$d_socket HAS_SOCKET /**/
-#$d_sockpair HAS_SOCKETPAIR /**/
+/* HAS_MSG_CTRUNC:
+ * This symbol, if defined, indicates that the MSG_CTRUNC is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_MSG_DONTROUTE:
+ * This symbol, if defined, indicates that the MSG_DONTROUTE is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_MSG_OOB:
+ * This symbol, if defined, indicates that the MSG_OOB is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_MSG_PEEK:
+ * This symbol, if defined, indicates that the MSG_PEEK is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_MSG_PROXY:
+ * This symbol, if defined, indicates that the MSG_PROXY is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_SCM_RIGHTS:
+ * This symbol, if defined, indicates that the SCM_RIGHTS is supported.
+ * Checking just with #ifdef might not be enough because this symbol
+ * has been known to be an enum.
+ */
+/* HAS_SENDMSG:
+ * This symbol, if defined, indicates that the sendmsg is supported
+ * to send messages between sockets. You will also need struct
+ * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
+ */
+/* HAS_RECVMSG:
+ * This symbol, if defined, indicates that the recvmsg is supported
+ * to send messages between sockets. You will also need struct
+ * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
+ */
+/* HAS_STRUCT_MSGHDR:
+ * This symbol, if defined, indicates that the struct msghdr
+ * (BSD 4.3 or 4.4) is supported. You will also need struct
+ * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
+ */
+/* HAS_STRUCT_CMSGHDR:
+ * This symbol, if defined, indicates that the struct cmsghdr
+ * (BSD 4.4) is supported. You will also need struct
+ * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
+ */
+#$d_socket HAS_SOCKET /**/
+#$d_sockpair HAS_SOCKETPAIR /**/
+#$d_msg_ctrunc HAS_MSG_CTRUNC /**/
+#$d_msg_dontroute HAS_MSG_DONTROUTE /**/
+#$d_msg_oob HAS_MSG_OOB /**/
+#$d_msg_peek HAS_MSG_PEEK /**/
+#$d_msg_proxy HAS_MSG_PROXY /**/
+#$d_scm_rights HAS_SCM_RIGHTS /**/
+#$d_sendmsg HAS_SENDMSG /**/
+#$d_recvmsg HAS_RECVMSG /**/
+#$d_msghdr_s HAS_STRUCT_MSGHDR /**/
+#$d_cmsghdr_s HAS_STRUCT_CMSGHDR /**/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
#$d_pwgecos PWGECOS /**/
#$d_pwpasswd PWPASSWD /**/
+/* I_SYSUIO:
+ * This symbol, if defined, indicates that <sys/uio.h> exists and
+ * should be included.
+ */
+#$i_sysuio I_SYSUIO /**/
+
/* Free_t:
* This variable contains the return type of free(). It is usually
* void, but occasionally int.
*/
#$d_ftello HAS_FTELLO /**/
+/* 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 /**/
+
/* USE_SFIO:
* This symbol, if defined, indicates that sfio should
* be used.
*/
#$d_sfio USE_SFIO /**/
+/* HAS_WRITEV:
+ * This symbol, if defined, indicates that the writev routine is
+ * available to do scatter writes.
+ */
+#$d_writev HAS_WRITEV /**/
+
/* HAS_DBMINIT64:
* This symbol, if defined, indicates that the dbminit64 routine is
* available to open dbm files larger than 2 gigabytes.
#$d_telldir64 HAS_TELLDIR64 /**/
#$d_truncate64 HAS_TRUNCATE64 /**/
#$d_off64t HAS_OFF64_T /**/
-#$d_dirent64s HAS_STRUCT_DIRENT64 /**/
+#$d_dirent64_s HAS_STRUCT_DIRENT64 /**/
/* PRIVLIB:
* This symbol contains the name of the private library for this package.
AF_UNIX
AF_UNSPEC
AF_X25
+ MSG_CTLFLAGS
+ MSG_CTLIGNORE
+ MSG_CTRUNC
MSG_DONTROUTE
+ MSG_DONTWAIT
+ MSG_EOF
+ MSG_EOR
+ MSG_ERRQUEUE
+ MSG_FIN
MSG_MAXIOVLEN
+ MSG_NOSIGNAL
MSG_OOB
MSG_PEEK
+ MSG_PROXY
+ MSG_RST
+ MSG_SYN
+ MSG_TRUNC
+ MSG_URG
+ MSG_WAITALL
PF_802
PF_APPLETALK
PF_CCITT
PF_UNIX
PF_UNSPEC
PF_X25
+ SCM_CONNECT
+ SCM_CREDENTIALS
+ SCM_CREDS
+ SCM_RIGHTS
+ SCM_TIMESTAMP
SOCK_DGRAM
SOCK_RAW
SOCK_RDM
case 'L':
break;
case 'M':
+ if (strEQ(name, "MSG_CTLFLAGS"))
+#ifdef MSG_CTLFLAGS
+ return MSG_CTLFLAGS;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "MSG_CTLIGNORE"))
+#ifdef MSG_CTLIGNORE
+ return MSG_CTLIGNORE;
+#else
+ goto not_there;
+#endif
if (strEQ(name, "MSG_CTRUNC"))
-#if defined(MSG_CTRUNC) || defined(HAS_GNULIBC) /* XXX it's an enum */
+#ifdef HAS_MSG_CTRUNC /* might be an enum */
return MSG_CTRUNC;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_DONTROUTE"))
-#if defined(MSG_DONTROUTE) || defined(HAS_GNULIBC) /* XXX it's an enum */
+#ifdef HAS_MSG_DONTROUTE /* might be an enum */
return MSG_DONTROUTE;
#else
goto not_there;
#endif
+ if (strEQ(name, "MSG_DONTWAIT"))
+#ifdef MSG_DONTWAIT
+ return MSG_DONTWAIT;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "MSG_EOF"))
+#ifdef MSG_EOF
+ return MSG_EOF;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "MSG_EOR"))
+#ifdef MSG_EOR
+ return MSG_EOR;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "MSG_ERRQUEUE"))
+#ifdef MSG_ERRQUEUE
+ return MSG_ERRQUEUE;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "MSG_FIN"))
+#ifdef MSG_FIN
+ return MSG_FIN;
+#else
+ goto not_there;
+#endif
if (strEQ(name, "MSG_MAXIOVLEN"))
-#ifdef MSG_MAXIOVLEN
+#ifdef MSG_MAXIOVLEN /* might be an enum */
return MSG_MAXIOVLEN;
#else
goto not_there;
#endif
+ if (strEQ(name, "MSG_NOSIGNAL"))
+#ifdef MSG_NOSIGNAL
+ return MSG_NOSIGNAL;
+#else
+ goto not_there;
+#endif
if (strEQ(name, "MSG_OOB"))
-#if defined(MSG_OOB) || defined(HAS_GNULIBC) /* XXX it's an enum */
+#ifdef HAS_MSG_OOB /* might be an enum */
return MSG_OOB;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_PEEK"))
-#if defined(MSG_PEEK) || defined(HAS_GNULIBC) /* XXX it's an enum */
+#ifdef HAS_MSG_PEEK /* might be an enum */
return MSG_PEEK;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_PROXY"))
-#if defined(MSG_PROXY) || defined(HAS_GNULIBC) /* XXX it's an enum */
+#ifdef HAS_MSG_PROXY /* might be an enum */
return MSG_PROXY;
#else
goto not_there;
#endif
+ if (strEQ(name, "MSG_RST"))
+#ifdef MSG_RST
+ return MSG_RST;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "MSG_SYN"))
+#ifdef MSG_SYN
+ return MSG_SYN;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "MSG_TRUNC"))
+#ifdef MSG_TRUNC
+ return MSG_TRUNC;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "MSG_WAITALL"))
+#ifdef MSG_WAITALL
+ return MSG_WAITALL;
+#else
+ goto not_there;
+#endif
break;
case 'N':
break;
case 'R':
break;
case 'S':
+ if (strEQ(name, "SCM_CONNECT"))
+#ifdef SCM_CONNECT
+ return SCM_CONNECT;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "SCM_CREDENTIALS"))
+#ifdef SCM_CREDENTIALS
+ return SCM_CREDENTIALSS;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "SCM_CREDS"))
+#ifdef SCM_CREDS
+ return SCM_CREDS;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "SCM_RIGHTS"))
+#ifdef HAS_SCM_RIGHTS /* might be an enum */
+ return SCM_RIGHTS;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "SCM_TIMESTAMP"))
+#ifdef SCM_TIMESTAMP
+ return SCM_TIMESTAMP;
+#else
+ goto not_there;
+#endif
if (strEQ(name, "SOCK_DGRAM"))
#ifdef SOCK_DGRAM
return SOCK_DGRAM;
#endif /* PERL_OBJECT */
+/* Mention
+
+ HAS_READV
+ HAS_RECVMSG
+ HAS_SENDMSG
+ HAS_WRITEV
+ HAS_STRUCT_MSGHDR
+ HAS_STRUCT_CMSGHDR
+ I_SYSUIO
+
+ here so that Configure picks them up. Perl core does not
+ use them but somebody might want to extend IO:: someday.
+
+ Jarkko Hietaniemi November 1998
+
+ */
+
#endif /* __Inc__IPerl___ */