integrate cfgperl changes into mainline
Gurusamy Sarathy [Sun, 8 Nov 1998 19:42:57 +0000 (19:42 +0000)]
p4raw-id: //depot/perl@2219

24 files changed:
Configure
MANIFEST
Porting/Glossary
Porting/config.sh
Porting/config_H
README.vmesa [new file with mode: 0644]
config_h.SH
ext/Thread/Thread.xs
hints/hpux.sh
hints/vmesa.sh
lib/Math/Complex.pm
malloc.c
perl.h
pod/perlfunc.pod
pod/perllocale.pod
pod/perlport.pod
pp_sys.c
sv.c
t/lib/complex.t
t/op/groups.t
t/op/lex_assign.t
thread.h
vms/subconfigure.com
vos/config.h

index f0c31da..a3a8319 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 Wed Oct 28 11:58:44 EET 1998 [metaconfig 3.0 PL70]
+# Generated on Thu Nov  5 14:26:57 EET 1998 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by jhi@iki.fi)
 
 cat >/tmp/c1$$ <<EOF
@@ -409,6 +409,8 @@ d_pause=''
 d_pipe=''
 d_poll=''
 d_portable=''
+d_pthread_create_joinable=''
+pthread_create_joinable=''
 d_pthread_yield=''
 d_sched_yield=''
 sched_yield=''
@@ -876,6 +878,7 @@ archobjs=''
 groupstype=''
 : default library list
 libswanted=''
+: some systems want to use only the non-versioned libso:s
 ignore_versioned_solibs=''
 : full support for void wanted by default
 defvoidused=15
@@ -2080,7 +2083,7 @@ EOM
                        osvers="$3"
                        ;;
                dynixptx*) osname=dynixptx
-                       osvers="$3"
+                       osvers=`echo "$4"|sed 's/^v//'`
                        ;;
                freebsd) osname=freebsd 
                        osvers="$3" ;;
@@ -6785,6 +6788,18 @@ fi
 set d_crypt
 eval $setvar
 
+: get csh whereabouts
+case "$csh" in
+'csh') val="$undef" ;;
+*) val="$define" ;;
+esac
+set d_csh
+eval $setvar
+: Respect a hint or command line value for full_csh.
+case "$full_csh" in
+'') full_csh=$csh ;;
+esac
+
 : see if cuserid exists
 set cuserid d_cuserid
 eval $inlibc
@@ -7498,6 +7513,226 @@ eval $inlibc
 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 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
+               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"
+                                       case "$net" in
+                                       net)
+                                               echo "...but the Wollongong group seems to have hacked it in." >&4
+                                               socketlib="-lnet"
+                                               sockethdr="-I/usr/netinclude"
+                                               ;;
+                                       esac
+                                       if $contains setsockopt libc.list >/dev/null 2>&1; then
+                                               d_oldsock="$undef"
+                                       else
+                                               echo "...using the old 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
+
+: 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
+
+: see if we should include time.h, sys/time.h, or both
+echo " "
+if test "X$timeincl" = X; then
+       echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
+       $echo $n "I'm now running the test program...$c"
+       $cat >try.c <<'EOCP'
+#include <sys/types.h>
+#ifdef I_TIME
+#include <time.h>
+#endif
+#ifdef I_SYSTIME
+#ifdef SYSTIMEKERNEL
+#define KERNEL
+#endif
+#include <sys/time.h>
+#endif
+#ifdef I_SYSSELECT
+#include <sys/select.h>
+#endif
+main()
+{
+       struct tm foo;
+#ifdef S_TIMEVAL
+       struct timeval bar;
+#endif
+#ifdef S_TIMEZONE
+       struct timezone tzp;
+#endif
+       if (foo.tm_sec == foo.tm_sec)
+               exit(0);
+#ifdef S_TIMEVAL
+       if (bar.tv_sec == bar.tv_sec)
+               exit(0);
+#endif
+       exit(1);
+}
+EOCP
+       flags=''
+       for s_timezone in '-DS_TIMEZONE' ''; do
+       sysselect=''
+       for s_timeval in '-DS_TIMEVAL' ''; do
+       for i_systimek in '' '-DSYSTIMEKERNEL'; do
+       for i_time in '' '-DI_TIME'; do
+       for i_systime in '-DI_SYSTIME' ''; do
+               case "$flags" in
+               '') $echo $n ".$c"
+                       set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone
+                       if eval $compile; then
+                               set X $i_time $i_systime $i_systimek $sysselect $s_timeval
+                               shift
+                               flags="$*"
+                               echo " "
+                               $echo $n "Succeeded with $flags$c"
+                       fi
+                       ;;
+               esac
+       done
+       done
+       done
+       done
+       done
+       timeincl=''
+       echo " "
+       case "$flags" in
+       *SYSTIMEKERNEL*) i_systimek="$define"
+               timeincl=`./findhdr sys/time.h`
+               echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
+       *) i_systimek="$undef";;
+       esac
+       case "$flags" in
+       *I_TIME*) i_time="$define"
+               timeincl=`./findhdr time.h`" $timeincl"
+               echo "We'll include <time.h>." >&4;;
+       *) i_time="$undef";;
+       esac
+       case "$flags" in
+       *I_SYSTIME*) i_systime="$define"
+               timeincl=`./findhdr sys/time.h`" $timeincl"
+               echo "We'll include <sys/time.h>." >&4;;
+       *) i_systime="$undef";;
+       esac
+       $rm -f try.c try
+fi
+
+: check for fd_set items
+$cat <<EOM
+
+Checking to see how well your C compiler handles fd_set and friends ...
+EOM
+$cat >fd_set.c <<EOCP
+#$i_systime I_SYS_TIME
+#$i_sysselct I_SYS_SELECT
+#$d_socket HAS_SOCKET
+#include <sys/types.h>
+#ifdef HAS_SOCKET
+#include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
+#endif
+#ifdef I_SYS_TIME
+#include <sys/time.h>
+#endif
+#ifdef I_SYS_SELECT
+#include <sys/select.h>
+#endif
+main() {
+       fd_set fds;
+
+#ifdef TRYBITS
+       if(fds.fds_bits);
+#endif
+
+#if defined(FD_SET) && defined(FD_CLR) && defined(FD_ISSET) && defined(FD_ZERO)
+       exit(0);
+#else
+       exit(1);
+#endif
+}
+EOCP
+set fd_set -DTRYBITS
+if eval $compile; then
+       d_fds_bits="$define"
+       d_fd_set="$define"
+       echo "Well, your system knows about the normal fd_set typedef..." >&4
+       if ./fd_set; then
+               echo "and you have the normal fd_set macros (just as I'd expect)." >&4
+               d_fd_macros="$define"
+       else
+               $cat >&4 <<'EOM'
+but not the normal fd_set macros!  Gaaack!  I'll have to cover for you.
+EOM
+               d_fd_macros="$undef"
+       fi
+else
+       $cat <<'EOM'
+Hmm, your compiler has some difficulty with fd_set.  Checking further...
+EOM
+       set fd_set
+       if eval $compile; then
+               d_fds_bits="$undef"
+               d_fd_set="$define"
+               echo "Well, your system has some sort of fd_set available..." >&4
+               if ./fd_set; then
+                       echo "and you have the normal fd_set macros." >&4
+                       d_fd_macros="$define"
+               else
+                       $cat <<'EOM'
+but not the normal fd_set macros!  Gross!  More work for me...
+EOM
+                       d_fd_macros="$undef"
+               fi
+       else
+       echo "Well, you got zip.  That's OK, I can roll my own fd_set stuff." >&4
+               d_fd_set="$undef"
+               d_fds_bits="$undef"
+               d_fd_macros="$undef"
+       fi
+fi
+$rm -f fd_set*
+
 : see if fgetpos exists
 set fgetpos d_fgetpos
 eval $inlibc
@@ -7592,40 +7827,123 @@ eval $inlibc
 set gethostent d_gethent
 eval $inlibc
 
-: see if this is a netdb.h system
-set netdb.h i_netdb
-eval $inhdr
-
-: see if prototypes for various gethostxxx netdb.h functions are available
-echo " "
-set d_gethostprotos gethostent $i_netdb netdb.h
-eval $hasproto
-
-: see if getlogin exists
-set getlogin d_getlogin
-eval $inlibc
-
-: see if getnetbyaddr exists
-set getnetbyaddr d_getnbyaddr
-eval $inlibc
-
-: see if getnetbyname exists
-set getnetbyname d_getnbyname
-eval $inlibc
-
-: see if getnetent exists
-set getnetent d_getnent
-eval $inlibc
-
-: see if prototypes for various getnetxxx netdb.h functions are available
+: see how we will look up host name
 echo " "
-set d_getnetprotos getnetent $i_netdb netdb.h
-eval $hasproto
-
+if false; then
+       : dummy stub to allow use of elif
+elif set gethostname val -f d_gethname; eval $csym; $val; then
+       echo 'gethostname() found.' >&4
+       d_gethname="$define"
+       call=gethostname
+elif set uname val -f d_uname; eval $csym; $val; then
+       if ./xenix; then
+               $cat <<'EOM'
+uname() was found, but you're running xenix, and older versions of xenix
+have a broken uname(). If you don't really know whether your xenix is old
+enough to have a broken system call, use the default answer.
 
