summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Dougherty <doughera@lafayette.edu>1998-03-09 10:23:33 -0500
committerMalcolm Beattie <mbeattie@sable.ox.ac.uk>1998-03-16 12:55:39 +0000
commite5c9fcd0420f2862565625a4bd5596204107f54f (patch)
tree6802f821b6b73f8fd7d5217e52348bd0ea711675
parent9e48b294a088693583142bb2058db509a62bb303 (diff)
downloadperl-e5c9fcd0420f2862565625a4bd5596204107f54f.tar.gz
[PATCH 5.004_62} Config_62-01 patch available.
Date: Mon, 9 Mar 1998 15:23:33 -0500 (EST) Subject: [PATCH 5.004_62] Tiny hint file updates Date: Mon, 9 Mar 1998 13:21:46 -0500 (EST) p4raw-id: //depot/perl@812
-rwxr-xr-xConfigure243
-rw-r--r--Porting/Glossary69
-rw-r--r--Porting/config.sh36
-rw-r--r--Porting/config_H107
-rw-r--r--config_h.SH95
-rw-r--r--ext/ODBM_File/ODBM_File.xs6
-rw-r--r--handy.h3
-rw-r--r--hints/aix.sh2
-rw-r--r--hints/dec_osf.sh2
-rw-r--r--hints/dos_djgpp.sh2
-rw-r--r--hints/freebsd.sh38
-rw-r--r--hints/irix_6.sh2
-rw-r--r--hints/irix_6_0.sh2
-rw-r--r--hints/irix_6_1.sh2
-rw-r--r--hints/os2.sh2
-rw-r--r--hints/solaris_2.sh2
-rw-r--r--patchlevel.h2
-rw-r--r--perl.c16
-rw-r--r--perl.h2
-rw-r--r--perllio.h1
-rw-r--r--pod/perldiag.pod20
-rw-r--r--pp_sys.c16
-rw-r--r--vms/config.vms14
23 files changed, 545 insertions, 139 deletions
diff --git a/Configure b/Configure
index 4695391a66..d527d96117 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Tue Mar 3 11:16:26 EST 1998 [metaconfig 3.0 PL70]
+# Generated on Mon Mar 9 14:02:25 EST 1998 [metaconfig 3.0 PL70]
cat >/tmp/c1$$ <<EOF
ARGGGHHHH!!!!!
@@ -260,8 +260,6 @@ baserev=''
bin=''
binexp=''
installbin=''
-bincompat3=''
-d_bincompat3=''
byteorder=''
cc=''
gccversion=''
@@ -308,6 +306,10 @@ d_dlsymun=''
d_dosuid=''
d_suidsafe=''
d_dup2=''
+d_endhent=''
+d_endnent=''
+d_endpent=''
+d_endsent=''
d_fchmod=''
d_fchown=''
d_fcntl=''
@@ -333,6 +335,8 @@ d_uname=''
d_getlogin=''
d_getnbyaddr=''
d_getnbyname=''
+d_getnent=''
+d_getpent=''
d_getpgid=''
d_getpgrp2=''
d_bsdgetpgrp=''
@@ -341,6 +345,7 @@ d_getppid=''
d_getprior=''
d_getpbyname=''
d_getpbynumber=''
+d_getsent=''
d_getsbyname=''
d_getsbyport=''
d_gnulibc=''
@@ -351,6 +356,8 @@ d_killpg=''
d_link=''
d_locconv=''
d_lockf=''
+d_longdbl=''
+longdblsize=''
d_lstat=''
d_mblen=''
d_mbstowcs=''
@@ -361,6 +368,7 @@ d_memmove=''
d_memset=''
d_mkdir=''
d_mkfifo=''
+d_mkstemp=''
d_mktime=''
d_msg=''
d_msgctl=''
@@ -399,6 +407,8 @@ d_setgrps=''
d_sethent=''
d_setlinebuf=''
d_setlocale=''
+d_setnent=''
+d_setpent=''
d_setpgid=''
d_setpgrp2=''
d_bsdsetpgrp=''
@@ -410,7 +420,9 @@ d_setresuid=''
d_setreuid=''
d_setrgid=''
d_setruid=''
+d_setsent=''
d_setsid=''
+d_setvbuf=''
d_sfio=''
usesfio=''
d_shm=''
@@ -2703,8 +2715,8 @@ baserev=5.0
echo " "
echo "Getting the current patchlevel..." >&4
if $test -r $rsrc/patchlevel.h;then
- patchlevel=`awk '/PATCHLEVEL/ {print $3}' $rsrc/patchlevel.h`
- subversion=`awk '/SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
+ patchlevel=`awk '/define[ ]+PATCHLEVEL/ {print $3}' $rsrc/patchlevel.h`
+ subversion=`awk '/define[ ]+SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
else
patchlevel=0
subversion=0
@@ -3025,39 +3037,6 @@ else
installbin="$binexp"
fi
-
-: Binary compatibility with 5.003 is not possible with 5.004_50 and later.
-if test $patchlevel -gt 4 -o $subversion -ge 50; then
- d_bincompat3=$undef
-else
- $cat <<EOM
-
-Perl 5.004 can be compiled for binary compatibility with 5.003.
-If you decide to do so, you will be able to continue using any
-extensions that were compiled for Perl 5.003. However, binary
-compatibility forces Perl to expose some of its internal symbols
-in the same way that 5.003 did. So you may have symbol conflicts
-if you embed a binary-compatible Perl in other programs.
-
-EOM
- case "$d_bincompat3" in
- "$undef") dflt=n ;;
- *) dflt=y ;;
- esac
- rp='Binary compatibility with Perl 5.003?'
- . ./myread
- case "$ans" in
- y*) val="$define" ;;
- *) val="$undef" ;;
- esac
- set d_bincompat3
- eval $setvar
- case "$d_bincompat3" in
- "$define") bincompat3=y ;;
- *) bincompat3=n ;;
- esac
-fi
-
: determine where manual pages are on this system
echo " "
case "$sysman" in
@@ -4685,23 +4664,23 @@ else
eval $xrun
else
echo " "
- echo "$nm didn't seem to work right. Trying ar instead..." >&4
+ echo "$nm didn't seem to work right. Trying $ar instead..." >&4
com=''
- if ar t $libc > libc.tmp; then
+ if $ar t $libc > libc.tmp; then
for thisname in $libnames; do
- ar t $thisname >>libc.tmp
+ $ar t $thisname >>libc.tmp
done
$sed -e "s/\\$_o\$//" < libc.tmp > libc.list
echo "Ok." >&4
else
- echo "ar didn't seem to work right." >&4
+ echo "$ar didn't seem to work right." >&4
echo "Maybe this is a Cray...trying bld instead..." >&4
if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list
then
for thisname in $libnames; do
bld t $libnames | \
$sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list
- ar t $thisname >>libc.tmp
+ $ar t $thisname >>libc.tmp
done
echo "Ok." >&4
else
@@ -6105,26 +6084,33 @@ $rm -f $$.tmp
: check for ability to cast large floats to 32-bit ints.
echo " "
echo 'Checking whether your C compiler can cast large floats to int32.' >&4
-if $test "$intsize" -eq 4; then
+if $test "$intsize" -ge 4; then
xxx=int
else
xxx=long
fi
$cat >try.c <<EOCP
+#include <stdio.h>
#include <sys/types.h>
#include <signal.h>
$signal_t blech() { exit(3); }
main()
{
$xxx i32;
- double f;
+ double f, g;
int result = 0;
signal(SIGFPE, blech);
- f = (double) 0x7fffffff;
- f = 10 * f;
- i32 = ($xxx) f;
+ /* Don't let compiler optimize the test away */
+ sscanf("2147483647", "%lf", &f); /* f = (double) 0x7fffffff; */
+ g = 10 * f;
+ i32 = ($xxx) g;
+ /* x86 processors will probably give 0x8000 0000, which is a
+ sign change. We don't want that. We want to mimic SPARC
+ behavior here, which is to preserve the sign and give
+ back 0x7fff ffff.
+ */
if (i32 != ($xxx) f)
result |= 1;
exit(result);
@@ -6154,6 +6140,7 @@ $rm -f try try.*
echo " "
echo 'Checking whether your C compiler can cast negative float to unsigned.' >&4
$cat >try.c <<EOCP
+#include <stdio.h>
#include <sys/types.h>
#include <signal.h>
$signal_t blech() { exit(7); }
@@ -6163,11 +6150,16 @@ unsigned int dummy_int(p) unsigned int p; { return p; }
unsigned short dummy_short(p) unsigned short p; { return p; }
main()
{
- double f = -123.;
+ double f;
unsigned long along;
unsigned int aint;
unsigned short ashort;
int result = 0;
+ /* Frustrate gcc-2.7.2's optimizer which failed this test with
+ a direct f = -123. assignment. gcc-2.8.0 reportedly
+ optimized the whole file away
+ */
+ sscanf("-123.", "%lf", &f); /* f = -123.; */
signal(SIGFPE, blech);
along = (unsigned long)f;
@@ -6179,7 +6171,7 @@ main()
result |= 1;
if (ashort != (unsigned short)-123)
result |= 1;
- f = (double)0x40000000;
+ sscanf("1073741824.", "%lf", &f); /* f = (double)0x40000000; */
f = f + f;
along = 0;
along = (unsigned long)f;
@@ -6198,7 +6190,7 @@ main()
if (result)
exit(result);
signal(SIGFPE, blech_in_list);
- f = 123.;
+ sscanf("123.", "%lf", &f); /* f = 123.; */
along = dummy_long((unsigned long)f);
aint = dummy_int((unsigned int)f);
ashort = dummy_short((unsigned short)f);
@@ -6337,18 +6329,6 @@ 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
@@ -6580,6 +6560,22 @@ eval $setvar
set dup2 d_dup2
eval $inlibc
+: see if endhostent exists
+set endhostent d_endhent
+eval $inlibc
+
+: see if endnetent exists
+set endnetent d_endnent
+eval $inlibc
+
+: see if endprotoent exists
+set endprotoent d_endpent
+eval $inlibc
+
+: see if endservent exists
+set endservent d_endsent
+eval $inlibc
+
: Locate the flags for 'open()'
echo " "
$cat >open3.c <<'EOCP'
@@ -6865,6 +6861,10 @@ eval $inlibc
set getnetbyname d_getnbyname
eval $inlibc
+: see if getnetent exists
+set getnetent d_getnent
+eval $inlibc
+
: see if getprotobyname exists
set getprotobyname d_getpbyname
@@ -6873,6 +6873,11 @@ eval $inlibc
: see if getprotobynumber exists
set getprotobynumber d_getpbynumber
eval $inlibc
+
+: see if getprotoent exists
+set getprotoent d_getpent
+eval $inlibc
+
: see if getpgid exists
set getpgid d_getpgid
eval $inlibc
@@ -6897,6 +6902,11 @@ eval $inlibc
: see if getservbyport exists
set getservbyport d_getsbyport
eval $inlibc
+
+: see if getservent exists
+set getservent d_getsent
+eval $inlibc
+
: see if gettimeofday or ftime exists
set gettimeofday d_gettimeod
eval $inlibc
@@ -7054,6 +7064,49 @@ eval $inlibc
set lockf d_lockf
eval $inlibc
+: check for long doubles
+echo " "
+echo $n "Checking to see if your system supports long doubles...$c" >&4
+echo 'long double foo() { long double x; x = 7.0; return x; }' > try.c
+if $cc $optimize $ccflags -c try.c; then
+ val="$define"
+ echo " Yup, it does." >&4
+else
+ val="$undef"
+ echo " Nope, it doesn't." >&4
+fi
+$rm try.*
+set d_longdbl
+eval $setvar
+
+: check for length of long double
+echo " "
+
+case "${d_longdbl}${longdblsize}" in
+$define)
+ $echo $n "Checking to see how big your long doubles are...$c" >&4
+ $cat >try.c <<'EOCP'
+#include <stdio.h>
+main()
+{
+ printf("%d\n", sizeof(long double));
+}
+EOCP
+ set try
+ if eval $compile; then
+ longdblsize=`./try`
+ else
+ dflt='8'
+ echo "(I can't seem to compile the test program. Guessing...)"
+ rp="What is the size of a long double (in bytes)?"
+ . ./myread
+ longdblsize="$ans"
+ fi
+ $echo " $longdblsize bytes."
+ ;;
+esac
+$rm -f try.c try
+
: see if lstat exists
set lstat d_lstat
eval $inlibc
@@ -7094,6 +7147,10 @@ eval $inlibc
set mkfifo d_mkfifo
eval $inlibc
+: see if mkstemp exists
+set mkstemp d_mkstemp
+eval $inlibc
+
: see if mktime exists
set mktime d_mktime
eval $inlibc
@@ -7269,8 +7326,8 @@ eval $setvar
$rm -f try try.*
: test whether pthreads are created in joinable -- aka undetached -- state
-if test "X$usethreads" != X; then
- echo >&4 "Checking whether pthreads are created joinable."
+if test "X$usethreads" = "X$define"; then
+ echo $n "Checking whether pthreads are created joinable. $c" >&4
$cat >try.c <<'EOCP'
#include <pthread.h>
#include <stdio.h>
@@ -7289,11 +7346,12 @@ EOCP
if eval $compile; then
yyy=`./try`
case "$yyy" in
- detached) echo "Nope, they aren't." ;;
- *) echo "Yup, they are." ;;
+ detached) echo "Nope, they aren't." >&4 ;;
+ *) echo "Yup, they are." >&4 ;;
esac
else
- echo "(I can't execute the test program--assuming they are.)"
+ echo " "
+ echo "(I can't execute the test program--assuming they are.)" >&4
yyy=joinable
fi
$rm -f try try.*
@@ -7684,6 +7742,14 @@ eval $inlibc
set setlocale d_setlocale
eval $inlibc
+: see if setnetent exists
+set setnetent d_setnent
+eval $inlibc
+
+: see if setprotoent exists
+set setprotoent d_setpent
+eval $inlibc
+
: see if setpgid exists
set setpgid d_setpgid
eval $inlibc
@@ -7716,10 +7782,18 @@ eval $inlibc
set setruid d_setruid
eval $inlibc
+: see if setservent exists
+set setservent d_setsent
+eval $inlibc
+
: see if setsid exists
set setsid d_setsid
eval $inlibc
+: see if setvbuf exists
+set setvbuf d_setvbuf
+eval $inlibc
+
: see if sfio.h is available
set sfio.h i_sfio
eval $inhdr
@@ -8860,7 +8934,7 @@ $rm -f try.* .out
echo " "
case "$doublesize" in
'')
- echo "Checking to see how big your double precision numbers are..." >&4
+ $echo $n "Checking to see how big your double precision numbers are...$c" >&4
$cat >try.c <<'EOCP'
#include <stdio.h>
main()
@@ -8871,6 +8945,7 @@ EOCP
set try
if eval $compile; then
doublesize=`./try`
+ $echo $doublesize >&4
else
dflt='8'
echo "(I can't seem to compile the test program. Guessing...)"
@@ -8891,6 +8966,18 @@ rp="What is the type for file position used by fsetpos()?"
. ./myread
fpostype="$ans"
+: 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
@@ -9175,7 +9262,7 @@ EOM
esac
;;
*) : no getnetbyaddr, so pick harmless default
- netdb_name_type='long'
+ netdb_net_type='long'
;;
esac
fi
@@ -10603,7 +10690,6 @@ awk='$awk'
baserev='$baserev'
bash='$bash'
bin='$bin'
-bincompat3='$bincompat3'
binexp='$binexp'
bison='$bison'
byacc='$byacc'
@@ -10643,7 +10729,6 @@ d_archlib='$d_archlib'
d_attribut='$d_attribut'
d_bcmp='$d_bcmp'
d_bcopy='$d_bcopy'
-d_bincompat3='$d_bincompat3'
d_bsd='$d_bsd'
d_bsdgetpgrp='$d_bsdgetpgrp'
d_bsdsetpgrp='$d_bsdsetpgrp'
@@ -10667,6 +10752,10 @@ d_dlopen='$d_dlopen'
d_dlsymun='$d_dlsymun'
d_dosuid='$d_dosuid'
d_dup2='$d_dup2'
+d_endhent='$d_endhent'
+d_endnent='$d_endnent'
+d_endpent='$d_endpent'
+d_endsent='$d_endsent'
d_eofnblk='$d_eofnblk'
d_eunice='$d_eunice'
d_fchmod='$d_fchmod'
@@ -10690,8 +10779,10 @@ d_gethname='$d_gethname'
d_getlogin='$d_getlogin'
d_getnbyaddr='$d_getnbyaddr'
d_getnbyname='$d_getnbyname'
+d_getnent='$d_getnent'
d_getpbyname='$d_getpbyname'
d_getpbynumber='$d_getpbynumber'
+d_getpent='$d_getpent'
d_getpgid='$d_getpgid'
d_getpgrp2='$d_getpgrp2'
d_getpgrp='$d_getpgrp'
@@ -10699,6 +10790,7 @@ d_getppid='$d_getppid'
d_getprior='$d_getprior'
d_getsbyname='$d_getsbyname'
d_getsbyport='$d_getsbyport'
+d_getsent='$d_getsent'
d_gettimeod='$d_gettimeod'
d_gnulibc='$d_gnulibc'
d_htonl='$d_htonl'
@@ -10709,6 +10801,7 @@ d_killpg='$d_killpg'
d_link='$d_link'
d_locconv='$d_locconv'
d_lockf='$d_lockf'
+d_longdbl='$d_longdbl'
d_lstat='$d_lstat'
d_mblen='$d_mblen'
d_mbstowcs='$d_mbstowcs'
@@ -10719,6 +10812,7 @@ d_memmove='$d_memmove'
d_memset='$d_memset'
d_mkdir='$d_mkdir'
d_mkfifo='$d_mkfifo'
+d_mkstemp='$d_mkstemp'
d_mktime='$d_mktime'
d_msg='$d_msg'
d_msgctl='$d_msgctl'
@@ -10765,6 +10859,8 @@ d_setgrps='$d_setgrps'
d_sethent='$d_sethent'
d_setlinebuf='$d_setlinebuf'
d_setlocale='$d_setlocale'
+d_setnent='$d_setnent'
+d_setpent='$d_setpent'
d_setpgid='$d_setpgid'
d_setpgrp2='$d_setpgrp2'
d_setpgrp='$d_setpgrp'
@@ -10775,7 +10871,9 @@ d_setresuid='$d_setresuid'
d_setreuid='$d_setreuid'
d_setrgid='$d_setrgid'
d_setruid='$d_setruid'
+d_setsent='$d_setsent'
d_setsid='$d_setsid'
+d_setvbuf='$d_setvbuf'
d_sfio='$d_sfio'
d_shm='$d_shm'
d_shmat='$d_shmat'
@@ -10949,6 +11047,7 @@ ln='$ln'
lns='$lns'
locincpth='$locincpth'
loclibpth='$loclibpth'
+longdblsize='$longdblsize'
longsize='$longsize'
lp='$lp'
lpr='$lpr'
diff --git a/Porting/Glossary b/Porting/Glossary
index fe7e630ee9..b0840a990d 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -62,10 +62,6 @@ bin (bin.U):
is most often a local directory such as /usr/local/bin. Programs using
this variable must be prepared to deal with ~name substitution.
-bincompat3 (bincompat3.U):
- This variable contains y if Perl 5.004 should be binary-compatible
- with Perl 5.003.
-
binexp (bin.U):
This is the same as the bin variable, but is filename expanded at
configuration time, for use in your makefiles.
@@ -196,12 +192,6 @@ d_bcopy (d_bcopy.U):
This variable conditionally defines the HAS_BCOPY symbol if
the bcopy() routine is available to copy strings.
-d_bincompat3 (bincompat3.U):
- This variable conditionally defines BINCOMPAT3 so that embed.h
- can take special action if Perl 5.004 should be binary-compatible
- with Perl 5.003. This is impossible for 5.004_50 and later, so
- it is always $undef for those versions.
-
d_bsd (Guess.U):
This symbol conditionally defines the symbol BSD when running on a
BSD system.
@@ -299,6 +289,22 @@ d_dup2 (d_dup2.U):
This variable conditionally defines HAS_DUP2 if dup2() is
available to duplicate file descriptors.
+d_endhent (d_endhent.U):
+ This variable conditionally defines HAS_ENDHOSTENT if endhostent() is
+ available to close whatever was being used for host queries.
+
+d_endnent (d_endnent.U):
+ This variable conditionally defines HAS_ENDNETENT if endnetent() is
+ available to close whatever was being used for network queries.
+
+d_endpent (d_endpent.U):
+ This variable conditionally defines HAS_ENDPROTOENT if endprotoent() is
+ available to close whatever was being used for protocol queries.
+
+d_endsent (d_endsent.U):
+ This variable conditionally defines HAS_ENDSERVENT if endservent() is
+ available to close whatever was being used for service queries.
+
d_eofnblk (nblock_io.U):
This variable conditionally defines EOF_NONBLOCK if EOF can be seen
when reading from a non-blocking I/O source.
@@ -402,6 +408,10 @@ d_getnbyname (d_getnbynm.U):
indicates to the C program that the getnetbyname() routine is available
to look up networks by their names.
+d_getnent (d_getnent.U):
+ This variable conditionally defines HAS_GETNETENT if getnetent() is
+ available to look up network names in some data base or another.
+
d_getpbyname (d_getprotby.U):
This variable conditionally defines the HAS_GETPROTOBYNAME
symbol, which indicates to the C program that the
@@ -414,6 +424,10 @@ d_getpbynumber (d_getprotby.U):
getprotobynumber() routine is available to look up protocols
by their number.
+d_getpent (d_getpent.U):
+ This variable conditionally defines HAS_GETPROTOENT if getprotoent() is
+ available to look up protocols in some data base or another.
+
d_getpgid (d_getpgid.U):
This variable conditionally defines the HAS_GETPGID symbol, which
indicates to the C program that the getpgid(pid) function
@@ -449,6 +463,10 @@ d_getsbyport (d_getsrvby.U):
getservbyport() routine is available to look up services
by their port.
+d_getsent (d_getsent.U):
+ This variable conditionally defines HAS_GETSERVENT if getservent() is
+ available to look up network services in some data base or another.
+
d_gettimeod (d_ftime.U):
This variable conditionally defines the HAS_GETTIMEOFDAY symbol, which
indicates that the gettimeofday() system call exists (to obtain a
@@ -491,6 +509,10 @@ d_lockf (d_lockf.U):
This variable conditionally defines HAS_LOCKF if lockf() is
available to do file locking.
+d_longdbl (d_longdbl.U):
+ This variable conditionally defines HAS_LONG_DOUBLE if
+ the long double type is supported.
+
d_lstat (d_lstat.U):
This variable conditionally defines HAS_LSTAT if lstat() is
available to do file stats on symbolic links.
@@ -539,6 +561,11 @@ d_mkfifo (d_mkfifo.U):
This variable conditionally defines the HAS_MKFIFO symbol, which
indicates to the C program that the mkfifo() routine is available.
+d_mkstemp (d_mkstemp.U):
+ This variable conditionally defines the HAS_MKSTEMP symbol, which
+ indicates to the C program that the mkstemp() routine is available
+ to create and open a unique tempporary file.
+
d_mktime (d_mktime.U):
This variable conditionally defines the HAS_MKTIME symbol, which
indicates to the C program that the mktime() routine is available.
@@ -746,6 +773,14 @@ d_setlocale (d_setlocale.U):
This variable conditionally defines HAS_SETLOCALE if setlocale() is
available to handle locale-specific ctype implementations.
+d_setnent (d_setnent.U):
+ This variable conditionally defines HAS_SETNETENT if setnetent() is
+ available.
+
+d_setpent (d_setpent.U):
+ This variable conditionally defines HAS_SETPROTOENT if setprotoent() is
+ available.
+
d_setpgid (d_setpgid.U):
This variable conditionally defines the HAS_SETPGID symbol if the
setpgid(pid, gpid) function is available to set process group ID.
@@ -793,10 +828,19 @@ d_setruid (d_setruid.U):
indicates to the C program that the setruid() routine is available
to change the real uid of the current program.
+d_setsent (d_setsent.U):
+ This variable conditionally defines HAS_SETSERVENT if setservent() is
+ available.
+
d_setsid (d_setsid.U):
This variable conditionally defines HAS_SETSID if setsid() is
available to set the process group ID.
+d_setvbuf (d_setvbuf.U):
+ This variable conditionally defines the HAS_SETVBUF symbol, which
+ indicates to the C program that the setvbuf() routine is available
+ to change buffering on an open stdio stream.
+
d_sfio (d_sfio.U):
This variable conditionally defines the USE_SFIO symbol,
and indicates whether sfio is available (and should be used).
@@ -1498,6 +1542,11 @@ loclibpth (libpth.U):
prepended to libpth, and is intended to be easily set from the
command line.
+longdblsize (d_longdbl.U):
+ This variable contains the value of the LONG_DOUBLESIZE symbol, which
+ indicates to the C program how many bytes there are in a long double,
+ if this system supports long doubles.
+
longsize (intsize.U):
This variable contains the value of the LONGSIZE symbol, which
indicates to the C program how many bytes there are in a long.
diff --git a/Porting/config.sh b/Porting/config.sh
index 4fb150ef9d..b709411220 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -8,7 +8,7 @@
# Package name : perl5
# Source directory : .
-# Configuration time: Tue Mar 3 11:39:44 EST 1998
+# Configuration time: Mon Mar 9 14:20:14 EST 1998
# Configured by : doughera
# Target system : linux fractal 2.0.33 #1 tue feb 3 10:11:46 est 1998 i686 unknown
@@ -30,21 +30,20 @@ afs='false'
alignbytes='4'
aphostname=''
ar='ar'
-archlib='/opt/perl/lib/i686-linux-thread/5.00461'
-archlibexp='/opt/perl/lib/i686-linux-thread/5.00461'
+archlib='/opt/perl/lib/i686-linux-thread/5.00462'
+archlibexp='/opt/perl/lib/i686-linux-thread/5.00462'
archname='i686-linux-thread'
archobjs=''
awk='awk'
baserev='5.0'
bash=''
bin='/opt/perl/bin'
-bincompat3=''
binexp='/opt/perl/bin'
bison=''
byacc='byacc'
byteorder='1234'
c=''
-castflags='1'
+castflags='0'
cat='cat'
cc='cc'
cccdlflags='-fpic'
@@ -52,7 +51,7 @@ ccdlflags='-rdynamic'
ccflags='-D_REENTRANT -Dbool=char -DHAS_BOOL -I/usr/local/include'
cf_by='doughera'
cf_email='yourname@yourhost.yourplace.com'
-cf_time='Tue Mar 3 11:39:44 EST 1998'
+cf_time='Mon Mar 9 14:20:14 EST 1998'
chgrp=''
chmod=''
chown=''
@@ -78,13 +77,12 @@ d_archlib='define'
d_attribut='define'
d_bcmp='define'
d_bcopy='define'
-d_bincompat3='undef'
d_bsd='undef'
d_bsdgetpgrp='undef'
d_bsdsetpgrp='undef'
d_bzero='define'
-d_casti32='define'
-d_castneg='undef'
+d_casti32='undef'
+d_castneg='define'
d_charvspr='undef'
d_chown='define'
d_chroot='define'
@@ -102,6 +100,10 @@ d_dlopen='define'
d_dlsymun='undef'
d_dosuid='undef'
d_dup2='define'
+d_endhent='define'
+d_endnent='define'
+d_endpent='define'
+d_endsent='define'
d_eofnblk='define'
d_eunice='undef'
d_fchmod='define'
@@ -125,8 +127,10 @@ d_gethname='undef'
d_getlogin='define'
d_getnbyaddr='define'
d_getnbyname='define'
+d_getnent='define'
d_getpbyname='define'
d_getpbynumber='define'
+d_getpent='define'
d_getpgid='define'
d_getpgrp2='undef'
d_getpgrp='define'
@@ -134,6 +138,7 @@ d_getppid='define'
d_getprior='define'
d_getsbyname='define'
d_getsbyport='define'
+d_getsent='define'
d_gettimeod='define'
d_gnulibc='define'
d_htonl='define'
@@ -144,6 +149,7 @@ d_killpg='define'
d_link='define'
d_locconv='define'
d_lockf='define'
+d_longdbl='define'
d_lstat='define'
d_mblen='define'
d_mbstowcs='define'
@@ -154,6 +160,7 @@ d_memmove='define'
d_memset='define'
d_mkdir='define'
d_mkfifo='define'
+d_mkstemp='define'
d_mktime='define'
d_msg='define'
d_msgctl='define'
@@ -200,6 +207,8 @@ d_setgrps='define'
d_sethent='define'
d_setlinebuf='define'
d_setlocale='define'
+d_setnent='define'
+d_setpent='define'
d_setpgid='define'
d_setpgrp2='undef'
d_setpgrp='define'
@@ -210,7 +219,9 @@ d_setresuid='undef'
d_setreuid='define'
d_setrgid='undef'
d_setruid='undef'
+d_setsent='define'
d_setsid='define'
+d_setvbuf='define'
d_sfio='undef'
d_shm='define'
d_shmat='define'
@@ -355,7 +366,7 @@ i_varhdr='stdarg.h'
i_vfork='undef'
incpath=''
inews=''
-installarchlib='/opt/perl/lib/i686-linux-thread/5.00461'
+installarchlib='/opt/perl/lib/i686-linux-thread/5.00462'
installbin='/opt/perl/bin'
installman1dir='/opt/perl/man/man1'
installman3dir='/opt/perl/man/man3'
@@ -384,6 +395,7 @@ ln='ln'
lns='/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='12'
longsize='4'
lp=''
lpr=''
@@ -499,7 +511,7 @@ stdio_filbuf=''
stdio_ptr='((fp)->_IO_read_ptr)'
strings='/usr/include/string.h'
submit=''
-subversion='61'
+subversion='62'
sysman='/usr/man/man1'
tail=''
tar=''
@@ -532,5 +544,5 @@ xlibpth='/usr/lib/386 /lib/386'
zcat=''
zip='zip'
PATCHLEVEL=4
-SUBVERSION=61
+SUBVERSION=62
CONFIG=true
diff --git a/Porting/config_H b/Porting/config_H
index 8079a38331..52acfdc8e1 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -17,7 +17,7 @@
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Tue Mar 3 11:39:44 EST 1998
+ * Configuration time: Mon Mar 9 14:20:14 EST 1998
* Configured by : doughera
* Target system : linux fractal 2.0.33 #1 tue feb 3 10:11:46 est 1998 i686 unknown
*/
@@ -1282,7 +1282,7 @@
* 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
@@ -1296,8 +1296,8 @@
* 2 = couldn't cast >= 0x80000000
* 4 = couldn't cast in argument expression list
*/
-/*#define CASTNEGFLOAT / **/
-#define CASTFLAGS 1 /**/
+#define CASTNEGFLOAT /**/
+#define CASTFLAGS 0 /**/
/* VOID_CLOSEDIR:
* This symbol, if defined, indicates that the closedir() routine
@@ -1574,8 +1574,8 @@
* 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 "/opt/perl/lib/i686-linux-thread/5.00461" /**/
-#define ARCHLIB_EXP "/opt/perl/lib/i686-linux-thread/5.00461" /**/
+#define ARCHLIB "/opt/perl/lib/i686-linux-thread/5.00462" /**/
+#define ARCHLIB_EXP "/opt/perl/lib/i686-linux-thread/5.00462" /**/
/* CAT2:
* This macro catenates 2 tokens together.
@@ -1598,10 +1598,36 @@
#endif
/* CSH:
- * This symbol, if defined, indicates that the C-shell exists.
- * If defined, contains the full pathname of csh.
+ * This symbol, if defined, contains the full pathname of csh.
*/
-#define CSH "/bin/csh" /**/
+#define HAS_CSH /**/
+#ifdef HAS_CSH
+#define CSH "/bin/csh" /**/
+#endif
+
+/* HAS_ENDHOSTENT:
+ * This symbol, if defined, indicates that the endhostent() routine is
+ * available to close whatever was being used for host queries.
+ */
+#define HAS_ENDHOSTENT /**/
+
+/* HAS_ENDNETENT:
+ * This symbol, if defined, indicates that the endnetent() routine is
+ * available to close whatever was being used for network queries.
+ */
+#define HAS_ENDNETENT /**/
+
+/* HAS_ENDPROTOENT:
+ * This symbol, if defined, indicates that the endprotoent() routine is
+ * available to close whatever was being used for protocol queries.
+ */
+#define HAS_ENDPROTOENT /**/
+
+/* HAS_ENDSERVENT:
+ * This symbol, if defined, indicates that the endservent() routine is
+ * available to close whatever was being used for service queries.
+ */
+#define HAS_ENDSERVENT /**/
/* HAS_GETHOSTBYADDR:
* This symbol, if defined, indicates that the gethostbyaddr() routine is
@@ -1633,6 +1659,18 @@
*/
#define HAS_GETNETBYNAME /**/
+/* HAS_GETNETENT:
+ * This symbol, if defined, indicates that the getnetent() routine is
+ * available to look up network names in some data base or another.
+ */
+#define HAS_GETNETENT /**/
+
+/* HAS_GETPROTOENT:
+ * This symbol, if defined, indicates that the getprotoent() routine is
+ * available to look up protocols in some data base or another.
+ */
+#define HAS_GETPROTOENT /**/
+
/* HAS_GETPROTOBYNAME:
* This symbol, if defined, indicates that the getprotobyname()
* routine is available to look up protocols by their name.
@@ -1644,6 +1682,12 @@
#define HAS_GETPROTOBYNAME /**/
#define HAS_GETPROTOBYNUMBER /**/
+/* HAS_GETSERVENT:
+ * This symbol, if defined, indicates that the getservent() routine is
+ * available to look up network services in some data base or another.
+ */
+#define HAS_GETSERVENT /**/
+
/* HAS_GETSERVBYNAME:
* This symbol, if defined, indicates that the getservbyname()
* routine is available to look up services by their name.
@@ -1655,6 +1699,26 @@
#define HAS_GETSERVBYNAME /**/
#define HAS_GETSERVBYPORT /**/
+/* HAS_LONG_DOUBLE:
+ * This symbol will be defined if the C compiler supports long
+ * doubles.
+ */
+/* LONG_DOUBLESIZE:
+ * This symbol contains the size of a long double, so that the
+ * C preprocessor can make decisions based on it. It is only
+ * defined if the system supports long doubles.
+ */
+#define HAS_LONG_DOUBLE /**/
+#ifdef HAS_LONG_DOUBLE
+#define LONG_DOUBLESIZE 12 /**/
+#endif
+
+/* HAS_MKSTEMP:
+ * This symbol, if defined, indicates that the mkstemp routine is
+ * available to create and open a unique temporary file.
+ */
+#define HAS_MKSTEMP /**/
+
/* HAS_SETGROUPS:
* This symbol, if defined, indicates that the setgroups() routine is
* available to set the list of process groups. If unavailable, multiple
@@ -1668,6 +1732,31 @@
*/
#define HAS_SETHOSTENT /**/
+/* HAS_SETNETENT:
+ * This symbol, if defined, indicates that the setnetent() routine is
+ * available.
+ */
+#define HAS_SETNETENT /**/
+
+/* HAS_SETPROTOENT:
+ * This symbol, if defined, indicates that the setprotoent() routine is
+ * available.
+ */
+#define HAS_SETPROTOENT /**/
+
+/* HAS_SETSERVENT:
+ * This symbol, if defined, indicates that the setservent() routine is
+ * available.
+ */
+#define HAS_SETSERVENT /**/
+
+/* HAS_SETVBUF:
+ * This symbol, if defined, indicates that the setvbuf routine is
+ * available to change buffering on an open stdio stream.
+ * to a line-buffered mode.
+ */
+#define HAS_SETVBUF /**/
+
/* Signal_t:
* This symbol's value is either "void" or "int", corresponding to the
* appropriate return type of a signal handler. Thus, you can declare
diff --git a/config_h.SH b/config_h.SH
index 138e08a642..77750cd98c 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -1612,10 +1612,36 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#endif
/* CSH:
- * This symbol, if defined, indicates that the C-shell exists.
- * If defined, contains the full pathname of csh.
+ * This symbol, if defined, contains the full pathname of csh.
*/
-#$d_csh CSH "$full_csh" /**/
+#$d_csh HAS_CSH /**/
+#ifdef HAS_CSH
+#define CSH "$full_csh" /**/
+#endif
+
+/* HAS_ENDHOSTENT:
+ * This symbol, if defined, indicates that the endhostent() routine is
+ * available to close whatever was being used for host queries.
+ */
+#$d_endhent HAS_ENDHOSTENT /**/
+
+/* HAS_ENDNETENT:
+ * This symbol, if defined, indicates that the endnetent() routine is
+ * available to close whatever was being used for network queries.
+ */
+#$d_endnent HAS_ENDNETENT /**/
+
+/* HAS_ENDPROTOENT:
+ * This symbol, if defined, indicates that the endprotoent() routine is
+ * available to close whatever was being used for protocol queries.
+ */
+#$d_endpent HAS_ENDPROTOENT /**/
+
+/* HAS_ENDSERVENT:
+ * This symbol, if defined, indicates that the endservent() routine is
+ * available to close whatever was being used for service queries.
+ */
+#$d_endsent HAS_ENDSERVENT /**/
/* HAS_GETHOSTBYADDR:
* This symbol, if defined, indicates that the gethostbyaddr() routine is
@@ -1647,6 +1673,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_getnbyname HAS_GETNETBYNAME /**/
+/* HAS_GETNETENT:
+ * This symbol, if defined, indicates that the getnetent() routine is
+ * available to look up network names in some data base or another.
+ */
+#$d_getnent HAS_GETNETENT /**/
+
+/* HAS_GETPROTOENT:
+ * This symbol, if defined, indicates that the getprotoent() routine is
+ * available to look up protocols in some data base or another.
+ */
+#$d_getpent HAS_GETPROTOENT /**/
+
/* HAS_GETPROTOBYNAME:
* This symbol, if defined, indicates that the getprotobyname()
* routine is available to look up protocols by their name.
@@ -1658,6 +1696,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#$d_getpbyname HAS_GETPROTOBYNAME /**/
#$d_getpbynumber HAS_GETPROTOBYNUMBER /**/
+/* HAS_GETSERVENT:
+ * This symbol, if defined, indicates that the getservent() routine is
+ * available to look up network services in some data base or another.
+ */
+#$d_getsent HAS_GETSERVENT /**/
+
/* HAS_GETSERVBYNAME:
* This symbol, if defined, indicates that the getservbyname()
* routine is available to look up services by their name.
@@ -1669,6 +1713,26 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#$d_getsbyname HAS_GETSERVBYNAME /**/
#$d_getsbyport HAS_GETSERVBYPORT /**/
+/* HAS_LONG_DOUBLE:
+ * This symbol will be defined if the C compiler supports long
+ * doubles.
+ */
+/* LONG_DOUBLESIZE:
+ * This symbol contains the size of a long double, so that the
+ * C preprocessor can make decisions based on it. It is only
+ * defined if the system supports long doubles.
+ */
+#$d_longdbl HAS_LONG_DOUBLE /**/
+#ifdef HAS_LONG_DOUBLE
+#define LONG_DOUBLESIZE $longdblsize /**/
+#endif
+
+/* HAS_MKSTEMP:
+ * This symbol, if defined, indicates that the mkstemp routine is
+ * available to create and open a unique temporary file.
+ */
+#$d_mkstemp HAS_MKSTEMP /**/
+
/* HAS_SETGROUPS:
* This symbol, if defined, indicates that the setgroups() routine is
* available to set the list of process groups. If unavailable, multiple
@@ -1682,6 +1746,31 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_sethent HAS_SETHOSTENT /**/
+/* HAS_SETNETENT:
+ * This symbol, if defined, indicates that the setnetent() routine is
+ * available.
+ */
+#$d_setnent HAS_SETNETENT /**/
+
+/* HAS_SETPROTOENT:
+ * This symbol, if defined, indicates that the setprotoent() routine is
+ * available.
+ */
+#$d_setpent HAS_SETPROTOENT /**/
+
+/* HAS_SETSERVENT:
+ * This symbol, if defined, indicates that the setservent() routine is
+ * available.
+ */
+#$d_setsent HAS_SETSERVENT /**/
+
+/* HAS_SETVBUF:
+ * This symbol, if defined, indicates that the setvbuf routine is
+ * available to change buffering on an open stdio stream.
+ * to a line-buffered mode.
+ */
+#$d_setvbuf HAS_SETVBUF /**/
+
/* Signal_t:
* This symbol's value is either "void" or "int", corresponding to the
* appropriate return type of a signal handler. Thus, you can declare
diff --git a/ext/ODBM_File/ODBM_File.xs b/ext/ODBM_File/ODBM_File.xs
index b57e560bd3..53d1930c54 100644
--- a/ext/ODBM_File/ODBM_File.xs
+++ b/ext/ODBM_File/ODBM_File.xs
@@ -3,7 +3,7 @@
#include "XSUB.h"
#ifdef NULL
-#undef NULL
+#undef NULL /* XXX Why? */
#endif
#ifdef I_DBM
# include <dbm.h>
@@ -46,6 +46,10 @@ static int dbmrefcnt;
MODULE = ODBM_File PACKAGE = ODBM_File PREFIX = odbm_
+#ifndef NULL
+# define NULL 0
+#endif
+
ODBM_File
odbm_TIEHASH(dbtype, filename, flags, mode)
char * dbtype
diff --git a/handy.h b/handy.h
index 3daf767055..b9d3462940 100644
--- a/handy.h
+++ b/handy.h
@@ -102,7 +102,8 @@
Further, we need to know about PTRSIZE == sizeof(void *) and
DOUBLESIZE == sizeof(double) if we really want to try to handle
- 32/64-bit combinations.
+ 32/64-bit combinations. Finally, we might also need to know
+ HAS_LONG_DOUBLE and LONG_DOUBLESIZE.
For the moment, these are only mentioned here so metaconfig will
construct Configure to figure out the various sizes.
diff --git a/hints/aix.sh b/hints/aix.sh
index bc26590291..a29466e4f8 100644
--- a/hints/aix.sh
+++ b/hints/aix.sh
@@ -71,7 +71,7 @@ lddlflags='-H512 -T512 -bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).
;;
esac
-if [ "X$usethreads" != "X" ]; then
+if [ "X$usethreads" = "X$define" ]; then
ccflags="-DNEED_PTHREAD_INIT $ccflags"
case "$cc" in
xlc_r | cc_r)
diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh
index ae49f503a0..5055302353 100644
--- a/hints/dec_osf.sh
+++ b/hints/dec_osf.sh
@@ -180,7 +180,7 @@ case "$optimize" in
;;
esac
-if [ "X$usethreads" != "X" ]; then
+if [ "X$usethreads" = "X$define" ]; then
# Threads interfaces changed with V4.0.
case "$_DEC_uname_r" in
*[123].*) libswanted="$libswanted pthreads mach exc c_r"
diff --git a/hints/dos_djgpp.sh b/hints/dos_djgpp.sh
index 9878cc33fc..1b4a845fc2 100644
--- a/hints/dos_djgpp.sh
+++ b/hints/dos_djgpp.sh
@@ -66,7 +66,7 @@ esac
exec tr.exe "\$@"
EOSC
-if [ "X$usethreads" != "X" ]; then
+if [ "X$usethreads" = "X$define" ]; then
set `echo X "$libswanted "| sed -e 's/ c / gthreads c /'`
shift
libswanted="$*"
diff --git a/hints/freebsd.sh b/hints/freebsd.sh
index 5e89d56039..f1bbd60457 100644
--- a/hints/freebsd.sh
+++ b/hints/freebsd.sh
@@ -17,7 +17,12 @@
# Additional 2.2 defines from
# Mark Murray <mark@grondar.za>
# Date: Wed, 6 Nov 1996 09:44:58 +0200 (MET)
-#
+#
+# Modified to ensure we replace -lc with -lc_r, and
+# to put in place-holders for various specific hints.
+# Andy Dougherty <doughera@lafcol.lafayette.edu>
+# Date: Tue Mar 10 16:07:00 EST 1998
+#
# The two flags "-fpic -DPIC" are used to indicate a
# will-be-shared object. Configure will guess the -fpic, (and the
# -DPIC is not used by perl proper) but the full define is included to
@@ -104,9 +109,14 @@ problem. Try
EOM
-if [ "X$usethreads" != "X" ]; then
+# XXX EXPERIMENTAL A.D. 03/09/1998
+# XXX This script UU/usethreads.cbu will get 'called-back' by Configure
+# XXX after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOSH'
+case "$usethreads" in
+$define)
if [ ! -r /usr/lib/libc_r.a ]; then
- cat <<'EOM'
+ cat <<'EOM' >&4
The re-entrant C library /usr/lib/libc_r.a does not exist; cannot build
threaded Perl. Consider upgrading to a newer FreeBSD snapshot or release:
@@ -115,5 +125,23 @@ at least the FreeBSD 3.0-971225-SNAP is known to have the libc_r.a.
EOM
exit 1
fi
- libswanted="$libswanted c_r"
-fi
+ # Patches to libc_r may be required.
+ # Print out a note about them here.
+
+ # These checks by Andy Dougherty <doughera@lafcol.lafayette.edu>
+ # Please update or change them as you learn more!
+ # -lc_r must REPLACE -lc. AD 03/10/1998
+ set `echo X "$libswanted "| sed -e 's/ c / c_r /'`
+ shift
+ libswanted="$*"
+ # Configure will probably pick the wrong libc to use for nm scan.
+ # The safest quick-fix is just to not use nm at all.
+ usenm=false
+ # Is vfork buggy in 3.0?
+ case "$osvers" in
+ 3.0) usevfork=false ;;
+ esac
+ ;;
+esac
+EOSH
+# XXX EXPERIMENTAL --end of call-back
diff --git a/hints/irix_6.sh b/hints/irix_6.sh
index 3d8202a8ae..ed3c112ffa 100644
--- a/hints/irix_6.sh
+++ b/hints/irix_6.sh
@@ -117,7 +117,7 @@ libswanted="$*"
# makes IRIX 6.2 cc to emit bad code.
pp_ctl_cflags='optimize=-O'
-if [ "X$usethreads" != "X" ]; then
+if [ "X$usethreads" = "X$define" ]; then
if test ! -f /usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
uname_r=`uname -r`
case "`uname -r`" in
diff --git a/hints/irix_6_0.sh b/hints/irix_6_0.sh
index e76890d120..b0a39943bd 100644
--- a/hints/irix_6_0.sh
+++ b/hints/irix_6_0.sh
@@ -42,7 +42,7 @@ libswanted="$*"
# shift
# libswanted="$*"
-if [ "X$usethreads" != "X" ]; then
+if [ "X$usethreads" = "X$define" ]; then
echo >&4 "IRIX 6.0 does not have POSIX threads."
echo >&4 "You should upgrade to at least IRIX 6.3."
echo >&4 "Cannot continue, aborting."
diff --git a/hints/irix_6_1.sh b/hints/irix_6_1.sh
index 91c3ef8cf8..1c54f774a9 100644
--- a/hints/irix_6_1.sh
+++ b/hints/irix_6_1.sh
@@ -42,7 +42,7 @@ libswanted="$*"
# shift
# libswanted="$*"
-if [ "X$usethreads" != "X" ]; then
+if [ "X$usethreads" = "X$define" ]; then
echo >&4 "IRIX 6.1 does not have POSIX threads."
echo >&4 "You should upgrade to at least IRIX 6.3."
echo >&4 "Cannot continue, aborting."
diff --git a/hints/os2.sh b/hints/os2.sh
index 7cda0bf89b..f11eeb36ed 100644
--- a/hints/os2.sh
+++ b/hints/os2.sh
@@ -245,7 +245,7 @@ case "X$optimize" in
;;
esac
-if [ "X$usethreads" != "X" ]; then
+if [ "X$usethreads" = "X$define" ]; then
ccflags="-Zmt $ccflags"
cppflags="-Zmt $cppflags" # Do we really need to set this?
aout_ccflags="-DUSE_THREADS $aout_ccflags"
diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh
index 7f7a85680c..047e4cf3b7 100644
--- a/hints/solaris_2.sh
+++ b/hints/solaris_2.sh
@@ -230,7 +230,7 @@ rm -f core
# XXX
EOSH
-if [ "X$usethreads" != "X" ]; then
+if [ "X$usethreads" = "X$define" ]; then
ccflags="-D_REENTRANT $ccflags"
# -lpthread needs to come before -lc but after other libraries such
# as -lgdbm and such like. We assume here that -lc is present in
diff --git a/patchlevel.h b/patchlevel.h
index 44bbe3ac57..aec072e4a1 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -46,5 +46,5 @@ static char *local_patches[] = {
# define LOCAL_PATCH_COUNT \
(sizeof(local_patches)/sizeof(local_patches[0])-2)
-#define __PATCHLEVEL_H_INCLUDED__
+# define __PATCHLEVEL_H_INCLUDED__
#endif
diff --git a/perl.c b/perl.c
index 6d222cecae..47830530cb 100644
--- a/perl.c
+++ b/perl.c
@@ -559,6 +559,7 @@ perl_parse(PerlInterpreter *sv_interp, void (*xsinit) (void), int argc, char **a
char *validarg = "";
I32 oldscope;
AV* comppadlist;
+ int e_tmpfd = -1;
dJMPENV;
int ret;
@@ -679,12 +680,20 @@ setuid perl scripts securely.\n");
croak("No -e allowed in setuid scripts");
if (!e_fp) {
e_tmpname = savepv(TMPPATH);
+#ifdef HAS_MKSTEMP
+ e_tmpfd = PerlLIO_mkstemp(e_tmpname);
+
+ if (e_tmpfd < 0)
+ croak("Can't mkstemp() temporary file \"%s\"", e_tmpname);
+ e_fp = PerlIO_fdopen(e_tmpfd,"w");
+#else /* use mktemp() */
(void)PerlLIO_mktemp(e_tmpname);
if (!*e_tmpname)
- croak("Can't mktemp()");
+ croak("Can't mktemp() temporary file \"%s\"", e_tmpname);
e_fp = PerlIO_open(e_tmpname,"w");
- if (!e_fp)
- croak("Cannot open temporary file");
+#endif /* HAS_MKSTEMP */
+ if (!e_fp)
+ croak("Cannot open temporary file \"%s\"", e_tmpname);
}
if (*++s)
PerlIO_puts(e_fp,s);
@@ -916,6 +925,7 @@ print \" \\@INC:\\n @INC\\n\";");
(void)UNLINK(e_tmpname);
Safefree(e_tmpname);
e_tmpname = Nullch;
+ e_tmpfd = -1;
}
/* now that script is parsed, we can modify record separator */
diff --git a/perl.h b/perl.h
index 0f9b22de94..532847b383 100644
--- a/perl.h
+++ b/perl.h
@@ -2042,7 +2042,7 @@ enum {
#endif /* !USE_LOCALE_NUMERIC */
-#if !defined(PERLIO_IS_STDIO) && defined(HAS_ATTRIBUTE)
+#if !defined(PERLIO_IS_STDIO) && defined(HASATTRIBUTE)
/*
* Now we have __attribute__ out of the way
* Remap printf
diff --git a/perllio.h b/perllio.h
index c756aaf1e1..4c65ce3e3d 100644
--- a/perllio.h
+++ b/perllio.h
@@ -14,6 +14,7 @@
#define PerlLIO_lseek(fd, offset, mode) lseek((fd), (offset), (mode))
#define PerlLIO_lstat(name, buf) lstat((name), (buf))
#define PerlLIO_mktemp(file) mktemp((file))
+#define PerlLIO_mkstemp(file) mkstemp((file))
#define PerlLIO_open(file, flag) open((file), (flag))
#define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm))
#define PerlLIO_read(fd, buf, count) read((fd), (buf), (count))
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 9f16761239..25f3b68fce 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -693,10 +693,17 @@ to exist.
(F) List assignment to %ENV is not supported on some systems, notably VMS.
-=item Can't mktemp()
+=item Can't mkstemp() temporary file %s
-(F) The mktemp() routine failed for some reason while trying to process
-a B<-e> switch. Maybe your /tmp partition is full, or clobbered.
+(F) The mkstemp() routine failed for some reason while trying to
+process a B<-e> switch. Maybe your temporary file partition
+is full, or over-protected, or clobbered.
+
+=item Can't mktemp() temporary file %s
+
+(F) The mktemp() routine failed for some reason while trying to
+process a B<-e> switch. Maybe your temporary file partition
+is full, or over-protected, or clobbered.
=item Can't modify %s in %s
@@ -899,10 +906,11 @@ Perhaps you need to copy the value to a temporary, and repeat that.
(F) A string of a form C<CORE::word> was given to prototype(), but
there is no builtin with the name C<word>.
-=item Cannot open temporary file
+=item Cannot open temporary file %s
-(F) The create routine failed for some reason while trying to process
-a B<-e> switch. Maybe your /tmp partition is full, or clobbered.
+(F) A temporary file could not created for some reason while trying to
+process a B<-e> switch. Maybe your temporary file partition is full,
+or over-protected, or clobbered.
=item Cannot resolve method `%s' overloading `%s' in package `%s'
diff --git a/pp_sys.c b/pp_sys.c
index 8d8be18073..57e4099bb1 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -3795,11 +3795,23 @@ PP(pp_gprotoent)
struct protoent *pent;
if (which == OP_GPBYNAME)
+#ifdef HAS_GETPROTOBYNAME
pent = PerlSock_getprotobyname(POPp);
+#else
+ DIE(no_sock_func, "getprotobyname");
+#endif
else if (which == OP_GPBYNUMBER)
+#ifdef HAS_GETPROTOBYNUMBER
pent = PerlSock_getprotobynumber(POPi);
+#else
+ DIE(no_sock_func, "getprotobynumber");
+#endif
else
+#ifdef HAS_GETPROTOENT
pent = PerlSock_getprotoent();
+#else
+ DIE(no_sock_func, "getprotoent");
+#endif
EXTEND(SP, 3);
if (GIMME != G_ARRAY) {
@@ -3885,7 +3897,11 @@ PP(pp_gservent)
sent = PerlSock_getservbyport(port, proto);
}
else
+#ifdef HAS_GETSERVENT
sent = PerlSock_getservent();
+#else
+ DIE(no_sock_func, "getservent");
+#endif
EXTEND(SP, 4);
if (GIMME != G_ARRAY) {
diff --git a/vms/config.vms b/vms/config.vms
index 0320012c72..3e6f5cdb0e 100644
--- a/vms/config.vms
+++ b/vms/config.vms
@@ -1937,11 +1937,11 @@
*/
#define Netdb_net_t long
-/* HAS_GETHBADD:
+/* HAS_GETHOSTBYADDR:
* This symbol, if defined, indicates that the gethostbyaddr routine is
* available to lookup host names by their IP addresses.
*/
-#define HAS_GETHBADD /**/ /* config-skip */
+#define HAS_GETHBYADDR /**/ /* config-skip */
/* Gethbadd_addr_t:
* This symbol holds the type used for the 1st argument
@@ -1956,11 +1956,11 @@
#define Gethbadd_alen_t int /**/ /* config-skip */
#ifdef DECCRTL_SOCKETS
-/* HAS_GETNBADD:
+/* HAS_GETNETBYADDR:
* This symbol, if defined, indicates that the getnetbyaddr routine is
* available to lookup networks by their IP addresses.
*/
-#define HAS_GETNBADD /**/ /* config-skip */
+#define HAS_GETNETBYADDR /**/ /* config-skip */
/* Gethbadd_net_t:
* This symbol holds the type used for the 1st argument
@@ -1968,7 +1968,7 @@
*/
#define Getnbadd_net_t long /**/ /* config-skip */
#else
-#undef HAS_GETNBADD /**/ /* config-skip */
+#undef HAS_GETNETBYADDR /**/ /* config-skip */
#undef Getnbadd_net_t long /**/ /* config-skip */
#endif
@@ -2010,8 +2010,8 @@
#undef I_NETDB /**/ /* config-skip */
#undef I_NET_ERRNO /**/ /* config-skip */
#undef HAS_SELECT /**/ /* config-skip */
-#undef HAS_GETHBADD /**/ /* config-skip */
-#undef HAS_GETNBADD /**/ /* config-skip */
+#undef HAS_GETHOSTBYADDR /**/ /* config-skip */
+#undef HAS_GETNETBYADDR /**/ /* config-skip */
#endif /* !VMS_DO_SOCKETS */