-: see if getprotobyname exists
-set getprotobyname d_getpbyname
-eval $inlibc
+EOM
+               dflt=y
+               case "$d_uname" in
+               "$define") dflt=n;;
+               esac
+               rp='Is your uname() broken?'
+               . ./myread
+               case "$ans" in
+               n*) d_uname="$define"; call=uname;;
+               esac
+       else
+               echo 'uname() found.' >&4
+               d_uname="$define"
+               call=uname
+       fi
+fi
+case "$d_gethname" in
+'') d_gethname="$undef";;
+esac
+case "$d_uname" in
+'') d_uname="$undef";;
+esac
+case "$d_uname$d_gethname" in
+*define*)
+       dflt=n
+       cat <<EOM
+Every now and then someone has a $call() that lies about the hostname
+but can't be fixed for political or economic reasons.  If you wish, I can
+pretend $call() isn't there and maybe compute hostname at run-time
+thanks to the '$phostname' command.
+
+EOM
+       rp="Shall I ignore $call() from now on?"
+       . ./myread
+       case "$ans" in
+       y*) d_uname="$undef" d_gethname="$undef"; $echo $n "Okay...$c";;
+       esac;;
+esac
+case "$phostname" in
+'') aphostname='';;
+*) case "$aphostname" in
+       /*) ;;
+       *) set X $phostname
+               shift
+               file=$1
+               shift
+               file=`./loc $file $file $pth`
+               aphostname=`echo $file $*`
+               ;;
+       esac
+       ;;
+esac
+case "$d_uname$d_gethname" in
+*define*) ;;
+*)
+       case "$phostname" in
+       '')
+               echo "There will be no way for $package to get your hostname." >&4;;
+       *)
+       echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4
+               ;;
+       esac;;
+esac
+case "$d_phostname" in
+'') d_phostname="$undef";;
+esac
+
+: see if this is a netdb.h system
+set netdb.h i_netdb
+eval $inhdr
+
+: see if prototypes for various gethostxxx netdb.h functions are available
+echo " "
+set d_gethostprotos gethostent $i_netdb netdb.h
+eval $hasproto
+
+: see if getlogin exists
+set getlogin d_getlogin
+eval $inlibc
+
+: see if getnetbyaddr exists
+set getnetbyaddr d_getnbyaddr
+eval $inlibc
+
+: see if getnetbyname exists
+set getnetbyname d_getnbyname
+eval $inlibc
+
+: see if getnetent exists
+set getnetent d_getnent
+eval $inlibc
+
+: see if prototypes for various getnetxxx netdb.h functions are available
+echo " "
+set d_getnetprotos getnetent $i_netdb netdb.h
+eval $hasproto
+
+
+: see if getprotobyname exists
+set getprotobyname d_getpbyname
+eval $inlibc
 
 : see if getprotobynumber exists
 set getprotobynumber d_getpbynumber
@@ -7830,16 +8148,22 @@ eval $inlibc
 : see if inttypes.h is available
 : we want a real compile instead of Inhdr because some systems
 : have an inttypes.h which includes non-existent headers
+echo " "
 $cat >try.c <<EOCP
 #include <inttypes.h>
-extern int foo;
+main() {
+       static int32_t foo32 = 0x12345678;
+}
 EOCP
 set try
 if eval $compile; then
+       echo "<inttypes.h> found." >&4
        val="$define"
 else
+       echo "<inttypes.h> NOT found." >&4
        val="$undef"
 fi
+$rm -f try.c try
 set i_inttypes
 eval $setvar
 
@@ -8176,6 +8500,62 @@ eval $inlibc
 set poll d_poll
 eval $inlibc
 
+: how to create joinable pthreads
+if test "X$usethreads" = "X$define"; then
+       echo " "
+       echo "Checking what constant to use for creating joinable pthreads..." >&4 
+       $cat >try.c <<'EOCP'
+#include <pthread.h>
+int main() {
+    int detachstate = JOINABLE;
+}
+EOCP
+       set try -DJOINABLE=PTHREAD_CREATE_JOINABLE
+       if eval $compile; then
+               echo "You seem to use PTHREAD_CREATE_JOINABLE." >&2
+               val="$undef"
+               set d_pthread_create_joinable
+               eval $setvar
+               val=0
+               set pthread_create_joinable
+               eval $setvar
+       else
+               set try -DJOINABLE=PTHREAD_CREATE_UNDETACHED
+               if eval $compile; then
+                       echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&2
+                       val="$define"
+                       set d_pthread_create_joinable
+                       eval $setvar
+                       val=PTHREAD_CREATE_UNDETACHED
+                       set pthread_create_joinable
+                       eval $setvar
+               else            
+                       set try -DJOINABLE=__UNDETACHED
+                       if eval $compile; then
+                               echo "You seem to use __UNDETACHED." >&2
+                               val="$define"
+                               set d_pthread_create_joinable
+                               eval $setvar
+                               val=__UNDETACHED
+                               set pthread_create_joinable
+                               eval $setvar
+                       else
+                               echo "Egads, nothing obvious found.  Guessing that you use 0." >&2
+                               val="$define"
+                               set d_pthread_create_joinable
+                               eval $setvar
+                               val=0
+                               set pthread_create_joinable
+                               eval $setvar
+                       fi
+               fi
+       fi
+       $rm -f try try.*
+else
+    d_pthread_create_joinable="$undef"
+    pthread_create_joinable=0
+fi
+
 
 : see whether the various POSIXish _yields exist
 $cat >try.c <<EOP
@@ -9113,59 +9493,6 @@ set d_sigsetjmp
 eval $setvar
 $rm -f try.c try
 
-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 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 -f /usr/lib/libnet$_a; then
-                       ( ($nm $nm_opt /usr/lib/libnet$_a | eval $nm_extract) ||  \
-                       $ar t /usr/lib/libnet$_a) 2>/dev/null >> libc.list
-                       if $contains socket libc.list >/dev/null 2>&1; then
-                       echo "...but the Wollongong group seems to have hacked it in." >&4
-                               socketlib="-lnet"
-                               sockethdr="-I/usr/netinclude"
-                               d_socket="$define"
-                               if $contains setsockopt libc.list >/dev/null 2>&1; then
-                                       d_oldsock="$undef"
-                               else
-                                       echo "...using the old 4.1c interface, rather than 4.2" >&4
-                                       d_oldsock="$define"
-                               fi
-                       else
-                               echo "or even in libnet$_a, which is peculiar." >&4
-                               d_socket="$undef"
-                               d_oldsock="$undef"
-                       fi
-               else
-                       echo "or anywhere else I see." >&4
-                       d_socket="$undef"
-                       d_oldsock="$undef"
-               fi
-       fi
-fi
-
-: see if socketpair exists
-set socketpair d_sockpair
-eval $inlibc
-
 : see if stat knows about block sizes
 echo " "
 set d_statblks stat st_blocks $i_sysstat sys/stat.h
@@ -9503,43 +9830,6 @@ eval $setvar
 set umask d_umask
 eval $inlibc
 
-: see how we will look up host name
-echo " "
-if false; then
-       : dummy stub to allow use of elif
-elif set uname val -f d_uname; eval $csym; $val; then
-       if ./xenix; then
-               $cat <<'EOM'
-uname() was found, but you're running xenix, and older versions of xenix
-have a broken uname(). If you don't really know whether your xenix is old
-enough to have a broken system call, use the default answer.
-
-EOM
-               dflt=y
-               case "$d_uname" in
-               "$define") dflt=n;;
-               esac
-               rp='Is your uname() broken?'
-               . ./myread
-               case "$ans" in
-               n*) d_uname="$define"; call=uname;;
-               esac
-       else
-               echo 'uname() found.' >&4
-               d_uname="$define"
-               call=uname
-       fi
-fi
-case "$d_gethname" in
-'') d_gethname="$undef";;
-esac
-case "$d_uname" in
-'') d_uname="$undef";;
-esac
-case "$d_phostname" in
-'') d_phostname="$undef";;
-esac
-
 : backward compatibility for d_hvfork
 if test X$d_hvfork != X; then
        d_vfork="$d_hvfork"
@@ -10248,18 +10538,6 @@ rp="What is the type for file position used by fsetpos()?"
 set fpos_t fpostype long stdio.h sys/types.h
 eval $typedef_ask
 
-: get csh whereabouts
-case "$csh" in
-'csh') val="$undef" ;;
-*) val="$define" ;;
-esac
-set d_csh
-eval $setvar
-: Respect a hint or command line value for full_csh.
-case "$full_csh" in
-'') full_csh=$csh ;;
-esac
-
 : Store the full pathname to the sed program for use in the C program
 full_sed=$sed
 
@@ -10649,168 +10927,6 @@ else
 fi
 $rm -f foo* bar* 
 
-: see if sys/select.h has to be included
-set sys/select.h i_sysselct
-eval $inhdr
-
-: see if we should include time.h, sys/time.h, or both
-echo " "
-if test "X$timeincl" = X; then
-       echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
-       $echo $n "I'm now running the test program...$c"
-       $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#ifdef I_TIME
-#include <time.h>
-#endif
-#ifdef I_SYSTIME
-#ifdef SYSTIMEKERNEL
-#define KERNEL
-#endif
-#include <sys/time.h>
-#endif
-#ifdef I_SYSSELECT
-#include <sys/select.h>
-#endif
-main()
-{
-       struct tm foo;
-#ifdef S_TIMEVAL
-       struct timeval bar;
-#endif
-#ifdef S_TIMEZONE
-       struct timezone tzp;
-#endif
-       if (foo.tm_sec == foo.tm_sec)
-               exit(0);
-#ifdef S_TIMEVAL
-       if (bar.tv_sec == bar.tv_sec)
-               exit(0);
-#endif
-       exit(1);
-}
-EOCP
-       flags=''
-       for s_timezone in '-DS_TIMEZONE' ''; do
-       sysselect=''
-       for s_timeval in '-DS_TIMEVAL' ''; do
-       for i_systimek in '' '-DSYSTIMEKERNEL'; do
-       for i_time in '' '-DI_TIME'; do
-       for i_systime in '-DI_SYSTIME' ''; do
-               case "$flags" in
-               '') $echo $n ".$c"
-                       set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone
-                       if eval $compile; then
-                               set X $i_time $i_systime $i_systimek $sysselect $s_timeval
-                               shift
-                               flags="$*"
-                               echo " "
-                               $echo $n "Succeeded with $flags$c"
-                       fi
-                       ;;
-               esac
-       done
-       done
-       done
-       done
-       done
-       timeincl=''
-       echo " "
-       case "$flags" in
-       *SYSTIMEKERNEL*) i_systimek="$define"
-               timeincl=`./findhdr sys/time.h`
-               echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
-       *) i_systimek="$undef";;
-       esac
-       case "$flags" in
-       *I_TIME*) i_time="$define"
-               timeincl=`./findhdr time.h`" $timeincl"
-               echo "We'll include <time.h>." >&4;;
-       *) i_time="$undef";;
-       esac
-       case "$flags" in
-       *I_SYSTIME*) i_systime="$define"
-               timeincl=`./findhdr sys/time.h`" $timeincl"
-               echo "We'll include <sys/time.h>." >&4;;
-       *) i_systime="$undef";;
-       esac
-       $rm -f try.c try
-fi
-
-: check for fd_set items
-$cat <<EOM
-
-Checking to see how well your C compiler handles fd_set and friends ...
-EOM
-$cat >fd_set.c <<EOCP
-#$i_systime I_SYS_TIME
-#$i_sysselct I_SYS_SELECT
-#$d_socket HAS_SOCKET
-#include <sys/types.h>
-#ifdef HAS_SOCKET
-#include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
-#endif
-#ifdef I_SYS_TIME
-#include <sys/time.h>
-#endif
-#ifdef I_SYS_SELECT
-#include <sys/select.h>
-#endif
-main() {
-       fd_set fds;
-
-#ifdef TRYBITS
-       if(fds.fds_bits);
-#endif
-
-#if defined(FD_SET) && defined(FD_CLR) && defined(FD_ISSET) && defined(FD_ZERO)
-       exit(0);
-#else
-       exit(1);
-#endif
-}
-EOCP
-set fd_set -DTRYBITS
-if eval $compile; then
-       d_fds_bits="$define"
-       d_fd_set="$define"
-       echo "Well, your system knows about the normal fd_set typedef..." >&4
-       if ./fd_set; then
-               echo "and you have the normal fd_set macros (just as I'd expect)." >&4
-               d_fd_macros="$define"
-       else
-               $cat >&4 <<'EOM'
-but not the normal fd_set macros!  Gaaack!  I'll have to cover for you.
-EOM
-               d_fd_macros="$undef"
-       fi
-else
-       $cat <<'EOM'
-Hmm, your compiler has some difficulty with fd_set.  Checking further...
-EOM
-       set fd_set
-       if eval $compile; then
-               d_fds_bits="$undef"
-               d_fd_set="$define"
-               echo "Well, your system has some sort of fd_set available..." >&4
-               if ./fd_set; then
-                       echo "and you have the normal fd_set macros." >&4
-                       d_fd_macros="$define"
-               else
-                       $cat <<'EOM'
-but not the normal fd_set macros!  Gross!  More work for me...
-EOM
-                       d_fd_macros="$undef"
-               fi
-       else
-       echo "Well, you got zip.  That's OK, I can roll my own fd_set stuff." >&4
-               d_fd_set="$undef"
-               d_fds_bits="$undef"
-               d_fd_macros="$undef"
-       fi
-fi
-$rm -f fd_set*
-
 : check for type of arguments to select. 
 case "$selecttype" in
 '') case "$d_select" in
@@ -11382,8 +11498,14 @@ set locale.h i_locale
 eval $inhdr
 
 : see if mach cthreads are available
-set mach/cthreads.h i_machcthr
-eval $inhdr
+if test "X$usethreads" = "X$define"; then
+       set mach/cthreads.h i_machcthr
+       eval $inhdr
+else
+       i_machcthr="$undef"
+fi
+
+
 
 : see if this is a math.h system
 set math.h i_math
@@ -12299,6 +12421,7 @@ d_phostname='$d_phostname'
 d_pipe='$d_pipe'
 d_poll='$d_poll'
 d_portable='$d_portable'
+d_pthread_create_joinable='$d_pthread_create_joinable'
 d_pthread_yield='$d_pthread_yield'
 d_pwage='$d_pwage'
 d_pwchange='$d_pwchange'
@@ -12604,6 +12727,7 @@ prefixexp='$prefixexp'
 privlib='$privlib'
 privlibexp='$privlibexp'
 prototype='$prototype'
+pthread_create_joinable='$pthread_create_joinable'
 ptrsize='$ptrsize'
 randbits='$randbits'
 randfunc='$randfunc'
index 5c60c2a..7ba415a 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -41,6 +41,7 @@ README.plan9          Notes about Plan9 port
 README.posix-bc                Notes about BC2000 POSIX port
 README.qnx             Notes about QNX port
 README.threads         Notes about multithreading
+README.vmesa           Notes about VM/ESA port
 README.vms             Notes about VMS port
 README.vos             Notes about Stratus VOS port
 README.win32           Notes about Win32 port
index f681679..d19328c 100644 (file)
@@ -4,11 +4,6 @@ programs (e.g. I_UNISTD) are already described in config_h.SH.  [`configpm'
 generates pod documentation for Config.pm from this file--please try to keep
 the formatting regular.]
 
-Mcc (Loc.U):
-       This variable is be used internally by Configure to determine the
-       full pathname (if any) of the Mcc program.  After Configure runs,
-       the value is reset to a plain "Mcc" and is not useful.
-
 _a (Unix.U):
        This variable defines the extension used for ordinary libraries.
        For unix, it is '.a'.  The '.' is included.  Other possible
@@ -67,6 +62,9 @@ archlibexp (archlib.U):
        This variable is the same as the archlib variable, but is
        filename expanded at configuration time, for convenient use.
 
+archname64 (use64bits.U):
+       This variable is used for the 64-bitness part of $archname.
+
 archname (archname.U):
        This variable is a short name to characterize the current
        architecture.  It is used mainly to construct the default archlib.
@@ -221,14 +219,14 @@ cppflags (ccflags.U):
        processor. It is up to the Makefile to use it.
 
 cpplast (cppstdin.U):
-       This variable has the same functionality as cppminus, only it applies to
-       cpprun and not cppstdin.
+       This variable has the same functionality as cppminus, only it applies
+       to cpprun and not cppstdin.
 
 cppminus (cppstdin.U):
        This variable contains the second part of the string which will invoke
        the C preprocessor on the standard input and produce to standard
-       output.  This variable will have the value "-" if cppstdin needs a minus
-       to specify standard input, otherwise the value is "".
+       output.  This variable will have the value "-" if cppstdin needs
+       a minus to specify standard input, otherwise the value is "".
 
 cpprun (cppstdin.U):
        This variable contains the command which will invoke a C preprocessor
@@ -254,15 +252,14 @@ csh (Loc.U):
        full pathname (if any) of the csh program.  After Configure runs,
        the value is reset to a plain "csh" and is not useful.
 
-d_Gconvert (d_gconvert.U):
-       This variable holds what Gconvert is defined as to convert
-       floating point numbers into strings. It could be 'gconvert'
-       or a more complex macro emulating gconvert with gcvt() or sprintf.
-
 d_access (d_access.U):
        This variable conditionally defines HAS_ACCESS if the access() system
        call is available to check for access permissions using real IDs.
 
+d_accessx (d_accessx.U):
+       This variable conditionally defines the HAS_ACCESSX symbol, which
+       indicates to the C program that the accessx() routine is available.
+
 d_alarm (d_alarm.U):
        This variable conditionally defines the HAS_ALARM symbol, which
        indicates to the C program that the alarm() routine is available.
@@ -356,10 +353,25 @@ d_dbl_dig (d_dbl_dig.U):
        header files provide DBL_DIG, which is the number of significant
        digits in a double precision number.
 
+d_dbmclose64 (dbm64.U):
+       This variable conditionally defines the HAS_DBMCLOSE64 symbol, which
+       indicates to the C program that the dbmclose64() routine is available.
+
+d_dbminit64 (dbm64.U):
+       This variable conditionally defines the HAS_DBMINIT64 symbol, which
+       indicates to the C program that the dbminit64() routine is available.
+
+d_delete64 (dbm64.U):
+       This variable conditionally defines the HAS_DELETE64 symbol, which
+       indicates to the C program that the delete64() routine is available.
+
 d_difftime (d_difftime.U):
        This variable conditionally defines the HAS_DIFFTIME symbol, which
        indicates to the C program that the difftime() routine is available.
 
+d_dirent64s (io64.U):
+       This symbol will be defined if the C compiler supports struct dirent64.
+
 d_dirnamlen (i_dirent.U):
        This variable conditionally defines DIRNAMLEN, which indicates
        to the C program that the length of directory entry names is
@@ -383,10 +395,20 @@ d_dosuid (d_dosuid.U):
        tells the C program that it should insert setuid emulation code
        on hosts which have setuid #! scripts disabled.
 
+d_drand48proto (d_drand48proto.U):
+       This variable conditionally defines the HAS_DRAND48_PROTO symbol,
+       which indicates to the C program that the system provides
+       a prototype for the drand48() function.  Otherwise, it is
+       up to the program to supply one.
+
 d_dup2 (d_dup2.U):
        This variable conditionally defines HAS_DUP2 if dup2() is
        available to duplicate file descriptors.
 
+d_eaccess (d_eaccess.U):
+       This variable conditionally defines the HAS_EACCESS symbol, which
+       indicates to the C program that the eaccess() routine is available.
+
 d_endgrent (d_endgrent.U):
        This variable conditionally defines the HAS_ENDGRENT symbol, which
        indicates to the C program that the endgrent() routine is available
@@ -451,18 +473,37 @@ d_fds_bits (d_fd_set.U):
        a half-fast job and neglected to provide the macros to manipulate
        an fd_set, HAS_FDS_BITS will let us know how to fix the gaffe.
 
+d_fetch64 (dbm64.U):
+       This variable conditionally defines the HAS_FETCH64 symbol, which
+       indicates to the C program that the fetch64() routine is available.
+
+d_fgetpos64 (stdio64.U):
+       This variable conditionally defines the HAS_FGETPOS64 symbol, which
+       indicates to the C program that the fgetpos64() routine is available.
+
 d_fgetpos (d_fgetpos.U):
        This variable conditionally defines HAS_FGETPOS if fgetpos() is
        available to get the file position indicator.
 
+d_firstkey64 (dbm64.U):
+       This variable conditionally defines the HAS_FIRSTKEY64 symbol, which
+       indicates to the C program that the firstkey64() routine is available.
+
 d_flexfnam (d_flexfnam.U):
        This variable conditionally defines the FLEXFILENAMES symbol, which
        indicates that the system supports filenames longer than 14 characters.
 
+d_flock64s (io64.U):
+       This symbol will be defined if the C compiler supports struct flock64.
+
 d_flock (d_flock.U):
        This variable conditionally defines HAS_FLOCK if flock() is
        available to do file locking.
 
+d_fopen64 (stdio64.U):
+       This variable conditionally defines the HAS_FOPEN64 symbol, which
+       indicates to the C program that the fopen64() routine is available.
+
 d_fork (d_fork.U):
        This variable conditionally defines the HAS_FORK symbol, which
        indicates to the C program that the fork() routine is available.
@@ -473,15 +514,64 @@ d_fpathconf (d_pathconf.U):
        to determine file-system related limits and options associated
        with a given open file descriptor.
 
+d_freopen64 (stdio64.U):
+       This variable conditionally defines the HAS_FREOPEN64 symbol, which
+       indicates to the C program that the freopen64() routine is available.
+
+d_fseek64 (stdio64.U):
+       This variable conditionally defines the HAS_FSEEK64 symbol, which
+       indicates to the C program that the fseek64() routine is available.
+
+d_fseeko64 (stdio64.U):
+       This variable conditionally defines the HAS_FSEEKO64 symbol, which
+       indicates to the C program that the fseeko64() routine is available.
+
+d_fseeko (d_fseeko.U):
+       This variable conditionally defines the HAS_FSEEKO symbol, which
+       indicates to the C program that the fseeko() routine is available.
+
+d_fsetpos64 (stdio64.U):
+       This variable conditionally defines the HAS_FSETPOS64 symbol, which
+       indicates to the C program that the fsetpos64() routine is available.
+
 d_fsetpos (d_fsetpos.U):
        This variable conditionally defines HAS_FSETPOS if fsetpos() is
        available to set the file position indicator.
 
+d_fstat64 (io64.U):
+       This variable conditionally defines the HAS_FSTAT64 symbol, which
+       indicates to the C program that the fstat64() routine is available.
+
+d_ftell64 (stdio64.U):
+       This variable conditionally defines the HAS_FTELL64 symbol, which
+       indicates to the C program that the ftell64() routine is available.
+
+d_ftello64 (stdio64.U):
+       This variable conditionally defines the HAS_FTELLO64 symbol, which
+       indicates to the C program that the ftello64() routine is available.
+
+d_ftello (d_ftello.U):
+       This variable conditionally defines the HAS_FTELLO symbol, which
+       indicates to the C program that the ftello() routine is available.
+
 d_ftime (d_ftime.U):
        This variable conditionally defines the HAS_FTIME symbol, which indicates
        that the ftime() routine exists.  The ftime() routine is basically
        a sub-second accuracy clock.
 
+d_ftruncate64 (io64.U):
+       This variable conditionally defines the HAS_FTRUNCATE64 symbol, which
+       indicates to the C program that the ftruncate64() routine is available.
+
+d_Gconvert (d_gconvert.U):
+       This variable holds what Gconvert is defined as to convert
+       floating point numbers into strings. It could be 'gconvert'
+       or a more complex macro emulating gconvert with gcvt() or sprintf.
+       Possible values are:
+               d_Gconvert='gconvert((x),(n),(t),(b))'
+               d_Gconvert='gcvt((x),(n),(b))'
+               d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+
 d_getgrent (d_getgrent.U):
        This variable conditionally defines the HAS_GETGRENT symbol, which
        indicates to the C program that the getgrent() routine is available
@@ -639,6 +729,12 @@ d_inetaton (d_inetaton.U):
        indicates to the C program that the inet_aton() function is available
        to parse IP address "dotted-quad" strings.
 
+d_ino64t (io64.U):
+       This symbol will be defined if the C compiler supports ino64_t.
+
+d_int64t (i_inttypes.U):
+           This symbol will be defined if the C compiler supports int64_t.
+
 d_isascii (d_isascii.U):
        This variable conditionally defines the HAS_ISASCII constant,
        which indicates to the C program that isascii() is available.
@@ -661,6 +757,10 @@ d_locconv (d_locconv.U):
        This variable conditionally defines HAS_LOCALECONV if localeconv() is
        available for numeric and monetary formatting conventions.
 
+d_lockf64 (io64.U):
+       This variable conditionally defines the HAS_LOCKF64 symbol, which
+       indicates to the C program that the lockf64() routine is available.
+
 d_lockf (d_lockf.U):
        This variable conditionally defines HAS_LOCKF if lockf() is
        available to do file locking.
@@ -673,6 +773,14 @@ d_longlong (d_longlong.U):
        This variable conditionally defines HAS_LONG_LONG if 
        the long long type is supported.
 
+d_lseek64 (io64.U):
+       This variable conditionally defines the HAS_LSEEK64 symbol, which
+       indicates to the C program that the lseek64() routine is available.
+
+d_lstat64 (io64.U):
+       This variable conditionally defines the HAS_LSTAT64 symbol, which
+       indicates to the C program that the lstat64() routine is available.
+
 d_lstat (d_lstat.U):
        This variable conditionally defines HAS_LSTAT if lstat() is
        available to do file stats on symbolic links.
@@ -750,10 +858,17 @@ d_mymalloc (mallocsrc.U):
        of the source want to take special action if MYMALLOC is used.
        This may include different sorts of profiling or error detection.
 
+d_nextkey64 (dbm64.U):
+       This variable conditionally defines the HAS_NEXTKEY64 symbol, which
+       indicates to the C program that the nextkey64() routine is available.
+
 d_nice (d_nice.U):
        This variable conditionally defines the HAS_NICE symbol, which
        indicates to the C program that the nice() routine is available.
 
+d_off64t (io64.U):
+       This symbol will be defined if the C compiler supports off64_t.
+
 d_oldpthreads (usethreads.U):
        This variable conditionally defines the OLD_PTHREADS_API symbol,
        and indicates that Perl should be built to use the old
@@ -769,6 +884,14 @@ d_open3 (d_open3.U):
        which indicates to the C program that the 3 argument version of
        the open(2) function is available.
 
+d_open64 (io64.U):
+       This variable conditionally defines the HAS_OPEN64 symbol, which
+       indicates to the C program that the open64() routine is available.
+
+d_opendir64 (io64.U):
+       This variable conditionally defines the HAS_OPENDIR64 symbol, which
+       indicates to the C program that the opendir64() routine is available.
+
 d_pathconf (d_pathconf.U):
        This variable conditionally defines the HAS_PATHCONF symbol, which
        indicates to the C program that the pathconf() routine is available
@@ -800,16 +923,15 @@ d_portable (d_portable.U):
        indicates to the C program that it should not assume that it is
        running on the machine it was compiled on.
 
+d_pthread_create_joinable (d_pthrattrj.U):
+       This variable conditionally defines pthread_create_joinable.
+       undef if pthread.h defines PTHREAD_CREATE_JOINABLE.
+
 d_pthread_yield (d_pthread_y.U):
        This variable conditionally defines the HAS_PTHREAD_YIELD
        symbol if the pthread_yield routine is available to yield
        the execution of the current thread.
 
-d_pthreads_created_joinable (d_pthreadj.U):
-       This variable conditionally defines the PTHREADS_CREATED_JOINABLE
-       symbol if pthreads are created in the joinable (aka undetached) 
-       state.
-
 d_pwage (i_pwd.U):
        This variable conditionally defines PWAGE, which indicates
        that struct passwd contains pw_age.
@@ -842,6 +964,10 @@ d_pwquota (i_pwd.U):
        This variable conditionally defines PWQUOTA, which indicates
        that struct passwd contains pw_quota.
 
+d_readdir64 (io64.U):
+       This variable conditionally defines the HAS_READDIR64 symbol, which
+       indicates to the C program that the readdir64() routine is available.
+
 d_readdir (d_readdir.U):
        This variable conditionally defines HAS_READDIR if readdir() is
        available to read directory entries.
@@ -882,6 +1008,10 @@ d_sched_yield (d_pthread_y.U):
        symbol if the sched_yield routine is available to yield
        the execution of the current thread.
 
+d_seekdir64 (io64.U):
+       This variable conditionally defines the HAS_SEEKDIR64 symbol, which
+       indicates to the C program that the seekdir64() routine is available.
+
 d_seekdir (d_readdir.U):
        This variable conditionally defines HAS_SEEKDIR if seekdir() is
        available.
@@ -1068,9 +1198,14 @@ d_sockpair (d_socket.U):
        This variable conditionally defines the HAS_SOCKETPAIR symbol, which
        indicates that the BSD socketpair() is supported.
 
+d_stat64 (io64.U):
+       This variable conditionally defines the HAS_STAT64 symbol, which
+       indicates to the C program that the stat64() routine is available.
+
 d_statblks (d_statblks.U):
-       This variable conditionally defines USE_STAT_BLOCKS if this system
-       has a stat structure declaring st_blksize and st_blocks.
+       This variable conditionally defines USE_STAT_BLOCKS
+       if this system has a stat structure declaring
+       st_blksize and st_blocks.
 
 d_stdio_cnt_lval (d_stdstdio.U):
        This variable conditionally defines STDIO_CNT_LVALUE if the
@@ -1090,6 +1225,10 @@ d_stdstdio (d_stdstdio.U):
        has a FILE structure declaring usable _ptr and _cnt fields (or
        equivalent) in stdio.h.
 
+d_store64 (dbm64.U):
+       This variable conditionally defines the HAS_STORE64 symbol, which
+       indicates to the C program that the store64() routine is available.
+
 d_strchr (d_strchr.U):
        This variable conditionally defines HAS_STRCHR if strchr() and
        strrchr() are available for string searching.
@@ -1172,6 +1311,10 @@ d_tcsetpgrp (d_tcstpgrp.U):
        indicates to the C program that the tcsetpgrp() routine is available
        to set foreground process group ID.
 
+d_telldir64 (io64.U):
+       This variable conditionally defines the HAS_TELLDIR64 symbol, which
+       indicates to the C program that the telldir64() routine is available.
+
 d_telldir (d_readdir.U):
        This variable conditionally defines HAS_TELLDIR if telldir() is
        available.
@@ -1186,6 +1329,14 @@ d_times (d_times.U):
        that the times() routine exists.  The times() routine is normaly
        provided on UNIX systems. You may have to include <sys/times.h>.
 
+d_tmpfile64 (stdio64.U):
+       This variable conditionally defines the HAS_TMPFILE64 symbol, which
+       indicates to the C program that the tmpfile64() routine is available.
+
+d_truncate64 (io64.U):
+       This variable conditionally defines the HAS_TRUNCATE64 symbol, which
+       indicates to the C program that the truncate64() routine is available.
+
 d_truncate (d_truncate.U):
        This variable conditionally defines HAS_TRUNCATE if truncate() is
        available to truncate files.
@@ -1291,6 +1442,13 @@ doublesize (doublesize.U):
        This variable contains the value of the DOUBLESIZE symbol, which
        indicates to the C program how many bytes there are in a double.
 
+drand01 (randfunc.U):
+       Indicates the macro to be used to generate normalized
+       random numbers.  Uses randfunc, often divided by
+       (double) (((unsigned long) 1 << randbits)) in order to
+       normalize the result.
+       In C programs, the macro 'Drand01' is mapped to drand01.
+
 dynamic_ext (Extensions.U):
        This variable holds a list of XS extension files we want to
        link dynamically into the package.  It is used by Makefile.
@@ -1340,9 +1498,8 @@ extensions (Extensions.U):
        is available.
 
 find (Loc.U):
-       This variable is be used internally by Configure to determine the
-       full pathname (if any) of the find program.  After Configure runs,
-       the value is reset to a plain "find" and is not useful.
+       This variable is defined but not used by Configure.
+       The value is a plain '' and is not useful.
 
 firstmakefile (Unix.U):
        This variable defines the first file searched by make.  On unix,
@@ -1480,6 +1637,10 @@ i_grp (i_grp.U):
        This variable conditionally defines the I_GRP symbol, and indicates
        whether a C program should include <grp.h>.
 
+i_inttypes (i_inttypes.U):
+           This variable conditionally defines the I_INTTYPES symbol,
+           and indicates whether a C program should include <inttypes.h>.
+
 i_limits (i_limits.U):
        This variable conditionally defines the I_LIMITS symbol, and indicates
        whether a C program may include <limits.h> to get symbols like WORD_BIT
@@ -1489,6 +1650,10 @@ i_locale (i_locale.U):
        This variable conditionally defines the I_LOCALE symbol,
        and indicates whether a C program should include <locale.h>.
 
+i_machcthr (i_machcthr.U):
+           This variable conditionally defines the I_MACH_CTHREADS symbol,
+           and indicates whether a C program should include <mach/cthreads.h>.
+
 i_malloc (i_malloc.U):
        This variable conditionally defines the I_MALLOC symbol, and indicates
        whether a C program should include <malloc.h>.
@@ -1557,6 +1722,10 @@ i_string (i_string.U):
        This variable conditionally defines the I_STRING symbol, which
        indicates that <string.h> should be included rather than <strings.h>.
 
+i_sysaccess (i_sysaccess.U):
+           This variable conditionally defines the I_SYS_ACCESS symbol,
+           and indicates whether a C program should include <sys/access.h>.
+
 i_sysdir (i_sysdir.U):
        This variable conditionally defines the I_SYS_DIR symbol, and indicates
        whether a C program should include <sys/dir.h>.
@@ -1592,6 +1761,10 @@ i_sysresrc (i_sysresrc.U):
        This variable conditionally defines the I_SYS_RESOURCE symbol,
        and indicates whether a C program should include <sys/resource.h>.
 
+i_syssecrt (i_syssecrt.U):
+           This variable conditionally defines the I_SYS_SECURITY symbol,
+           and indicates whether a C program should include <sys/security.h>.
+
 i_sysselct (i_sysselct.U):
        This variable conditionally defines I_SYS_SELECT, which indicates
        to the C program that it should include <sys/select.h> in order to
@@ -1671,6 +1844,11 @@ i_vfork (i_vfork.U):
        This variable conditionally defines the I_VFORK symbol, and indicates
        whether a C program should include vfork.h.
 
+ignore_versioned_solibs (libs.U):
+       This variable should be non-empty if non-versioned shared
+       libraries (libfoo.so.x.y) are to be ignored (because they
+       cannot be linked against).
+
 incpath (usrinc.U):
        This variable must preceed the normal include path to get hte
        right one, as in "$incpath/usr/include" or "$incpath/usr/lib".
@@ -1788,9 +1966,8 @@ libswanted (Myinit.U):
        ahead of ucb or bsd libraries for SVR4.
 
 line (Loc.U):
-       This variable is be used internally by Configure to determine the
-       full pathname (if any) of the line program.  After Configure runs,
-       the value is reset to a plain "line" and is not useful.
+       This variable is defined but not used by Configure.
+       The value is a plain '' and is not useful.
 
 lint (Loc.U):
        This variable is defined but not used by Configure.
@@ -1849,6 +2026,11 @@ ls (Loc.U):
        full pathname (if any) of the ls program.  After Configure runs,
        the value is reset to a plain "ls" and is not useful.
 
+lseeksize (lseektype.U):
+       This variable defines lseektype to be something like off_t, long, 
+       or whatever type is used to declare lseek offset's type in the
+       kernel (which also appears to be lseek's return type).
+
 lseektype (lseektype.U):
        This variable defines lseektype to be something like off_t, long, 
        or whatever type is used to declare lseek offset's type in the
@@ -1923,6 +2105,11 @@ man3ext (man3dir.U):
        have: one of 'n', 'l', or '3'.  The Makefile must supply the '.'.
        See man3dir.
 
+Mcc (Loc.U):
+       This variable is be used internally by Configure to determine the
+       full pathname (if any) of the Mcc program.  After Configure runs,
+       the value is reset to a plain "Mcc" and is not useful.
+
 medium (models.U):
        This variable contains a flag which will tell the C compiler and loader
        to produce a program running with a medium memory model.  If the
@@ -2086,9 +2273,8 @@ path_sep (Unix.U):
        used to separate elements in the command shell search PATH.
 
 perl (Loc.U):
-       This variable is be used internally by Configure to determine the
-       full pathname (if any) of the perl program.  After Configure runs,
-       the value is reset to a plain "perl" and is not useful.
+       This variable is defined but not used by Configure.
+       The value is a plain '' and is not useful.
 
 perladmin (perladmin.U):
        Electronic mail address of the perl5 administrator.
@@ -2151,14 +2337,28 @@ prototype (prototype.U):
        This variable holds the eventual value of CAN_PROTOTYPE, which
        indicates the C compiler can handle funciton prototypes.
 
+pthread_create_joinable (d_pthrattrj.U):
+       This variable defines the constant to use for creating joinable
+       (aka undetached) pthreads.  Unused if pthread.h defines
+       PTHREAD_CREATE_JOINABLE.  If used, possible values are
+       PTHREAD_CREATE_UNDETACHED and __UNDETACHED.
+
 ptrsize (ptrsize.U):
        This variable contains the value of the PTRSIZE symbol, which
        indicates to the C program how many bytes there are in a pointer.
 
-randbits (randbits.U):
-       This variable contains the eventual value of the RANDBITS symbol,
-       which indicates to the C program how many bits of random number
-       the rand() function produces.
+randbits (randfunc.U):
+       Indicates how many bits are produced by the function used to
+       generate normalized random numbers.
+
+randfunc (randfunc.U):
+       Indicates the name of the random number function to use.
+       Values include drand48, random, and rand. In C programs,
+       the 'Drand01' macro is defined to generate uniformly distributed
+       random numbers over the range [0., 1.[ (see drand01 and nrand).
+
+randseedtype (randfunc.U):
+       Indicates the type of the argument of the seedfunc.
 
 ranlib (orderlib.U):
        This variable is set to the pathname of the ranlib program, if it is
@@ -2185,6 +2385,10 @@ runnm (usenm.U):
        nm extraction should be performed or not, according to the value
        of usenm and the flags on the Configure command line.
 
+sched_yield (d_pthread_y.U):
+       This variable defines the way to yield the execution
+       of the current thread.
+
 scriptdir (scriptdir.U):
        This variable holds the name of the directory in which the user wants
        to put publicly scripts for the package in question.  It is either
@@ -2201,6 +2405,17 @@ sed (Loc.U):
        full pathname (if any) of the sed program.  After Configure runs,
        the value is reset to a plain "sed" and is not useful.
 
+seedfunc (randfunc.U):
+       Indicates the random number generating seed function.
+       Values include srand48, srandom, and srand.
+
+selectminbits (selectminbits.U):
+       This variable holds the minimum number of bits operated by select.
+       That is, if you do select(n, ...), how many bits at least will be
+       cleared in the masks if some activity is detected.  Usually this
+       is either n or 32*ceil(n/32), especially many little-endians do
+       the latter.  This is only useful if you have select(), naturally.
+
 selecttype (selecttype.U):
        This variable holds the type used for the 2nd, 3rd, and 4th
        arguments to select.  Usually, this is 'fd_set *', if HAS_FD_SET
@@ -2208,9 +2423,8 @@ selecttype (selecttype.U):
        have select(), naturally.
 
 sendmail (Loc.U):
-       This variable is be used internally by Configure to determine the
-       full pathname (if any) of the sendmail program.  After Configure runs,
-       the value is reset to a plain "sendmail" and is not useful.
+       This variable is defined but not used by Configure.
+       The value is a plain '' and is not useful.
 
 sh (sh.U):
        This variable contains the full pathname of the shell used
@@ -2271,12 +2485,18 @@ sig_name_init (sig_name.U):
        is removed. See sig_num.
 
 sig_num (sig_name.U):
-       This variable holds the signal numbers, comma separated. A 0 is
+       This variable holds the signal numbers, space separated. A ZERO is
        prepended to the list (corresponding to the fake SIGZERO), and 
        the list is terminated with a 0.  Those numbers correspond to 
        the value of the signal listed in the same place within the
        sig_name list.
 
+sig_num_init (sig_name.U):
+       This variable holds the signal numbers, enclosed in double quotes and
+       separated by commas, suitable for use in the SIG_NUM definition 
+       below.  A "ZERO" is prepended to the list, and the list is 
+       terminated with a plain 0.
+
 signal_t (d_voidsig.U):
        This variable holds the type of the signal handler (void or int).
 
@@ -2491,10 +2711,19 @@ uniq (Loc.U):
        full pathname (if any) of the uniq program.  After Configure runs,
        the value is reset to a plain "uniq" and is not useful.
 
+use64bits (use64bits.U):
+       This variable conditionally defines the USE_64_BITS symbol,
+       and indicates that explicit 64-bit interfaces should be used
+       when available.
+
 usedl (dlsrc.U):
        This variable indicates if the the system supports dynamic
        loading of some sort.  See also dlsrc and dlobj.
 
+usemultiplicity (usemultiplicity.U):
+       This variable conditionally defines the MULTIPLICITY symbol,
+       and indicates that Perl should be built to use multiplicity.
+
 usemymalloc (mallocsrc.U):
        This variable contains y if the malloc that comes with this package
        is desired over the system's version of malloc.  People often include
index 7af2527..25c25cf 100644 (file)
@@ -8,9 +8,9 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Fri Sep 25 03:42:43 EDT 1998
-# Configured by     : gsar
-# Target system     : sunos 5.5.1 generic_103640-01 sun4m sparc sunw,sparcstation-20 
+# Configuration time: Thu Nov  5 12:26:24 EET 1998
+# Configured by     : jhi
+# Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
 Author=''
 Date='$Date'
@@ -26,34 +26,35 @@ State=''
 _a='.a'
 _exe=''
 _o='.o'
-afs='true'
+afs='false'
 alignbytes='8'
 ansi2knr=''
 aphostname=''
-apiversion='5.00552'
+apiversion='5.00553'
 ar='ar'
-archlib='/l1/packages/gsperl/lib/5.00552/sun4-solaris-thread'
-archlibexp='/l1/packages/gsperl/lib/5.00552/sun4-solaris-thread'
-archname='sun4-solaris-thread'
+archlib='/opt/perl/lib/5.00553/alpha-dec_osf-thread'
+archlibexp='/opt/perl/lib/5.00553/alpha-dec_osf-thread'
+archname64=''
+archname='alpha-dec_osf-thread'
 archobjs=''
 awk='awk'
 baserev='5.0'
 bash=''
-bin='/l1/packages/gsperl/bin'
-binexp='/l1/packages/gsperl/bin'
+bin='/opt/perl/bin'
+binexp='/opt/perl/bin'
 bison=''
 byacc='byacc'
-byteorder='4321'
+byteorder='12345678'
 c='\c'
 castflags='0'
 cat='cat'
-cc='gcc'
-cccdlflags='-fPIC'
+cc='cc'
+cccdlflags=' '
 ccdlflags=' '
-ccflags='-D_REENTRANT -DDEBUGGING'
-cf_by='gsar'
+ccflags='-pthread -std -D__LANGUAGE_C__'
+cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Fri Sep 25 03:42:43 EDT 1998'
+cf_time='Thu Nov  5 12:26:24 EET 1998'
 chgrp=''
 chmod=''
 chown=''
@@ -65,26 +66,26 @@ cp='cp'
 cpio=''
 cpp='cpp'
 cpp_stuff='42'
-cppflags='-D_REENTRANT -DDEBUGGING'
-cpplast='-'
-cppminus='-'
-cpprun='gcc -E'
-cppstdin='gcc -E'
+cppflags='-pthread -std -D__LANGUAGE_C__'
+cpplast=''
+cppminus=''
+cpprun='/usr/bin/cpp'
+cppstdin='cppstdin'
 cryptlib=''
 csh='csh'
-d_Gconvert='gconvert((x),(n),(t),(b))'
+d_Gconvert='gcvt((x),(n),(b))'
 d_access='define'
 d_accessx='undef'
 d_alarm='define'
 d_archlib='define'
-d_attribut='define'
+d_attribut='undef'
 d_bcmp='define'
 d_bcopy='define'
-d_bsd='define'
+d_bsd='undef'
 d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
+d_bsdsetpgrp='define'
 d_bzero='define'
-d_casti32='define'
+d_casti32='undef'
 d_castneg='define'
 d_charvspr='undef'
 d_chown='define'
@@ -101,11 +102,12 @@ d_dbminit64='undef'
 d_delete64='undef'
 d_difftime='define'
 d_dirent64s='undef'
-d_dirnamlen='undef'
+d_dirnamlen='define'
 d_dlerror='define'
 d_dlopen='define'
 d_dlsymun='undef'
 d_dosuid='undef'
+d_drand48proto='define'
 d_dup2='define'
 d_eaccess='undef'
 d_endgrent='define'
@@ -128,7 +130,7 @@ d_fgetpos='define'
 d_firstkey64='undef'
 d_flexfnam='define'
 d_flock64s='undef'
-d_flock='undef'
+d_flock='define'
 d_fopen64='undef'
 d_fork='define'
 d_fpathconf='define'
@@ -149,7 +151,7 @@ d_getgrps='define'
 d_gethbyaddr='define'
 d_gethbyname='define'
 d_gethent='define'
-d_gethname='undef'
+d_gethname='define'
 d_gethostprotos='define'
 d_getlogin='define'
 d_getnbyaddr='define'
@@ -175,7 +177,7 @@ d_gnulibc='undef'
 d_grpasswd='define'
 d_htonl='define'
 d_index='undef'
-d_inetaton='undef'
+d_inetaton='define'
 d_ino64t='undef'
 d_int64t='undef'
 d_isascii='define'
@@ -205,7 +207,7 @@ d_msgctl='define'
 d_msgget='define'
 d_msgrcv='define'
 d_msgsnd='define'
-d_mymalloc='define'
+d_mymalloc='undef'
 d_nextkey64='undef'
 d_nice='define'
 d_off64t='undef'
@@ -220,16 +222,16 @@ d_phostname='undef'
 d_pipe='define'
 d_poll='define'
 d_portable='define'
+d_pthread_create_joinable='undef'
 d_pthread_yield='undef'
-d_pthreads_created_joinable='define'
-d_pwage='define'
+d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
 d_pwcomment='define'
 d_pwexpire='undef'
 d_pwgecos='define'
 d_pwpasswd='define'
-d_pwquota='undef'
+d_pwquota='define'
 d_readdir64='undef'
 d_readdir='define'
 d_readlink='define'
@@ -245,7 +247,7 @@ d_seekdir='define'
 d_select='define'
 d_sem='define'
 d_semctl='define'
-d_semctl_semid_ds='undef'
+d_semctl_semid_ds='define'
 d_semctl_semun='define'
 d_semget='define'
 d_semop='define'
@@ -267,8 +269,8 @@ d_setregid='define'
 d_setresgid='undef'
 d_setresuid='undef'
 d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
+d_setrgid='define'
+d_setruid='define'
 d_setsent='define'
 d_setsid='define'
 d_setvbuf='define'
@@ -299,7 +301,7 @@ d_strtod='define'
 d_strtol='define'
 d_strtoul='define'
 d_strxfrm='define'
-d_suidsafe='define'
+d_suidsafe='undef'
 d_symlink='define'
 d_syscall='define'
 d_sysconf='define'
@@ -317,7 +319,7 @@ d_truncate64='undef'
 d_truncate='define'
 d_tzname='define'
 d_umask='define'
-d_uname='define'
+d_uname='undef'
 d_union_semun='undef'
 d_vfork='undef'
 d_void_closedir='undef'
@@ -338,7 +340,8 @@ direntrytype='struct dirent'
 dlext='so'
 dlsrc='dl_dlopen.xs'
 doublesize='8'
-dynamic_ext='B Data/Dumper Fcntl IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
+drand01='drand48()'
+dynamic_ext='B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
 eagain='EAGAIN'
 ebcdic='undef'
 echo='echo'
@@ -347,40 +350,41 @@ emacs=''
 eunicefix=':'
 exe_ext=''
 expr='expr'
-extensions='B Data/Dumper Fcntl IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re Errno'
-find='find'
+extensions='B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re Errno'
+find=''
 firstmakefile='makefile'
 flex=''
 fpostype='fpos_t'
 freetype='void'
 full_csh='/usr/bin/csh'
 full_sed='/usr/bin/sed'
-gccversion='2.8.1'
+gccversion=''
 gidtype='gid_t'
-glibpth='/usr/shlib /shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/local/lib'
+glibpth='/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib'
 grep='grep'
 groupcat='cat /etc/group'
 groupstype='gid_t'
 gzip='gzip'
-h_fcntl='true'
-h_sysfile='false'
+h_fcntl='false'
+h_sysfile='true'
 hint='recommended'
 hostcat='cat /etc/hosts'
 huge=''
 i_arpainet='define'
 i_bsdioctl=''
-i_db='undef'
-i_dbm='undef'
+i_db='define'
+i_dbm='define'
 i_dirent='define'
 i_dld='undef'
 i_dlfcn='define'
-i_fcntl='define'
+i_fcntl='undef'
 i_float='define'
 i_gdbm='undef'
 i_grp='define'
 i_inttypes='undef'
 i_limits='define'
 i_locale='define'
+i_machcthr='undef'
 i_malloc='define'
 i_math='define'
 i_memory='undef'
@@ -389,23 +393,23 @@ i_netdb='define'
 i_neterrno='undef'
 i_niin='define'
 i_pwd='define'
-i_rpcsvcdbm='define'
+i_rpcsvcdbm='undef'
 i_sfio='undef'
 i_sgtty='undef'
 i_stdarg='define'
 i_stddef='define'
 i_stdlib='define'
 i_string='define'
-i_sysaccess='undef'
-i_sysdir='undef'
-i_sysfile='undef'
-i_sysfilio='define'
+i_sysaccess='define'
+i_sysdir='define'
+i_sysfile='define'
+i_sysfilio='undef'
 i_sysin='undef'
 i_sysioctl='define'
 i_sysndir='undef'
 i_sysparam='define'
 i_sysresrc='define'
-i_syssecrt='undef'
+i_syssecrt='define'
 i_sysselct='define'
 i_syssockio=''
 i_sysstat='define'
@@ -424,57 +428,58 @@ i_values='define'
 i_varargs='undef'
 i_varhdr='stdarg.h'
 i_vfork='undef'
+ignore_versioned_solibs=''
 incpath=''
 inews=''
-installarchlib='/l1/packages/gsperl/lib/5.00552/sun4-solaris-thread'
-installbin='/l1/packages/gsperl/bin'
-installman1dir='/l1/packages/gsperl/man/man1'
-installman3dir='/l1/packages/gsperl/man/man3'
-installprivlib='/l1/packages/gsperl/lib/5.00552'
-installscript='/l1/packages/gsperl/bin'
-installsitearch='/l1/packages/gsperl/lib/site_perl/5.00552/sun4-solaris-thread'
-installsitelib='/l1/packages/gsperl/lib/site_perl/5.00552'
+installarchlib='/opt/perl/lib/5.00553/alpha-dec_osf-thread'
+installbin='/opt/perl/bin'
+installman1dir='/opt/perl/man/man1'
+installman3dir='/opt/perl/man/man3'
+installprivlib='/opt/perl/lib/5.00553'
+installscript='/opt/perl/bin'
+installsitearch='/opt/perl/lib/site_perl/5.00553/alpha-dec_osf-thread'
+installsitelib='/opt/perl/lib/site_perl/5.00553'
 intsize='4'
 known_extensions='B DB_File Data/Dumper Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
 ksh=''
 large=''
-ld='gcc'
-lddlflags='-G -L/usr/local/lib'
-ldflags=' -L/usr/local/lib'
+ld='ld'
+lddlflags='-shared -expect_unresolved "*" -O -msym -s'
+ldflags=''
 less='less'
 lib_ext='.a'
-libc=''
+libc='/usr/shlib/libc.so'
 libperl='libperl.a'
-libpth='/usr/local/lib /lib /usr/lib /usr/ccs/lib'
-libs='-lsocket -lnsl -ldl -lm -lposix4 -lpthread -lc'
-libswanted='sfio socket inet nsl nm ndbm gdbm dbm db dl dld sun m posix4 pthread c cposix posix ndir dir crypt bsd BSD PW x'
-line='line'
+libpth='/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /var/shlib'
+libs='-lgdbm -ldbm -ldb -lm -lpthread -lexc'
+libswanted='sfio socket inet nsl nm gdbm dbm db malloc dld ld sun m cposix posix ndir dir crypt ucb BSD x pthread exc'
+line=''
 lint=''
 lkflags=''
 ln='ln'
 lns='/usr/bin/ln -s'
 locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
 loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
-longdblsize='16'
+longdblsize='8'
 longlongsize='8'
-longsize='4'
+longsize='8'
 lp=''
 lpr=''
 ls='ls'
-lseeksize='4'
+lseeksize='8'
 lseektype='off_t'
 mail=''
 mailx=''
 make='make'
 make_set_make='#'
-mallocobj='malloc.o'
-mallocsrc='malloc.c'
+mallocobj=''
+mallocsrc=''
 malloctype='void *'
-man1dir='/l1/packages/gsperl/man/man1'
-man1direxp='/l1/packages/gsperl/man/man1'
+man1dir='/opt/perl/man/man1'
+man1direxp='/opt/perl/man/man1'
 man1ext='1'
-man3dir='/l1/packages/gsperl/man/man3'
-man3direxp='/l1/packages/gsperl/man/man3'
+man3dir='/opt/perl/man/man3'
+man3direxp='/opt/perl/man/man3'
 man3ext='3'
 medium=''
 mips=''
@@ -484,15 +489,15 @@ models='none'
 modetype='mode_t'
 more='more'
 mv=''
-myarchname='sun4-solaris'
+myarchname='alpha-dec_osf'
 mydomain='.yourplace.com'
 myhostname='yourhost'
-myuname='sunos aatma 5.5.1 generic_103640-01 sun4m sparc sunw,sparcstation-20 '
+myuname='osf1 alpha.hut.fi v4.0 878 alpha '
 n=''
 netdb_hlen_type='int'
 netdb_host_type='const char *'
 netdb_name_type='const char *'
-netdb_net_type='long'
+netdb_net_type='int'
 nm='nm'
 nm_opt='-p'
 nm_so_opt=''
@@ -500,42 +505,47 @@ nonxs_ext='Errno'
 nroff='nroff'
 o_nonblock='O_NONBLOCK'
 obj_ext='.o'
-optimize='-g'
+optimize='-O'
 orderlib='false'
-osname='solaris'
-osvers='2.5.1'
+osname='dec_osf'
+osvers='4.0'
 package='perl5'
-pager='less'
+pager='/c/bin/less'
 passcat='cat /etc/passwd'
 patchlevel='5'
 path_sep=':'
-perl='perl'
+perl=''
 perladmin='yourname@yourhost.yourplace.com'
-perlpath='/l1/packages/gsperl/bin/perl'
+perlpath='/opt/perl/bin/perl'
 pg='pg'
-phostname='hostname'
+phostname=''
 pidtype='pid_t'
 plibpth=''
 pmake=''
 pr=''
-prefix='/l1/packages/gsperl'
-prefixexp='/l1/packages/gsperl'
-privlib='/l1/packages/gsperl/lib/5.00552'
-privlibexp='/l1/packages/gsperl/lib/5.00552'
+prefix='/opt/perl'
+prefixexp='/opt/perl'
+privlib='/opt/perl/lib/5.00553'
+privlibexp='/opt/perl/lib/5.00553'
 prototype='define'
-ptrsize='4'
-randbits='15'
+pthread_create_joinable='0'
+ptrsize='8'
+randbits='48'
+randfunc='drand48'
+randseedtype='long'
 ranlib=':'
 rd_nodata='-1'
 rm='rm'
 rmail=''
-runnm='false'
-scriptdir='/l1/packages/gsperl/bin'
-scriptdirexp='/l1/packages/gsperl/bin'
+runnm='true'
+sched_yield='sched_yield()'
+scriptdir='/opt/perl/bin'
+scriptdirexp='/opt/perl/bin'
 sed='sed'
+seedfunc='srand48'
 selectminbits='32'
 selecttype='fd_set *'
-sendmail='sendmail'
+sendmail=''
 sh='/bin/sh'
 shar=''
 sharpbang='#!'
@@ -543,14 +553,15 @@ shmattype='void *'
 shortsize='2'
 shrpenv=''
 shsharp='true'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ WAITING LWP FREEZE THAW CANCEL RTMIN NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 RTMAX IOT CLD POLL '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "WAITING", "LWP", "FREEZE", "THAW", "CANCEL", "RTMIN", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "RTMAX", "IOT", "CLD", "POLL", 0'
-sig_num='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 6, 18, 22, 0'
+sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM IOINT STOP TSTP CONT CHLD TTIN TTOU AIO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 RESV RTMIN NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 MAX IOT LOST URG CLD IO POLL PTY PWR RTMAX '
+sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "IOINT", "STOP", "TSTP", "CONT", "CHLD", "TTIN", "TTOU", "AIO", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "INFO", "USR1", "USR2", "RESV", "RTMIN", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "MAX", "IOT", "LOST", "URG", "CLD", "IO", "POLL", "PTY", "PWR", "RTMAX", 0'
+sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 6 6 16 20 23 23 23 29 48 '
+sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0'
 signal_t='void'
-sitearch='/l1/packages/gsperl/lib/site_perl/5.00552/sun4-solaris-thread'
-sitearchexp='/l1/packages/gsperl/lib/site_perl/5.00552/sun4-solaris-thread'
-sitelib='/l1/packages/gsperl/lib/site_perl/5.00552'
-sitelibexp='/l1/packages/gsperl/lib/site_perl/5.00552'
+sitearch='/opt/perl/lib/site_perl/5.00553/alpha-dec_osf-thread'
+sitearchexp='/opt/perl/lib/site_perl/5.00553/alpha-dec_osf-thread'
+sitelib='/opt/perl/lib/site_perl/5.00553'
+sitelibexp='/opt/perl/lib/site_perl/5.00553'
 sizetype='size_t'
 sleep=''
 smail=''
@@ -564,7 +575,7 @@ spitshell='cat'
 split=''
 src='.'
 ssizetype='ssize_t'
-startperl='#!/l1/packages/gsperl/bin/perl'
+startperl='#!/opt/perl/bin/perl'
 startsh='#!/bin/sh'
 static_ext=' '
 stdchar='unsigned char'
@@ -575,7 +586,7 @@ stdio_filbuf=''
 stdio_ptr='((fp)->_ptr)'
 strings='/usr/include/string.h'
 submit=''
-subversion='52'
+subversion='53'
 sysman='/usr/man/man1'
 tail=''
 tar=''
@@ -591,9 +602,10 @@ troff=''
 uidtype='uid_t'
 uname='uname'
 uniq='uniq'
-use64bits='undef'
+use64bits='define'
 usedl='define'
-usemymalloc='y'
+usemultiplicity='undef'
+usemymalloc='n'
 usenm='true'
 useopcode='true'
 useperlio='undef'
@@ -604,7 +616,7 @@ usethreads='define'
 usevfork='false'
 usrinc='/usr/include'
 uuname=''
-version='5.00552'
+version='5.00553'
 vi=''
 voidflags='15'
 xlibpth='/usr/lib/386 /lib/386'
@@ -612,17 +624,20 @@ zcat=''
 zip='zip'
 # Configure command line arguments.
 config_arg0='Configure'
-config_args='-Dprefix=/opt/perl -Doptimize=-O -Dusethreads -Dcf_by=yourname -Dcf_email=yourname@yourhost.yourplace.com -Dperladmin=yourname@yourhost.yourplace.com -Dmydomain=.yourplace.com -Dmyhostname=yourhost -dE'
-config_argc=9
+config_args='-Dprefix=/opt/perl -Doptimize=-O -Dusethreads -Duse64bits -Dcf_by=yourname -Dcf_email=yourname@yourhost.yourplace.com -Dperladmin=yourname@yourhost.yourplace.com -Dmydomain=.yourplace.com -Dmyhostname=yourhost -dE'
+config_argc=10
 config_arg1='-Dprefix=/opt/perl'
 config_arg2='-Doptimize=-O'
 config_arg3='-Dusethreads'
-config_arg4='-Dcf_by=yourname'
-config_arg5='-Dcf_email=yourname@yourhost.yourplace.com'
-config_arg6='-Dperladmin=yourname@yourhost.yourplace.com'
-config_arg7='-Dmydomain=.yourplace.com'
-config_arg8='-Dmyhostname=yourhost'
-config_arg9='-dE'
+config_arg4='-Duse64bits'
+config_arg5='-Dcf_by=yourname'
+config_arg6='-Dcf_email=yourname@yourhost.yourplace.com'
+config_arg7='-Dperladmin=yourname@yourhost.yourplace.com'
+config_arg8='-Dmydomain=.yourplace.com'
+config_arg9='-Dmyhostname=yourhost'
+config_arg10='-dE'
 PATCHLEVEL=5
-SUBVERSION=52
+SUBVERSION=53
 CONFIG=true
+# Variables propagated from previous config.sh file.
+pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
index 7a742e6..97b5300 100644 (file)
@@ -1,3 +1,7 @@
+/* This file (config_H) is a sample config.h file.  If you are unable
+   to successfully run Configure, copy this file to config.h and
+   edit it to suit your system.
+*/
 /*
  * This file was produced by running the config_h.SH script, which
  * gets its values from config.sh, which is generally produced by
@@ -13,9 +17,9 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Fri Sep 25 03:42:43 EDT 1998
- * Configured by     : gsar
- * Target system     : sunos aatma 5.5.1 generic_103640-01 sun4m sparc sunw,sparcstation-20 
+ * Configuration time: Thu Nov  5 13:03:49 EET 1998
+ * Configured by     : jhi
+ * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
 
 #ifndef _config_h_
  *     This symbol is the filename expanded version of the BIN symbol, for
  *     programs that do not want to deal with that at run-time.
  */
-#define BIN "/l1/packages/gsperl/bin"  /**/
-#define BIN_EXP "/l1/packages/gsperl/bin"      /**/
-
-/* CPPSTDIN:
- *     This symbol contains the first part of the string which will invoke
- *     the C preprocessor on the standard input and produce to standard
- *     output.  Typical value of "cc -E" or "/lib/cpp", but it can also
- *     call a wrapper. See CPPRUN.
- */
-/* CPPMINUS:
- *     This symbol contains the second part of the string which will invoke
- *     the C preprocessor on the standard input and produce to standard
- *     output.  This symbol will have the value "-" if CPPSTDIN needs a minus
- *     to specify standard input, otherwise the value is "".
- */
-#define CPPSTDIN "gcc -E"
-#define CPPMINUS "-"
+#define BIN "/opt/perl/bin"    /**/
+#define BIN_EXP "/opt/perl/bin"        /**/
 
 /* HAS_ALARM:
  *     This symbol, if defined, indicates that the alarm routine is
@@ -62,7 +51,7 @@
  *     This symbol indicates the C compiler can check for function attributes,
  *     such as printf formats. This is normally only supported by GNU cc.
  */
-#define HASATTRIBUTE   /**/
+/*#define HASATTRIBUTE         / **/
 #ifndef HASATTRIBUTE
 #define __attribute__(_arg_)
 #endif
  *     subprocesses to which it must pass the filename rather than the
  *     file descriptor of the script to be executed.
  */
-#define SETUID_SCRIPTS_ARE_SECURE_NOW  /**/
+/*#define SETUID_SCRIPTS_ARE_SECURE_NOW        / **/
 /*#define DOSUID               / **/
 
 /* HAS_DUP2:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
  */
-/*#define HAS_FLOCK            / **/
+#define HAS_FLOCK              /**/
 
 /* HAS_FORK:
  *     This symbol, if defined, indicates that the fork routine is
  */
 #define HAS_GETGROUPS          /**/
 
+/* HAS_GETHOSTNAME:
+ *     This symbol, if defined, indicates that the C program may use the
+ *     gethostname() routine to derive the host name.  See also HAS_UNAME
+ *     and PHOSTNAME.
+ */
 /* HAS_UNAME:
  *     This symbol, if defined, indicates that the C program may use the
  *     uname() routine to derive the host name.  See also HAS_GETHOSTNAME
  *     and PHOSTNAME.
  */
-#define HAS_UNAME              /**/
+/* PHOSTNAME:
+ *     This symbol, if defined, indicates that the C program may use the
+ *     contents of PHOSTNAME as a command to feed to the popen() routine
+ *     to derive the host name.  See also HAS_GETHOSTNAME and HAS_UNAME.
+ *     Note that the command uses a fully qualified path, so that it is safe
+ *     even if used by a process with super-user privileges.
+ */
+#define HAS_GETHOSTNAME        /**/
+/*#define HAS_UNAME            / **/
+/*#define PHOSTNAME "" / * How to get the host name */
 
 /* HAS_GETLOGIN:
  *     This symbol, if defined, indicates that the getlogin routine is
  *     inet_aton() function is available to parse IP address "dotted-quad"
  *     strings.
  */
-/*#define HAS_INET_ATON                / **/
+#define HAS_INET_ATON          /**/
 
 /* HAS_KILLPG:
  *     This symbol, if defined, indicates that the killpg routine is available
  *     for a POSIX interface.
  */
 #define HAS_SETPGRP            /**/
-/*#define USE_BSD_SETPGRP      / **/
+#define USE_BSD_SETPGRP        /**/
 
 /* HAS_SETPGRP2:
  *     This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
  *     This symbol, if defined, indicates that the setrgid routine is available
  *     to change the real gid of the current program.
  */
-/*#define HAS_SETRGID          / **/
+#define HAS_SETRGID            /**/
 
 /* HAS_SETRUID:
  *     This symbol, if defined, indicates that the setruid routine is available
  *     to change the real uid of the current program.
  */
-/*#define HAS_SETRUID          / **/
+#define HAS_SETRUID            /**/
 
 /* HAS_SETSID:
  *     This symbol, if defined, indicates that the setsid routine is
  *     This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
  *     should be included.
  */
-/*#define I_DBM        / **/
-#define I_RPCSVC_DBM   /**/
+#define I_DBM  /**/
+/*#define I_RPCSVC_DBM / **/
 
 /* I_DIRENT:
  *     This symbol, if defined, indicates to the C program that it should
  *     portably declare your directory entries.
  */
 #define I_DIRENT               /**/
-/*#define DIRNAMLEN    / **/
+#define DIRNAMLEN      /**/
 #define Direntry_t struct dirent
 
 /* I_DLFCN:
 /* I_FCNTL:
  *     This manifest constant tells the C program to include <fcntl.h>.
  */
-#define I_FCNTL        /**/
+/*#define I_FCNTL      / **/
 
 /* I_FLOAT:
  *     This symbol, if defined, indicates to the C program that it should
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/dir.h>.
  */
-/*#define I_SYS_DIR            / **/
+#define I_SYS_DIR              /**/
 
 /* I_SYS_FILE:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/file.h> to get definition of R_OK and friends.
  */
-/*#define I_SYS_FILE           / **/
+#define I_SYS_FILE             /**/
 
 /* I_SYS_IOCTL:
  *     This symbol, if defined, indicates that <sys/ioctl.h> exists and should
 
 /* I_SYS_ACCESS:
  *     This symbol, if defined, indicates to the C program that it should
- *     include <sysaccess.h>.
+ *     include <sys/access.h>.
  */
-/*#define   I_SYS_ACCESS                / **/
+#define   I_SYS_ACCESS                /**/
 
 /* I_SYS_SECURITY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/security.h>.
  */
-/*#define   I_SYS_SECURITY     / **/
+#define   I_SYS_SECURITY       /**/
 
 /* MEM_ALIGNBYTES:
  *      This symbol contains the number of bytes required to align a
  *     This might matter for NeXT 3.0.
  */
 #ifndef NeXT
-#define BYTEORDER 0x4321       /* large digits for MSB */
+#define BYTEORDER 0x12345678   /* large digits for MSB */
 #else  /* NeXT */
 #ifdef __LITTLE_ENDIAN__
 #define BYTEORDER 0x1234
  *     This symbol is defined if the C compiler can cast negative
  *     or large floating point numbers to 32-bit ints.
  */
-#define        CASTI32         /**/
+/*#define      CASTI32         / **/
 
 /* CASTNEGFLOAT:
  *     This symbol is defined if the C compiler can cast negative
  */
 /*#define VOID_CLOSEDIR                / **/
 
+/* HAS_FD_SET:
+ *     This symbol, when defined, indicates presence of the fd_set typedef
+ *     in <sys/types.h>
+ */
+#define HAS_FD_SET     /**/
+
 /* Gconvert:
  *     This preprocessor macro is defined to convert a floating point
  *     number to a string without a trailing decimal point.  This
  *             d_Gconvert='sprintf((b),"%.*g",(n),(x))'
  *     The last two assume trailing zeros should not be kept.
  */
-#define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
+#define Gconvert(x,n,t,b) gcvt((x),(n),(b))
 
 /* HAS_GNULIBC:
  *     This symbol, if defined, indicates to the C program that 
  */
 #define HAS_SIGACTION  /**/
 
+/* HAS_SIGSETJMP:
+ *     This variable indicates to the C program that the sigsetjmp()
+ *     routine is available to save the calling process's registers
+ *     and stack environment for later use by siglongjmp(), and
+ *     to optionally save the process's signal mask.  See
+ *     Sigjmp_buf, Sigsetjmp, and Siglongjmp.
+ */
 /* Sigjmp_buf:
  *     This is the buffer type to be used with Sigsetjmp and Siglongjmp.
  */
  *     preprocessor can make decisions based on it.
  */
 #define INTSIZE 4              /**/
-#define LONGSIZE 4             /**/
+#define LONGSIZE 8             /**/
 #define SHORTSIZE 2            /**/
 
 /* VAL_O_NONBLOCK:
  *     the compiler supports (void *); otherwise it will be
  *     sizeof(char *).
  */
-#define PTRSIZE 4              /**/
+#define PTRSIZE 8              /**/
 
+/* Drand01:
+ *     This macro is to be used to generate uniformly distributed
+ *     random numbers over the range [0., 1.[.  You may have to supply
+ *     an 'extern double drand48();' in your program since SunOS 4.1.3
+ *     doesn't provide you with anything relevant in it's headers.
+ *     See HAS_DRAND48_PROTO.
+ */
+/* Rand_seed_t:
+ *     This symbol defines the type of the argument of the
+ *     random seed function.
+ */
+/* seedDrand01:
+ *     This symbol defines the macro to be used in seeding the
+ *     random number generator (see Drand01).
+ */
 /* RANDBITS:
- *     This symbol contains the number of bits of random number the rand()
- *     function produces.  Usual values are 15, 16, and 31.
+ *     This symbol indicates how many bits are produced by the
+ *     function used to generate normalized random numbers.
+ *     Values include 15, 16, 31, and 48.
  */
-#define RANDBITS 15            /**/
+#define Drand01()              drand48()               /**/
+#define Rand_seed_t            long            /**/
+#define seedDrand01(x) srand48((Rand_seed_t)x) /**/
+#define RANDBITS               48              /**/
 
 /* SSize_t:
  *     This symbol holds the type used by functions that return
  *     by Configure.  You shouldn't rely on it too much; the specific
  *     feature tests from Configure are generally more reliable.
  */
-#define OSNAME "solaris"               /**/
+#define OSNAME "dec_osf"               /**/
 
 /* CAT2:
  *     This macro catenates 2 tokens together.
 #include "Bletch: How does this C preprocessor catenate tokens?"
 #endif
 
+/* CPPSTDIN:
+ *     This symbol contains the first part of the string which will invoke
+ *     the C preprocessor on the standard input and produce to standard
+ *     output.  Typical value of "cc -E" or "/lib/cpp", but it can also
+ *     call a wrapper. See CPPRUN.
+ */
+/* CPPMINUS:
+ *     This symbol contains the second part of the string which will invoke
+ *     the C preprocessor on the standard input and produce to standard
+ *     output.  This symbol will have the value "-" if CPPSTDIN needs a minus
+ *     to specify standard input, otherwise the value is "".
+ */
+/* CPPRUN:
+ *     This symbol contains the string which will invoke a C preprocessor on
+ *     the standard input and produce to standard output. It needs to end
+ *     with CPPLAST, after all other preprocessor flags have been specified.
+ *     The main difference with CPPSTDIN is that this program will never be a
+ *     pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
+ *     available directly to the user. Note that it may well be different from
+ *     the preprocessor used to compile the C program.
+ */
+#define CPPSTDIN "cppstdin"
+#define CPPMINUS ""
+#define CPPRUN "/usr/bin/cpp"
+
 /* HAS_ACCESS:
  *     This manifest constant lets the C program know that the access()
  *     system call is available to check for accessibility using real UID/GID.
  */
 #define HAS_ACCESS             /**/
 
+/* HAS_CSH:
+ *     This symbol, if defined, indicates that the C-shell exists.
+ */
 /* CSH:
  *     This symbol, if defined, contains the full pathname of csh.
  */
  */
 #define HAS_LONG_DOUBLE                /**/
 #ifdef HAS_LONG_DOUBLE
-#define LONG_DOUBLESIZE 16             /**/
+#define LONG_DOUBLESIZE 8              /**/
 #endif
 
 /* HAS_LONG_LONG:
  *     This symbol is defined if this system has a stat structure declaring
  *     st_blksize and st_blocks.
  */
-#define USE_STAT_BLOCKS        /* backward compatibility */
+#define USE_STAT_BLOCKS        /**/
 
 /* HAS_STRERROR:
  *     This symbol, if defined, indicates that the strerror routine is
  */
 /*#define HAS_UNION_SEMUN      / **/
 #define USE_SEMCTL_SEMUN       /**/
-/*#define USE_SEMCTL_SEMID_DS  / **/
+#define USE_SEMCTL_SEMID_DS    /**/
 
 /* Signal_t:
  *     This symbol's value is either "void" or "int", corresponding to the
  *     contains pw_passwd.
  */
 #define I_PWD          /**/
-/*#define PWQUOTA      / **/
-#define PWAGE  /**/
+#define PWQUOTA        /**/
+/*#define PWAGE        / **/
 /*#define PWCHANGE     / **/
 /*#define PWCLASS      / **/
 /*#define PWEXPIRE     / **/
 /* MYMALLOC:
  *     This symbol, if defined, indicates that we're using our own malloc.
  */
-#define MYMALLOC                       /**/
+/*#define MYMALLOC                     / **/
 
 /* SIG_NAME:
  *     This symbol contains a list of signal names in order of
  *     The last element is 0, corresponding to the 0 at the end of
  *     the sig_name list.
  */
-#define SIG_NAME "ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "WAITING", "LWP", "FREEZE", "THAW", "CANCEL", "RTMIN", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "RTMAX", "IOT", "CLD", "POLL", 0         /**/
-#define SIG_NUM  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 6, 18, 22, 0                        /**/
+#define SIG_NAME "ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "IOINT", "STOP", "TSTP", "CONT", "CHLD", "TTIN", "TTOU", "AIO", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "INFO", "USR1", "USR2", "RESV", "RTMIN", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "MAX", "IOT", "LOST", "URG", "CLD", "IO", "POLL", "PTY", "PWR", "RTMAX", 0         /**/
+#define SIG_NUM  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0         /**/
 
 /* VOIDFLAGS:
  *     This symbol indicates how much support of the void type is given by this
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "/l1/packages/gsperl/lib/5.00552/sun4-solaris-thread"          /**/
-#define ARCHLIB_EXP "/l1/packages/gsperl/lib/5.00552/sun4-solaris-thread"              /**/
+#define ARCHLIB "/opt/perl/lib/5.00553/alpha-dec_osf-thread"           /**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.00553/alpha-dec_osf-thread"               /**/
 
 /* DLSYM_NEEDS_UNDERSCORE:
  *     This symbol, if defined, indicates that we need to prepend an
  *     available to seekdir files larger than 2 gigabytes.
  */
 /* HAS_STAT64:
- *     This symbol, if defined, indicates that the fstat64 routine is
+ *     This symbol, if defined, indicates that the stat64 routine is
  *     available to stat files larger than 2 gigabytes.
  */
 /* HAS_TELLDIR64:
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/l1/packages/gsperl/lib/5.00552"              /**/
-#define PRIVLIB_EXP "/l1/packages/gsperl/lib/5.00552"          /**/
+#define PRIVLIB "/opt/perl/lib/5.00553"                /**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.00553"            /**/
 
 /* SELECT_MIN_BITS:
  *     This symbol holds the minimum number of bits operated by select.
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/l1/packages/gsperl/lib/site_perl/5.00552/sun4-solaris-thread"               /**/
-#define SITEARCH_EXP "/l1/packages/gsperl/lib/site_perl/5.00552/sun4-solaris-thread"           /**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.00553/alpha-dec_osf-thread"                /**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.00553/alpha-dec_osf-thread"            /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
  *     This symbol contains the ~name expanded version of SITELIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITELIB "/l1/packages/gsperl/lib/site_perl/5.00552"            /**/
-#define SITELIB_EXP "/l1/packages/gsperl/lib/site_perl/5.00552"                /**/
+#define SITELIB "/opt/perl/lib/site_perl/5.00553"              /**/
+#define SITELIB_EXP "/opt/perl/lib/site_perl/5.00553"          /**/
 
 /* STARTPERL:
  *     This variable contains the string to put in front of a perl
  *     script to make sure (one hopes) that it runs with perl and not
  *     some shell.
  */
-#define STARTPERL "#!/l1/packages/gsperl/bin/perl"             /**/
+#define STARTPERL "#!/opt/perl/bin/perl"               /**/
 
 /* HAS_FGETPOS64:
  *     This symbol, if defined, indicates that the fgetpos64 routine is
 /*#define   HAS_TMPFILE64      / **/
 
 /* USE_64_BITS:
- *     This symbol, if defined, indicates that 64-bit APIs should
- *     be used when available.  If not defined, the native default APIs
+ *     This symbol, if defined, indicates that 64-bit interfaces should
+ *     be used when available.  If not defined, the native default interfaces
  *     will be used (be they 32 or 64 bits).
  */
-/*#define      USE_64_BITS             / **/
+#define        USE_64_BITS             /**/
 
 /* USE_PERLIO:
  *     This symbol, if defined, indicates that the PerlIO abstraction should
  */
 /*#define      USE_PERLIO              / **/
 
+/* HAS_DRAND48_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the drand48() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern double drand48 _((void));
+ */
+#define        HAS_DRAND48_PROTO       /**/
+
 /* HAS_GETHOST_PROTOS:
  *     This symbol, if defined, indicates that <netdb.h> includes
  *     prototypes for gethostent(), gethostbyname(), and
 #define Netdb_host_t           const char * /**/
 #define Netdb_hlen_t           int /**/
 #define Netdb_name_t           const char * /**/
-#define Netdb_net_t            long /**/
+#define Netdb_net_t            int /**/
 
 /* Select_fd_set_t:
  *     This symbol holds the type used for the 2nd, 3rd, and 4th
  *     where library files may be held under a private library, for
  *     instance.
  */
-#define ARCHNAME "sun4-solaris-thread"         /**/
+#define ARCHNAME "alpha-dec_osf-thread"                /**/
+
+/* PTHREAD_CREATE_JOINABLE:
+ *     This symbol, if defined, indicates how to create pthread
+ *     in joinable (aka undetached) state.  Not defined here if
+ *     pthread.h already has defined PTHREAD_CREATE_JOINABLE.
+ *     If defined, possible values are PTHREAD_CREATE_UNDETACHED
+ *     and __UNDETACHED.
+ */
+/*#define PTHREAD_CREATE_JOINABLE 0 / **/
 
 /* HAS_PTHREAD_YIELD:
  *     This symbol, if defined, indicates that the pthread_yield 
  *     routine is available to yield the execution of the current
- *     thread.
+ *     thread.  sched_yield is preferable to pthread_yield.
+ */
+/* SCHED_YIELD:
+ *     This symbol defines the way to yield the execution of
+ *     the current thread.  Known ways are sched_yield,
+ *     pthread_yield, and pthread_yield with NULL.
  */
 /* HAS_SCHED_YIELD:
  *     This symbol, if defined, indicates that the sched_yield
  *     routine is available to yield the execution of the current
- *     thread.
+ *     thread.  sched_yield is preferable to pthread_yield.
  */
 /*#define HAS_PTHREAD_YIELD    / **/
+#define SCHED_YIELD    sched_yield()   /**/
 #define HAS_SCHED_YIELD        /**/
 
-/* PTHREADS_CREATED_JOINABLE:
- *     This symbol, if defined, indicates that pthreads are created
- *     in the joinable (aka undetached) state.
+/* I_MACH_CTHREADS:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <mach/cthreads.h>.
+ */
+/*#define   I_MACH_CTHREADS    / **/
+
+/* MULTIPLICITY:
+ *     This symbol, if defined, indicates that Perl should
+ *     be built to use multiplicity.
  */
-#define PTHREADS_CREATED_JOINABLE /**/
+/*#define      MULTIPLICITY            / **/
 
 /* USE_THREADS:
  *     This symbol, if defined, indicates that Perl should
  *     It can be int, long, off_t, etc... It may be necessary to include
  *     <sys/types.h> to get any typedef'ed information.
  */
+/* LSEEKSIZE:
+ *     This symbol holds the number of bytes used by the Off_t.
+ */
 #define Off_t off_t            /* <offset> type */
+#define LSEEKSIZE 8            /* <offset> size */
 
 /* Mode_t:
  *     This symbol holds the type used to declare file modes 
diff --git a/README.vmesa b/README.vmesa
new file mode 100644 (file)
index 0000000..a6bb96b
--- /dev/null
@@ -0,0 +1,76 @@
+README.vmesa
+
+This is a fully ported perl for VM/ESA 2.3.0.  It may work on
+other versions, but that's the one we've tested it on.
+
+If you've downloaded the binary distribution, it needs to be
+installed below /usr/local.  Source code distributions have an
+automated `make install` step that means you do not need to extract
+the source code below /usr/local (though that is where it will be
+installed by default).  You may need to worry about the networking
+configuration files discussed in the last bullet below.
+
+To extract an ASCII tar archive on VM/ESA, try this:
+
+   pax -o to=IBM-1047,from=ISO8859-1 -r < latest.tar
+
+GNU make for VM/ESA, which may be required for the build of perl,
+is available from:
+
+  http://pucc.princeton.edu/~neale/vmoe.html
+
+Once you've unpacked the distribution, run Configure (see INSTALL for
+full discussion of the Configure options), and then run make, then
+"make test" then "make install" (this last step may require UID=0
+privileges)
+
+There is a "hints" file for vmesa that specifies the correct values
+for most things.  Some things to watch out for are
+
+       - this port does support dynamic loading but it's not had much testing
+
+       - Don't turn on the compiler optimization flag "-O".  There's
+         a bug in the compiler (APAR PQ18812) that generates some bad code
+         the optimizer is on.
+
+       - As VM/ESA doesn't fully support the fork() API programs relying on
+         this call will not work. I've replaced fork()/exec() with spawn()
+         and the standalone exec() with spawn(). This has a side effect when
+         opening unnamed pipes in a shell script: there is no child process
+         generated under.
+
+       - At the moment the hints file for VM/ESA basically bypasses all of the
+         automatic configuration process. This is because Configure relies on:
+         1. The header files living in the Byte File System (you could put the
+            there if you want;
+         2. The C preprocessor including the #include statements in the
+            preprocessor output (.i) file.
+       
+When using perl on VM/ESA please keep in mind that the EBCDIC and ASCII
+character sets are different.  Perl builtin functions that may behave
+differently under EBCDIC are mentioned in the perlport.pod document.
+
+OpenEdition (UNIX System Services) does not (yet) support the #! means
+of script invokation.
+See:
+
+    head `whence perldoc`
+
+for an example of how to use the "eval exec" trick to ask the shell to
+have perl run your scripts for you.
+
+If you are interested in the VM and OS/390 ports of perl then see the
+perl-mvs mailing list: The Perl Institute (http://www.perl.org/)
+maintains a mailing list of interest to all folks building and/or
+using perl on EBCDIC platforms.  To subscibe, send a message of:
+
+    subscribe perl-mvs
+
+to majordomo@perl.org.
+
+Regression tests: as the 5.005 kit was was being assembled
+the following "failures" were known to appear on some machines
+during `make test` (mostly due to ASCII vs. EBCDIC conflicts),
+your results may differ:
+
+[the list of failures being compiled]
index bfdb62a..f84775a 100644 (file)
@@ -242,12 +242,26 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_getgrps HAS_GETGROUPS              /**/
 
+/* HAS_GETHOSTNAME:
+ *     This symbol, if defined, indicates that the C program may use the
+ *     gethostname() routine to derive the host name.  See also HAS_UNAME
+ *     and PHOSTNAME.
+ */
 /* HAS_UNAME:
  *     This symbol, if defined, indicates that the C program may use the
  *     uname() routine to derive the host name.  See also HAS_GETHOSTNAME
  *     and PHOSTNAME.
  */
+/* PHOSTNAME:
+ *     This symbol, if defined, indicates that the C program may use the
+ *     contents of PHOSTNAME as a command to feed to the popen() routine
+ *     to derive the host name.  See also HAS_GETHOSTNAME and HAS_UNAME.
+ *     Note that the command uses a fully qualified path, so that it is safe
+ *     even if used by a process with super-user privileges.
+ */
+#$d_gethname HAS_GETHOSTNAME   /**/
 #$d_uname HAS_UNAME            /**/
+#$d_phostname PHOSTNAME "$aphostname"  /* How to get the host name */
 
 /* HAS_GETLOGIN:
  *     This symbol, if defined, indicates that the getlogin routine is
@@ -1106,6 +1120,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_void_closedir VOID_CLOSEDIR                /**/
 
+/* HAS_FD_SET:
+ *     This symbol, when defined, indicates presence of the fd_set typedef
+ *     in <sys/types.h>
+ */
+#$d_fd_set HAS_FD_SET  /**/
+
 /* Gconvert:
  *     This preprocessor macro is defined to convert a floating point
  *     number to a string without a trailing decimal point.  This
@@ -1176,6 +1196,13 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_sigaction HAS_SIGACTION    /**/
 
+/* HAS_SIGSETJMP:
+ *     This variable indicates to the C program that the sigsetjmp()
+ *     routine is available to save the calling process's registers
+ *     and stack environment for later use by siglongjmp(), and
+ *     to optionally save the process's signal mask.  See
+ *     Sigjmp_buf, Sigsetjmp, and Siglongjmp.
+ */
 /* Sigjmp_buf:
  *     This is the buffer type to be used with Sigsetjmp and Siglongjmp.
  */
@@ -1426,8 +1453,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     output.  This symbol will have the value "-" if CPPSTDIN needs a minus
  *     to specify standard input, otherwise the value is "".
  */
+/* CPPRUN:
+ *     This symbol contains the string which will invoke a C preprocessor on
+ *     the standard input and produce to standard output. It needs to end
+ *     with CPPLAST, after all other preprocessor flags have been specified.
+ *     The main difference with CPPSTDIN is that this program will never be a
+ *     pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
+ *     available directly to the user. Note that it may well be different from
+ *     the preprocessor used to compile the C program.
+ */
 #define CPPSTDIN "$cppstdin"
 #define CPPMINUS "$cppminus"
+#define CPPRUN "$cpprun"
 
 /* HAS_ACCESS:
  *     This manifest constant lets the C program know that the access()
@@ -1436,6 +1473,9 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_access HAS_ACCESS          /**/
 
+/* HAS_CSH:
+ *     This symbol, if defined, indicates that the C-shell exists.
+ */
 /* CSH:
  *     This symbol, if defined, contains the full pathname of csh.
  */
@@ -2267,6 +2307,15 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define ARCHNAME "$archname"           /**/
 
+/* PTHREAD_CREATE_JOINABLE:
+ *     This symbol, if defined, indicates how to create pthread
+ *     in joinable (aka undetached) state.  Not defined here if
+ *     pthread.h already has defined PTHREAD_CREATE_JOINABLE.
+ *     If defined, possible values are PTHREAD_CREATE_UNDETACHED
+ *     and __UNDETACHED.
+ */
+#$d_pthread_create_joinable PTHREAD_CREATE_JOINABLE $pthread_create_joinable /**/
+
 /* HAS_PTHREAD_YIELD:
  *     This symbol, if defined, indicates that the pthread_yield 
  *     routine is available to yield the execution of the current
index 208daf2..fb9aba9 100644 (file)
@@ -229,7 +229,7 @@ newthread (SV *startsv, AV *initargs, char *classname)
     static pthread_attr_t attr;
     static int attr_inited = 0;
     sigset_t fullmask, oldmask;
-    static int attr_joinable = ATTR_JOINABLE;
+    static int attr_joinable = PTHREAD_CREATE_JOINABLE;
 #endif
 
     savethread = thr;
index c139d46..fa0d7fc 100644 (file)
@@ -144,6 +144,16 @@ fi
 # be #included before any other includes (in perl.h)
 if [ "$xxOsRevMajor" -eq 10 -a "X$usethreads" = "X$define" ]; then
 
+    if [ ! -f /usr/include/pthread.h -o ! -f /usr/lib/libcma.sl ]; then
+     cat <<EOM >&4
+In HP-UX 10.X for threads you need both the files
+/usr/include/pthread.h and /usr/lib/libcma.sl.
+
+Either you must install the CMA package or you must upgrade to HP-UX 11.
+EOM
+       exit 1
+    fi
+
     # HP-UX 10.X uses the old pthreads API
     case "$d_oldpthreads" in
     '') d_oldpthreads="$define" ;;
index 29d9bf0..54fa5e7 100644 (file)
@@ -309,7 +309,7 @@ shmattype='void *'
 shrpenv=''
 signal_t='void'
 sig_name_init='"ZERO","HUP","INT","ABRT","ILL","POLL","URG","STOP","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","USR1","USR2","NUM18","CONT","CHLD","TTIN","TTOU","IO","QUIT","TSTP","TRAP","NUM27","WINCH","XCPU","XFSZ","VTALRM","PROF","NUM33","NUM34","NUM35","NUM36","NUM3","NUM38","NUM39","NUM40","NUM41","NUM42","NUM43","NUM44","NUM45","NUM46","NUM47","NUM48","NUM49","CLD"'
-sig_num='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,20 '
+sig_num_init='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,20 '
 sizetype='size_t'
 so='.a'
 ssizetype='ssize_t'
index e711c14..5b69039 100644 (file)
@@ -14,7 +14,7 @@ use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);
 
 my ( $i, $ip2, %logn );
 
-$VERSION = sprintf("%s", q$Id: Complex.pm,v 1.25 1998/02/05 16:07:37 jhi Exp $ =~ /(\d+\.\d+)/);
+$VERSION = sprintf("%s", q$Id: Complex.pm,v 1.26 1998/11/01 00:00:00 dsl Exp $ =~ /(\d+\.\d+)/);
 
 @ISA = qw(Exporter);
 
@@ -401,38 +401,21 @@ sub divide {
 }
 
 #
-# _zerotozero
-#
-# Die on zero raised to the zeroth.
-#
-sub _zerotozero {
-    my $mess = "The zero raised to the zeroth power is not defined.\n";
-
-    my @up = caller(1);
-
-    $mess .= "Died at $up[1] line $up[2].\n";
-
-    die $mess;
-}
-
-#
 # (power)
 #
 # Computes z1**z2 = exp(z2 * log z1)).
 #
 sub power {
        my ($z1, $z2, $inverted) = @_;
-       my $z1z = $z1 == 0;
-       my $z2z = $z2 == 0;
-       _zerotozero if ($z1z and $z2z);
        if ($inverted) {
-           return 0 if ($z2z);
-           return 1 if ($z1z or $z2 == 1);
+           return 1 if $z1 == 0 || $z2 == 1;
+           return 0 if $z2 == 0 && Re($z1) > 0;
        } else {
-           return 0 if ($z1z);
-           return 1 if ($z2z or $z1 == 1);
+           return 1 if $z2 == 0 || $z1 == 1;
+           return 0 if $z1 == 0 && Re($z2) > 0;
        }
-       my $w = $inverted ? CORE::exp($z1 * CORE::log($z2)) : CORE::exp($z2 * CORE::log($z1));
+       my $w = $inverted ? CORE::exp($z1 * CORE::log($z2))
+                         : CORE::exp($z2 * CORE::log($z1));
        # If both arguments cartesian, return cartesian, else polar.
        return $z1->{c_dirty} == 0 &&
               (not ref $z2 or $z2->{c_dirty} == 0) ?
@@ -443,7 +426,7 @@ sub power {
 # (spaceship)
 #
 # Computes z1 <=> z2.
-# Sorts on the real part first, then on the imaginary part. Thus 2-4i > 3+8i.
+# Sorts on the real part first, then on the imaginary part. Thus 2-4i < 3+8i.
 #
 sub spaceship {
        my ($z1, $z2, $inverted) = @_;
@@ -1273,7 +1256,7 @@ sub gcd {
     my ($a, $b) = @_;
 
     my $id = "$a $b";
-    
+
     unless (exists $gcd{$id}) {
        $gcd{$id} = _gcd($a, $b);
        $gcd{"$b $a"} = $gcd{$id};
@@ -1702,7 +1685,7 @@ Here are some examples:
 The division (/) and the following functions
 
        log     ln      log10   logn
-       tan     sec     csc     cot
+       tan     sec     csc     cot
        atan    asec    acsc    acot
        tanh    sech    csch    coth
        atanh   asech   acsch   acoth
index 13f20ff..5d795e4 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -570,6 +570,13 @@ static char bucket_of[] =
 #    define BIG_SIZE (1<<16)           /* 64K */
 #  endif 
 
+#ifdef I_MACH_CTHREADS
+#undef MUTEX_LOCK
+#define MUTEX_LOCK(m)  STMT_START { if (*m) mutex_lock(*m); } STMT_END
+#undef MUTEX_UNLOCK
+#define MUTEX_UNLOCK(m)        STMT_START { if (*m) mutex_unlock(*m); } STMT_END
+#endif
+
 static char *emergency_buffer;
 static MEM_SIZE emergency_buffer_size;
 static Malloc_t emergency_sbrk(MEM_SIZE size);
@@ -670,6 +677,7 @@ static  u_int start_slack;
 static u_int goodsbrk;
 
 #ifdef DEBUGGING
+#undef ASSERT
 #define        ASSERT(p,diag)   if (!(p)) botch(diag,STRINGIFY(p));  else
 static void
 botch(char *diag, char *s)
diff --git a/perl.h b/perl.h
index 9860c9b..ba898c4 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1371,6 +1371,7 @@ typedef I32 (*filter_t) _((int, SV *, int));
 #        include "os2thread.h"
 #      else
 #        ifdef I_MACH_CTHREADS
+#          include <mach/cthreads.h>
 typedef cthread_t      perl_os_thread;
 typedef mutex_t                perl_mutex;
 typedef condition_t    perl_cond;
@@ -1815,8 +1816,22 @@ typedef Sighandler_t Sigsave_t;
 #endif
 
 #ifdef MYMALLOC
-#  define MALLOC_INIT MUTEX_INIT(&PL_malloc_mutex)
-#  define MALLOC_TERM MUTEX_DESTROY(&PL_malloc_mutex)
+#  ifdef I_MACH_CTHREADS
+#    define MALLOC_INIT                                        \
+       STMT_START {                                    \
+               PL_malloc_mutex = NULL;                 \
+               MUTEX_INIT(&PL_malloc_mutex);           \
+       } STMT_END
+#    define MALLOC_TERM                                        \
+       STMT_START {                                    \
+               perl_mutex tmp = PL_malloc_mutex;       \
+               PL_malloc_mutex = NULL;                 \
+               MUTEX_DESTROY(&tmp);                    \
+       } STMT_END
+#  else
+#    define MALLOC_INIT MUTEX_INIT(&PL_malloc_mutex)
+#    define MALLOC_TERM MUTEX_DESTROY(&PL_malloc_mutex)
+#  endif
 #else
 #  define MALLOC_INIT
 #  define MALLOC_TERM
@@ -2505,7 +2520,8 @@ enum {
   to_sv_amg,   to_av_amg,
   to_hv_amg,   to_gv_amg,
   to_cv_amg,   iter_amg,    
-  max_amg_code,
+  max_amg_code
+  /* Do not leave a trailing comma here.  C9X allows it, C89 doesn't. */
 };
 
 #define NofAMmeth max_amg_code
index 5a9543f..766b060 100644 (file)
@@ -135,8 +135,10 @@ C<unlink>, C<utime>
 
 =item Keywords related to the control flow of your perl program
 
-C<caller>, C<continue>, C<die>, C<do>, C<dump>, C<eval>, C<exit>,
-C<goto>, C<last>, C<next>, C<redo>, C<return>, C<sub>, C<wantarray>
+C<caller>, C<continue>, C<die>, C<do>, C<dump>, C<else>, C<elsif>,
+C<eval>, C<exit>, C<for>, C<foreach>, C<goto>, C<if>, C<last>,
+C<next>, C<redo>, C<return>, C<sub>, C<unless>, C<wantarray>,
+C<while>, C<until>
 
 =item Keywords related to scoping
 
@@ -671,14 +673,14 @@ L<perlipc/"Sockets: Client/Server Communication">.
 =item continue BLOCK
 
 Actually a flow control statement rather than a function.  If there is a
-C<continue> BLOCK attached to a BLOCK (typically in a C<while> or
-C<foreach>), it is always executed just before the conditional is about to
-be evaluated again, just like the third part of a C<for> loop in C.  Thus
+C<continue> BLOCK attached to a BLOCK (typically in a L<(while> or
+L</foreach>), it is always executed just before the conditional is about to
+be evaluated again, just like the third part of a L</for> loop in C.  Thus
 it can be used to increment a loop variable, even when the loop has been
 continued via the C<next> statement (which is similar to the C C<continue>
 statement).
 
-C<last>, C<next>, or C<redo> may appear within a C<continue>
+L</last>, L</next>, or L</redo> may appear within a C<continue>
 block. C<last> and C<redo> will behave as if they had been executed within
 the main block. So will C<next>, but since it will execute a C<continue>
 block, it may be more entertaining.
@@ -697,6 +699,8 @@ Omitting the C<continue> section is semantically equivalent to using an
 empty one, logically enough. In that case, C<next> goes directly back
 to check the condition at the top of the loop.
 
+See also L<perlsyn>.
+
 =item cos EXPR
 
 Returns the cosine of EXPR (expressed in radians).  If EXPR is omitted,
@@ -942,11 +946,12 @@ as the first line of the handler (see L<perlvar/$^S>).
 
 Not really a function.  Returns the value of the last command in the
 sequence of commands indicated by BLOCK.  When modified by a loop
-modifier, executes the BLOCK once before testing the loop condition.
-(On other statements the loop modifiers test the conditional first.)
+modifier such as L</while> or L</until>, executes the BLOCK once
+before testing the loop condition.  (On other statements the loop
+modifiers test the conditional first.)
 
 C<do BLOCK> does I<not> count as a loop, so the loop control statements
-C<next>, C<last> or C<redo> cannot be used to leave or restart the block.
+L</next>, L</last> or L</redo> cannot be used to leave or restart the block.
 
 =item do SUBROUTINE(LIST)
 
@@ -1061,6 +1066,12 @@ only in a different order:
 
 See also C<keys()> and C<values()>.
 
+=item else BLOCK
+
+=item elsif (EXPR) BLOCK
+
+See L</if>.
+
 =item eof FILEHANDLE
 
 =item eof ()
@@ -1432,6 +1443,38 @@ Here's a mailbox appender for BSD systems.
 
 See also L<DB_File> for other flock() examples.
 
+=item for (INITIAL; WHILE; EACH) BLOCK
+
+Do INITIAL, enter BLOCK while EXPR is true, at the end of each round
+do EACH. For example:
+
+       for ($i = 0, $j = 0; $i < 10; $i++) {
+               if ($i % 3 == 0) { $j++ }
+               print "i = $i, j = $j\n";
+       }
+
+See L<perlsyn> for more details.  See also L</foreach>, a twin of
+C<for>, L</while> and L</until>, close cousins of L<for>, and
+L</last>, L</next>, and L</redo> for additional control flow.
+
+=item foreach LOOPVAR (LIST) BLOCK
+
+Enter BLOCK as LOOPVAR set in turn to each element of LIST.
+For example:
+
+       foreach $rolling (@stones) { print "rolling $stone\n" }
+
+       foreach my $file (@files)  { print "file $file\n" }
+
+The LOOPVAR is optional and defaults to C<$_>.  If the elements are
+modifiable (as opposed to constants or tied variables) you can modify them.
+
+       foreach (@words) { tr/abc/xyz/ }
+
+See L<perlsyn> for more details.  See also L</for>, a twin of
+C<foreach>, L</while> and L</until>, close cousins of L<for>, and
+L</last>, L</next>, and L</redo> for additional control flow.
+
 =item fork
 
 Does a fork(2) system call.  Returns the child pid to the parent process,
@@ -1838,6 +1881,21 @@ see L</oct>.)  If EXPR is omitted, uses C<$_>.
     print hex '0xAf'; # prints '175'
     print hex 'aF';   # same
 
+=item if (EXPR) BLOCK
+
+=item if (EXPR) BLOCK else BLOCK2
+
+=item if (EXPR) BLOCK elsif (EXPR2) BLOCK2
+
+Enter BLOCKs conditionally.  The first EXPR to return true
+causes the corresponding BLOCK to be entered, or, in the case
+of C<else>, the fall-through default BLOCK.
+
+Take notice: Perl wants BLOCKS, expressions (like e.g. in C, C++, or
+Pascal) won't do.
+
+See L<perlsyn> for more details.  See also C<unless>.
+
 =item import
 
 There is no builtin C<import()> function.  It is just an ordinary
@@ -1999,8 +2057,10 @@ C<continue> block, if any, is not executed:
 C<last> cannot be used to exit a block which returns a value such as
 C<eval {}>, C<sub {}> or C<do {}>.
 
-See also L</continue> for an illustration of how C<last>, C<next>, and
-C<redo> work.
+See also L</continue> for an illustration of how C<last>, L</next>, and
+L</redo> work.
+
+See also L<perlsyn>.
 
 =item lc EXPR
 
@@ -2210,8 +2270,10 @@ refers to the innermost enclosing loop.
 C<next> cannot be used to exit a block which returns a value such as
 C<eval {}>, C<sub {}> or C<do {}>.
 
-See also L</continue> for an illustration of how C<last>, C<next>, and
-C<redo> work.
+See also L</continue> for an illustration of how L</last>, C<next>, and
+L</redo> work.
+
+See also L<perlsyn>.
 
 =item no Module LIST
 
@@ -2502,6 +2564,12 @@ follows:
          (These 'shorts' and 'longs' are _exactly_ 16 bits and
           _exactly_ 32 bits, respectively.)
 
+    q  A signed quad (64-bit) value.
+    Q  An unsigned quad value.
+         (Available only if your system supports 64-bit integer values
+          _and_ if Perl has been compiled to support those.
+           Causes a fatal error otherwise.)
+
     f  A single-precision float in the native format.
     d  A double-precision float in the native format.
 
@@ -2825,7 +2893,7 @@ See L<perlipc/"UDP: Message Passing"> for examples.
 =item redo
 
 The C<redo> command restarts the loop block without evaluating the
-conditional again.  The C<continue> block, if any, is not executed.  If
+conditional again.  The L</continue> block, if any, is not executed.  If
 the LABEL is omitted, the command refers to the innermost enclosing
 loop.  This command is normally used by programs that want to lie to
 themselves about what was just input:
@@ -2850,9 +2918,11 @@ themselves about what was just input:
 C<redo> cannot be used to retry a block which returns a value such as
 C<eval {}>, C<sub {}> or C<do {}>.
 
-See also L</continue> for an illustration of how C<last>, C<next>, and
+See also L</continue> for an illustration of how L</last>, L</next>, and
 C<redo> work.
 
+See also L<perlsyn>.
+
 =item ref EXPR
 
 =item ref
@@ -3921,8 +3991,8 @@ system-dependent; they are available via the standard module C<Fcntl>.
 For historical reasons, some values work on almost every system
 supported by perl: zero means read-only, one means write-only, and two
 means read/write.  We know that these values do I<not> work under
-OS/390 Unix and on the Macintosh; you probably don't want to use them
-in new code.
+OS/390 & VM/ESA Unix and on the Macintosh; you probably don't want to
+use them in new code.
 
 If the file named by FILENAME does not exist and the C<open()> call creates
 it (typically because MODE includes the C<O_CREAT> flag), then the value of
@@ -4205,8 +4275,6 @@ not trying to restrict access for yourself, returns C<undef>.
 Remember that a umask is a number, usually given in octal; it is I<not> a
 string of octal digits.  See also L</oct>, if all you have is a string.
 
-
-
 =item undef EXPR
 
 =item undef
@@ -4233,6 +4301,13 @@ parameter.  Examples:
 
 Note that this is a unary operator, not a list operator.
 
+=item unless (EXPR) BLOCK
+
+The negative counterpart of L</if>.  If the EXPR returns false the
+BLOCK is entered.
+
+See also L<perlsyn>.
+
 =item unlink LIST
 
 =item unlink
@@ -4282,10 +4357,6 @@ The following efficiently counts the number of set bits in a bit vector:
 
     $setbits = unpack("%32b*", $selectmask);
 
-=item untie VARIABLE
-
-Breaks the binding between a variable and a package.  (See C<tie()>.)
-
 =item unshift ARRAY,LIST
 
 Does the opposite of a C<shift()>.  Or the opposite of a C<push()>,
@@ -4298,6 +4369,21 @@ Note the LIST is prepended whole, not one element at a time, so the
 prepended elements stay in the same order.  Use C<reverse()> to do the
 reverse.
 
+=item until (EXPR) BLOCK
+
+=item do BLOCK until (EXPR)
+
+Enter BLOCK until EXPR returns false.  The first form may avoid entering
+the BLOCK, the second form enters the BLOCK at least once.
+
+See L</do>, L</while>, and L</for>.
+
+See also L<perlsyn>.
+
+=item untie VARIABLE
+
+Breaks the binding between a variable and a package.  (See C<tie()>.)
+
 =item use Module LIST
 
 =item use Module
@@ -4514,6 +4600,15 @@ warnings (even the so-called mandatory ones).  An example:
 See L<perlvar> for details on setting C<%SIG> entries, and for more
 examples.
 
+=item while (EXPR) BLOCK
+
+=item do BLOCK while (EXPR)
+
+Enter BLOCK while EXPR is true.  The first form may avoid entering the
+BLOCK, the second form enters the BLOCK at least once.
+
+See also L<perlsyn>, L</for>, L</until>, and L</continue>.
+
 =item write FILEHANDLE
 
 =item write EXPR
index 0a85c0e..ba93f18 100644 (file)
@@ -276,10 +276,10 @@ The two quickest fixes are either to render Perl silent about any
 locale inconsistencies or to run Perl under the default locale "C".
 
 Perl's moaning about locale problems can be silenced by setting the
-environment variable PERL_BADLANG to a non-zero value, for example
-"1".  This method really just sweeps the problem under the carpet: you
-tell Perl to shut up even when Perl sees that something is wrong.  Do
-not be surprised if later something locale-dependent misbehaves.
+environment variable PERL_BADLANG to a zero value, for example "0".
+This method really just sweeps the problem under the carpet: you tell
+Perl to shut up even when Perl sees that something is wrong.  Do not
+be surprised if later something locale-dependent misbehaves.
 
 Perl can be run under the "C" locale by setting the environment
 variable LC_ALL to "C".  This method is perhaps a bit more civilized
@@ -785,9 +785,10 @@ of a match involving C<\w> while C<use locale> is in effect.
 A string that can suppress Perl's warning about failed locale settings
 at startup.  Failure can occur if the locale support in the operating
 system is lacking (broken) in some way--or if you mistyped the name of
-a locale when you set up your environment.  If this environment variable
-is absent, or has a value that does not evaluate to integer zero--that
-is, "0" or ""--Perl will complain about locale setting failures.
+a locale when you set up your environment.  If this environment
+variable is absent, or has a value that does not evaluate to integer
+zero--that is, "0" or ""-- Perl will complain about locale setting
+failures.
 
 B<NOTE>: PERL_BADLANG only gives you a way to hide the warning message.
 The message tells about some problem in your system's locale support,
index fce35ac..918827c 100644 (file)
@@ -799,15 +799,16 @@ the message body to majordomo@list.stratagy.com.
 =head2 EBCDIC Platforms
 
 Recent versions of Perl have been ported to platforms such as OS/400 on
-AS/400 minicomputers as well as OS/390 for IBM Mainframes.  Such computers
-use EBCDIC character sets internally (usually Character Code Set ID 00819
-for OS/400 and IBM-1047 for OS/390).  Note that on the mainframe perl
-currently works under the "Unix system services for OS/390" (formerly
-known as OpenEdition).
+AS/400 minicomputers as well as OS/390 & VM/ESA for IBM Mainframes.  Such
+computers use EBCDIC character sets internally (usually Character Code
+Set ID 00819 for OS/400 and IBM-1047 for OS/390 & VM/ESA).  Note that on
+the mainframe perl currently works under the "Unix system services
+for OS/390" (formerly known as OpenEdition) and VM/ESA OpenEdition.
 
-As of R2.5 of USS for OS/390 that Unix sub-system did not support the
-C<#!> shebang trick for script invocation.  Hence, on OS/390 perl scripts
-can executed with a header similar to the following simple script:
+As of R2.5 of USS for OS/390 and Version 2.3 of VM/ESA these Unix
+sub-systems do not support the C<#!> shebang trick for script invocation.
+Hence, on OS/390 and VM/ESA perl scripts can be executed with a header
+similar to the following simple script:
 
     : # use perl
         eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
@@ -825,12 +826,13 @@ and C<|>, not to mention dealing with socket interfaces to ASCII computers
 
 Fortunately, most web servers for the mainframe will correctly translate
 the C<\n> in the following statement to its ASCII equivalent (note that
-C<\r> is the same under both Unix and OS/390):
+C<\r> is the same under both Unix and OS/390 & VM/ESA):
 
     print "Content-type: text/html\r\n\r\n";
 
 The value of C<$^O> on OS/390 is "os390".
 
+The value of C<$^O> on VM/ESA is "vmesa".
 Some simple tricks for determining if you are running on an EBCDIC
 platform could include any of the following (perhaps all):
 
@@ -1094,7 +1096,7 @@ Does nothing, but won't fail. (Win32)
 
 =item chroot
 
-Not implemented. (S<Mac OS>, Win32, VMS, Plan9, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, Plan9, S<RISC OS>, VOS, VM/ESA)
 
 =item crypt PLAINTEXT,SALT
 
@@ -1123,6 +1125,7 @@ Invokes VMS debugger. (VMS)
 
 Not implemented. (S<Mac OS>)
 
+Implemented via Spawn. (VM/ESA)
 =item fcntl FILEHANDLE,FUNCTION,SCALAR
 
 Not implemented. (Win32, VMS)
@@ -1135,7 +1138,7 @@ Available only on Windows NT (not on Windows 95). (Win32)
 
 =item fork
 
-Not implemented. (S<Mac OS>, Win32, AmigaOS, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, AmigaOS, S<RISC OS>, VOS, VM/ESA)
 
 =item getlogin
 
@@ -1151,7 +1154,7 @@ Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
 
 =item getpriority WHICH,WHO
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS, VM/ESA)
 
 =item getpwnam NAME
 
@@ -1191,11 +1194,11 @@ Not implemented. (S<Mac OS>)
 
 =item getpwent
 
-Not implemented. (S<Mac OS>, Win32)
+Not implemented. (S<Mac OS>, Win32, VM/ESA)
 
 =item getgrent
 
-Not implemented. (S<Mac OS>, Win32, VMS)
+Not implemented. (S<Mac OS>, Win32, VMS, VM/ESA)
 
 =item gethostent
 
@@ -1239,11 +1242,11 @@ Not implemented. (Plan9, Win32, S<RISC OS>)
 
 =item endpwent
 
-Not implemented. (S<Mac OS>, Win32)
+Not implemented. (S<Mac OS>, Win32, VM/ESA)
 
 =item endgrent
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
+Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VM/ESA)
 
 =item endhostent
 
@@ -1379,7 +1382,7 @@ Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
 
 =item socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS, VM/ESA)
 
 =item stat FILEHANDLE
 
@@ -1403,14 +1406,14 @@ Not implemented. (Win32, VMS, S<RISC OS>)
 
 =item syscall LIST
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS, VM/ESA)
 
 =item sysopen FILEHANDLE,FILENAME,MODE,PERMS
 
 The traditional "0", "1", and "2" MODEs are implemented with different
 numeric values on some systems.  The flags exported by C<Fcntl>
 (O_RDONLY, O_WRONLY, O_RDWR) should work everywhere though.  (S<Mac
-OS>, OS/390)
+OS>, OS/390, VM/ESA)
 
 =item system LIST
 
@@ -1519,8 +1522,10 @@ Tom Christiansen E<lt>tchrist@perl.comE<gt>,
 Nicholas Clark E<lt>Nicholas.Clark@liverpool.ac.ukE<gt>,
 Andy Dougherty E<lt>doughera@lafcol.lafayette.eduE<gt>,
 Dominic Dunlop E<lt>domo@vo.luE<gt>,
+Neale Ferguson E<lt>neale@mailbox.tabnsw.com.auE<gt>
 Paul Green E<lt>Paul_Green@stratus.comE<gt>,
 M.J.T. Guy E<lt>mjtg@cus.cam.ac.ukE<gt>,
+Jarkko Hietaniemi E<lt>jhi@iki.fi<gt>,
 Luther Huffman E<lt>lutherh@stratcom.comE<gt>,
 Nick Ing-Simmons E<lt>nick@ni-s.u-net.comE<gt>,
 Andreas J. KE<ouml>nig E<lt>koenig@kulturbox.deE<gt>,
@@ -1543,5 +1548,3 @@ This document is maintained by Chris Nandor.
 
 Version 1.35, last modified 09 September 1998.
 
-
-
index 96ecd58..8fa38f2 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -1467,8 +1467,10 @@ PP(pp_syswrite)
     djSP;
     int items = (SP - PL_stack_base) - TOPMARK;
     if (items == 2) {
+       SV *sv;
         EXTEND(SP, 1);
-        PUSHs(sv_2mortal(newSViv(sv_len(*SP))));
+       sv = sv_2mortal(newSViv(sv_len(*SP)));
+       PUSHs(sv);
         PUTBACK;
     }
     return pp_send(ARGS);
diff --git a/sv.c b/sv.c
index bd421b6..e10cfe2 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -694,7 +694,7 @@ sv_upgrade(register SV *sv, U32 mt)
        cur     = 0;
        len     = 0;
        nv      = SvNVX(sv);
-       iv      = (IV)nv;
+       iv      = I_V(nv);
        magic   = 0;
        stash   = 0;
        del_XNV(SvANY(sv));
index 2bb14f0..c073f50 100755 (executable)
@@ -14,7 +14,7 @@ BEGIN {
 
 use Math::Complex;
 
-$VERSION = sprintf("%s", q$Id: complex.t,v 1.8 1998/02/05 16:03:39 jhi Exp $ =~ /(\d+\.d+)/);
+my $VERSION = sprintf("%s", q$Id: complex.t,v 1.9 1998/11/01 00:00:00 dsl Exp $ =~ /(\d+\.d+)/);
 
 my ($args, $op, $target, $test, $test_set, $try, $val, $zvalue, @set, @val);
 
@@ -173,20 +173,6 @@ test_loz(
         'acoth(-1)',
        );
 
-# test the 0**0
-
-sub test_ztz {
-    $test++;
-
-    push(@script, <<'EOT');
-eval 'cplx(0)**cplx(0)';
-print 'not ' unless ($@ =~ /zero raised to the zeroth/);
-EOT
-    push(@script, qq(print "ok $test\\n";\n));
-}
-
-test_ztz;
-
 # test the bad roots
 
 sub test_broot {
@@ -387,6 +373,7 @@ __END__
 (1,0):(2,3):(1,0)
 (2,3):(0,0):(1,0)
 (2,3):(1,0):(2,3)
+(0,0):(0,0):(1,0)
 
 &Re
 (3,4):3
@@ -876,4 +863,3 @@ __END__
 ( 2,-3):(  0.14694666622553,  0.23182380450040)
 
 # eof
-
index b2e7663..6f7f8c4 100755 (executable)
@@ -2,11 +2,57 @@
 
 $ENV{PATH} = '/usr/xpg4/bin:/bin:/usr/bin:/usr/ucb';
 
-unless (($groups = `(id -Gn || groups) 2>/dev/null`) ne '') {
+# We have to find a command that prints all (effective
+# and real) group names (not ids).  The known commands are:
+# groups
+# id -Gn
+# id -a
+# Beware 1: some systems do just 'id -G' even when 'id -Gn' is used.
+# Beware 2: id -Gn or id -a format might be id(name) or name(id).
+# Beware 3: the groups= might be anywhere in the id output.
+#
+# That is, we might meet the following:
+#
+# foo bar zot                  # accept
+# 1 2 3                                # reject
+# groups=foo(1),bar(2),zot(3)  # parse
+# groups=1(foo),2(bar),3(zot)  # parse
+#
+# and the groups= might be after, before, or between uid=... and gid=...
+
+GROUPS: {
+    last GROUPS if ($groups = `groups 2>/dev/null`) ne '';
+    if ($groups = `id -Gn 2>/dev/null` ne '') {
+       last GROUPS unless $groups =~ /^(\d+)(\s+\d)*$/;
+    }
+    if ($groups = `id -a 2>/dev/null` ne '') {
+       # Grok format soon.
+       last GROUPS;
+    }
+    # Okay, not today.
     print "1..0\n";
     exit 0;
 }
 
+# Remember that group names can contain whitespace, '-', et cetera.
+# That is: do not \w, do not \S.
+if ($groups =~ /groups=((.+?\(.+?\))(,.+?\(.+?\))*)( [ug]id=|$)/) {
+    my $gr = $1;
+    my @g0 = $gr =~ /(.+?)\((.+?)\),?/g;
+    my @g1 = @g0[ map { $_ * 2     } 0..$#g0/2 ];
+    my @g2 = @g0[ map { $_ * 2 + 1 } 0..$#g0/2 ];
+    print "# g0 = @g0\n";
+    print "# g1 = @g1\n";
+    print "# g2 = @g2\n";
+    if (grep /\D/, @g1) {
+       $groups = join(" ", @g1);
+    } elsif (grep /\D/, @g2) {
+       $groups = join(" ", @g2);
+    } else {
+       # Let's fail.  We want to parse the output.  Really.
+    }
+}
+
 print "1..2\n";
 
 $pwgid = $( + 0;
index 845a314..2b6c38d 100755 (executable)
@@ -179,7 +179,7 @@ chmod 'non-existent'                # chmod
 utime 'non-existent'           # utime
 rename 'non-existent', 'non-existent1' # rename
 link 'non-existent', 'non-existent1' # link
-symlink 'non-existent', 'non-existent1' # symlink
+'???'                          # symlink
 readlink 'non-existent', 'non-existent1' # readlink
 '???'                          # mkdir
 '???'                          # rmdir
index 8e95b98..1312b30 100644 (file)
--- a/thread.h
+++ b/thread.h
@@ -128,16 +128,6 @@ struct perl_thread *getTHR _((void));
 #  endif
 #endif
 
-#if !defined(ATTR_JOINABLE) && defined(PTHREAD_CREATE_JOINABLE)
-#  define ATTR_JOINABLE PTHREAD_CREATE_JOINABLE
-#endif
-#if !defined(ATTR_JOINABLE) && defined(PTHREAD_CREATE_UNDETACHED)
-#  define ATTR_JOINABLE PTHREAD_CREATE_UNDETACHED
-#endif
-#if !defined(ATTR_JOINABLE) && defined(__UNDETACHED)
-#  define ATTR_JOINABLE __UNDETACHED
-#endif
-
 #ifndef MUTEX_INIT
 #define MUTEX_INIT(m)                                          \
     STMT_START {                                               \
index fad6dfc..533aa93 100644 (file)
@@ -1916,8 +1916,9 @@ $ psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""F
 $ psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",""SPARE18"",""SPARE19"",""CHLD"",""CONT"",""STOP"",""TSTP"","
 $ psnwc3="""TTIN"",""TTOU"",""DEBUG"",""SPARE27"",""SPARE28"",""SPARE29"",""SPARE30"",""SPARE31"",""SPARE32"",""RTMIN"",""RTMAX"",0"
 $perl_sig_name_with_commas = psnwc1 + psnwc2 + psnwc3
-$ perl_sig_num="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,64,0"
-$ perl_sig_num_with_commas=perl_sig_num
+$ perl_sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 64"","0"
+$ perl_sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,64,0"
+$ perl_sig_num_with_commas=perl_sig_num_init
 $ perl_uidtype="uid_t"
 $ perl_d_pathconf="define"
 $ perl_d_fpathconf="define"
@@ -1936,8 +1937,9 @@ $ perl_sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE A
 $ psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS"","
 $ psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",0"
 $ perl_sig_name_with_commas = psnwc1 + psnwc2
-$ perl_sig_num="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0"
-$ perl_sig_num_with_commas=perl_sig_num
+$ perl_sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17"",0"
+$ perl_sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0"
+$ perl_sig_num_with_commas=perl_sig_num_init
 $ perl_uidtype="unsigned int"
 $ perl_d_pathconf="undef"
 $ perl_d_fpathconf="undef"
index 90d2d49..7f4c1a2 100644 (file)
 /*#define HAS_PTHREAD_YIELD    /**/
 /*#define HAS_SCHED_YIELD      /**/
 
-/* PTHREADS_CREATED_JOINABLE:
- *     This symbol, if defined, indicates that pthreads are created
- *     in the joinable (aka undetached) state.
- */
-/*#define PTHREADS_CREATED_JOINABLE /**/
-
 /* USE_THREADS:
  *     This symbol, if defined, indicates that Perl should
  *     be built to use threads.