summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Dougherty <doughera@lafayette.edu>1998-03-03 11:41:16 -0500
committerMalcolm Beattie <mbeattie@sable.ox.ac.uk>1998-03-05 19:09:16 +0000
commit693762b493165ab96822ef2342af62f74dc0367b (patch)
tree3627087dfd4bdd21c3a4e303b875d4af19dd8e0a
parentd1ca3daa86c9b198ada1278ef16d193996bbf3c9 (diff)
downloadperl-693762b493165ab96822ef2342af62f74dc0367b.tar.gz
Configure patches -01 and -02 for 5.004_61.
p4raw-id: //depot/perl@783
-rwxr-xr-xConfigure363
-rw-r--r--INSTALL213
-rw-r--r--Policy_sh.SH66
-rw-r--r--Porting/Glossary49
-rw-r--r--Porting/config.sh29
-rw-r--r--Porting/config_H89
-rw-r--r--Porting/pumpkin.pod46
-rw-r--r--config_h.SH83
-rw-r--r--handy.h10
-rw-r--r--hints/README.hints200
-rw-r--r--hints/aix.sh6
-rw-r--r--hints/linux.sh15
-rw-r--r--hints/solaris_2.sh7
-rw-r--r--hints/unicos.sh3
-rwxr-xr-xmakedepend.SH2
-rwxr-xr-xmyconfig2
-rw-r--r--pp_sys.c40
17 files changed, 965 insertions, 258 deletions
diff --git a/Configure b/Configure
index a34a5db6f4..4695391a66 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 Wed Feb 25 16:44:06 EST 1998 [metaconfig 3.0 PL70]
+# Generated on Tue Mar 3 11:16:26 EST 1998 [metaconfig 3.0 PL70]
cat >/tmp/c1$$ <<EOF
ARGGGHHHH!!!!!
@@ -194,6 +194,7 @@ make=''
mkdir=''
more=''
mv=''
+nm=''
nroff=''
perl=''
pg=''
@@ -211,6 +212,7 @@ submit=''
tail=''
tar=''
tbl=''
+tee=''
test=''
touch=''
tr=''
@@ -330,12 +332,17 @@ d_phostname=''
d_uname=''
d_getlogin=''
d_getnbyaddr=''
+d_getnbyname=''
d_getpgid=''
d_getpgrp2=''
d_bsdgetpgrp=''
d_getpgrp=''
d_getppid=''
d_getprior=''
+d_getpbyname=''
+d_getpbynumber=''
+d_getsbyname=''
+d_getsbyport=''
d_gnulibc=''
d_htonl=''
d_inetaton=''
@@ -389,6 +396,7 @@ d_semop=''
d_setegid=''
d_seteuid=''
d_setgrps=''
+d_sethent=''
d_setlinebuf=''
d_setlocale=''
d_setpgid=''
@@ -472,6 +480,7 @@ dlsrc=''
ld=''
lddlflags=''
usedl=''
+doublesize=''
fpostype=''
gidtype=''
groupstype=''
@@ -612,6 +621,7 @@ installprivlib=''
privlib=''
privlibexp=''
prototype=''
+ptrsize=''
randbits=''
installscript=''
scriptdir=''
@@ -644,6 +654,7 @@ nm_so_opt=''
runnm=''
usenm=''
useperlio=''
+d_oldpthreads=''
usethreads=''
incpath=''
mips=''
@@ -775,7 +786,8 @@ useposix=true
useopcode=true
: set usethreads on the Configure command line to enable threads.
: List of libraries we want.
-libswanted='sfio net socket inet nsl nm ndbm gdbm dbm db malloc dl'
+: If anyone needs -lnet, put it in a hint file.
+libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl'
libswanted="$libswanted dld ld sun m c cposix posix ndir dir crypt"
libswanted="$libswanted ucb bsd BSD PW x"
: We probably want to search /usr/shlib before most other libraries.
@@ -1566,10 +1578,12 @@ less
line
ln
more
+nm
nroff
perl
pg
sendmail
+tee
test
uname
zip
@@ -2250,6 +2264,19 @@ y|Y) val="$define" ;;
esac
set usethreads
eval $setvar
+: Look for a hint-file generated 'call-back-unit'. Now that the
+: user has specified the compiler, we may need to set or change some
+: other defaults.
+if $test -f usethreads.cbu; then
+ . ./usethreads.cbu
+fi
+case "$d_oldpthreads" in
+'') : Configure tests would be welcome here. For now, assume undef.
+ val="$undef" ;;
+*) val="$d_oldpthreads" ;;
+esac
+set d_oldpthreads
+eval $setvar
: determine the architecture name
echo " "
@@ -3000,8 +3027,8 @@ fi
: Binary compatibility with 5.003 is not possible with 5.004_50 and later.
-if test $patchlevel -ge 4 -o $subversion -ge 50; then
- val=$undef
+if test $patchlevel -gt 4 -o $subversion -ge 50; then
+ d_bincompat3=$undef
else
$cat <<EOM
@@ -3023,13 +3050,13 @@ EOM
y*) val="$define" ;;
*) val="$undef" ;;
esac
+ set d_bincompat3
+ eval $setvar
+ case "$d_bincompat3" in
+ "$define") bincompat3=y ;;
+ *) bincompat3=n ;;
+ esac
fi
-set d_bincompat3
-eval $setvar
-case "$d_bincompat3" in
-"$define") bincompat3=y ;;
-*) bincompat3=n ;;
-esac
: determine where manual pages are on this system
echo " "
@@ -3483,6 +3510,8 @@ put the appropriate flags later when it asks you for other cc and ld flags.
Venix systems may wish to put "none" and let the compiler figure things out.
(In the following question multiple model names should be space separated.)
+The default for most systems is "none".
+
EOM
rp="Which memory models are supported?"
. ./myread
@@ -3601,8 +3630,9 @@ if ./usg; then
esac;;
*) dflt="$cc";;
esac
- $cat <<'EOM'
-On some systems the default C compiler will not resolve multiple global
+ case "$dflt" in
+ *M*) $cat <<'EOM'
+On some older systems the default C compiler will not resolve multiple global
references that happen to have the same name. On some such systems the "Mcc"
command may be used to force these to be resolved. On other systems a "cc -M"
command is required. (Note that the -M flag on other systems indicates a
@@ -3610,7 +3640,9 @@ memory model to use!) If you have the Gnu C compiler, you might wish to use
that instead.
EOM
- rp="What command will force resolution on this system?"
+ ;;
+ esac
+ rp="Use which C compiler?"
. ./myread
cc="$ans"
else
@@ -3622,6 +3654,12 @@ else
. ./myread
cc="$ans"
fi
+: Look for a hint-file generated 'call-back-unit'. Now that the
+: user has specified the compiler, we may need to set or change some
+: other defaults.
+if $test -f cc.cbu; then
+ . ./cc.cbu
+fi
echo " "
echo "Checking for GNU cc in disguise and/or its version number..." >&4
$cat >gccvers.c <<EOM
@@ -4374,7 +4412,7 @@ case "$usenm" in
esac
$cat <<EOM
-I can use 'nm' to extract the symbols from your C libraries. This is a time
+I can use '$nm' to extract the symbols from your C libraries. This is a time
consuming task which may generate huge output on the disk (up to 3 megabytes)
but that should make the symbols extraction faster. The alternative is to skip
the 'nm' extraction part and to compile a small test program instead to
@@ -4383,7 +4421,7 @@ if your 'nm' output cannot be parsed, this may be the best solution.
You shouldn't let me use 'nm' if you have the GNU C Library.
EOM
-rp='Shall I use nm to extract C symbols from the libraries?'
+rp="Shall I use $nm to extract C symbols from the libraries?"
. ./myread
case "$ans" in
n|N) usenm=false;;
@@ -4415,7 +4453,7 @@ esac
case "$nm_so_opt" in
'') case "$myuname" in
*linux*)
- if nm --help | $grep 'dynamic' > /dev/null 2>&1; then
+ if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then
nm_so_opt='--dynamic'
fi
;;
@@ -4574,8 +4612,8 @@ $echo $n "This may take a while...$c" >&4
for file in $*; do
case $file in
- *$so*) nm $nm_so_opt $nm_opt $file 2>/dev/null;;
- *) nm $nm_opt $file 2>/dev/null;;
+ *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;;
+ *) $nm $nm_opt $file 2>/dev/null;;
esac
done >libc.tmp
@@ -4638,7 +4676,7 @@ elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\
$contains '^fprintf$' libc.list >/dev/null 2>&1; then
eval $xrun
else
- nm -p $* 2>/dev/null >libc.tmp
+ $nm -p $* 2>/dev/null >libc.tmp
$grep fprintf libc.tmp > libc.ptf
if com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\
eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1
@@ -4647,7 +4685,7 @@ 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
for thisname in $libnames; do
@@ -5120,10 +5158,10 @@ EOM
next4*) xxx='DYLD_LIBRARY_PATH' ;;
*) xxx='LD_LIBRARY_PATH' ;;
esac
- $cat <<EOM >&4
+ $cat <<EOM | $tee -a ../config.msg >&4
To build perl, you must add the current working directory to your
-$xxx environtment variable before running make. You can do
+$xxx environment variable before running make. You can do
this with
$xxx=\`pwd\`; export $xxx
for Bourne-style shells, or
@@ -6803,6 +6841,14 @@ eval $inlibc
set fsetpos d_fsetpos
eval $inlibc
+: see if gethostbyaddr exists
+set gethostbyaddr d_gethbyaddr
+eval $inlibc
+
+: see if gethostbyname exists
+set gethostbyname d_gethbyname
+eval $inlibc
+
: see if gethostent exists
set gethostent d_gethent
eval $inlibc
@@ -6811,6 +6857,22 @@ eval $inlibc
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 getprotobyname exists
+set getprotobyname d_getpbyname
+eval $inlibc
+
+: see if getprotobynumber exists
+set getprotobynumber d_getpbynumber
+eval $inlibc
: see if getpgid exists
set getpgid d_getpgid
eval $inlibc
@@ -6827,6 +6889,14 @@ eval $inlibc
set getpriority d_getprior
eval $inlibc
+
+: see if getservbyname exists
+set getservbyname d_getsbyname
+eval $inlibc
+
+: see if getservbyport exists
+set getservbyport d_getsbyport
+eval $inlibc
: see if gettimeofday or ftime exists
set gettimeofday d_gettimeod
eval $inlibc
@@ -7602,6 +7672,10 @@ eval $inlibc
set seteuid d_seteuid
eval $inlibc
+: see if sethostent exists
+set sethostent d_sethent
+eval $inlibc
+
: see if setlinebuf exists
set setlinebuf d_setlinebuf
eval $inlibc
@@ -8601,12 +8675,11 @@ main()
printf("db.h and libdb are compatible\n") ;
Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000
- + DB_VERSION_PATCH ;
+ + DB_VERSION_PATCH ;
/* needs to be >= 2.3.4 */
if (Version < 2003004) {
- /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH
-< 5) { */
+ /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
printf("but Perl needs Berkeley DB 2.3.4 or greater\n") ;
exit(2);
}
@@ -8783,6 +8856,32 @@ case "$voidflags" in
esac
$rm -f try.* .out
+: check for length of double
+echo " "
+case "$doublesize" in
+'')
+ echo "Checking to see how big your double precision numbers are..." >&4
+ $cat >try.c <<'EOCP'
+#include <stdio.h>
+main()
+{
+ printf("%d\n", sizeof(double));
+}
+EOCP
+ set try
+ if eval $compile; then
+ doublesize=`./try`
+ else
+ dflt='8'
+ echo "(I can't seem to compile the test program. Guessing...)"
+ rp="What is the size of a double precision number (in bytes)?"
+ . ./myread
+ doublesize="$ans"
+ fi
+ ;;
+esac
+$rm -f try.c try
+
: see what type file positions are declared as in the library
set fpos_t fpostype long stdio.h sys/types.h
eval $typedef
@@ -8940,18 +9039,6 @@ EOSH
chmod +x protochk
$eunicefix protochk
-: see if gethostbyaddr exists
-set gethostbyaddr d_gethbyaddr
-eval $inlibc
-
-: see if gethostbyname exists
-set gethostbyname d_gethbyname
-eval $inlibc
-
-: see if getnetbyaddr exists
-set getnetbyaddr d_getnbyaddr
-eval $inlibc
-
: see if this is a netdb.h system
set netdb.h i_netdb
eval $inhdr
@@ -9126,6 +9213,38 @@ rp="What type are process ids on this system declared as?"
. ./myread
pidtype="$ans"
+: check for length of pointer
+echo " "
+case "$ptrsize" in
+'')
+ echo "Checking to see how big your pointers are..." >&4
+ if test "$voidflags" -gt 7; then
+ echo '#define VOID_PTR char *' > try.c
+ else
+ echo '#define VOID_PTR void *' > try.c
+ fi
+ $cat >>try.c <<'EOCP'
+#include <stdio.h>
+main()
+{
+ printf("%d\n", sizeof(VOID_PTR));
+ exit(0);
+}
+EOCP
+ set try
+ if eval $compile; then
+ ptrsize=`./try`
+ else
+ dflt='4'
+ echo "(I can't seem to compile the test program. Guessing...)" >&4
+ rp="What is the size of a pointer (in bytes)?"
+ . ./myread
+ ptrsize="$ans"
+ fi
+ ;;
+esac
+$rm -f try.c try
+
: check for size of random number generator
echo " "
case "$randbits" in
@@ -10205,22 +10324,23 @@ known_extensions=''
: some additional extensions into the source tree and expect them
: to be built.
for xxx in * ; do
- case "$xxx" in
- DynaLoader) ;;
- *) if $test -f $xxx/$xxx.xs; then
- known_extensions="$known_extensions $xxx"
- else
- if $test -d $xxx; then
- cd $xxx
- for yyy in * ; do
- if $test -f $yyy/$yyy.xs; then
- known_extensions="$known_extensions $xxx/$yyy"
- fi
- done
- cd ..
- fi
- fi ;;
- esac
+ case "$xxx" in
+ DynaLoader) ;;
+ *) if $test -f $xxx/$xxx.xs; then
+ known_extensions="$known_extensions $xxx"
+ else
+ if $test -d $xxx; then
+ cd $xxx
+ for yyy in * ; do
+ if $test -f $yyy/$yyy.xs; then
+ known_extensions="$known_extensions $xxx/$yyy"
+ fi
+ done
+ cd ..
+ fi
+ fi
+ ;;
+ esac
done
set X $known_extensions
shift
@@ -10230,42 +10350,50 @@ cd ../UU
: Now see which are supported on this system.
avail_ext=''
for xxx in $known_extensions ; do
- case "$xxx" in
- DB_File|db_file) case "$i_db" in
- $define) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- GDBM_File|gdbm_fil) case "$i_gdbm" in
- $define) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- NDBM_File|ndbm_fil) case "$i_ndbm" in
- $define) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- ODBM_File|odbm_fil) case "${i_dbm}${i_rpcsvcdbm}" in
- *"${define}"*) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- POSIX|posix) case "$useposix" in
- true|define|y) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- Opcode|opcode) case "$useopcode" in
- true|define|y) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- Socket|socket) case "$d_socket" in
- true|$define|y) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- Thread|thread) case "$usethreads" in
- true|$define|y) avail_ext="$avail_ext $xxx" ;;
- esac
- ;;
- *) avail_ext="$avail_ext $xxx"
- ;;
- esac
+ case "$xxx" in
+ DB_File|db_file)
+ case "$i_db" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ GDBM_File|gdbm_fil)
+ case "$i_gdbm" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ NDBM_File|ndbm_fil)
+ case "$i_ndbm" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ ODBM_File|odbm_fil)
+ case "${i_dbm}${i_rpcsvcdbm}" in
+ *"${define}"*) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ POSIX|posix)
+ case "$useposix" in
+ true|define|y) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ Opcode|opcode)
+ case "$useopcode" in
+ true|define|y) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ Socket|socket)
+ case "$d_socket" in
+ true|$define|y) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ Thread|thread)
+ case "$usethreads" in
+ true|$define|y) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ *) avail_ext="$avail_ext $xxx"
+ ;;
+ esac
done
set X $avail_ext
@@ -10279,11 +10407,28 @@ A number of extensions are supplied with $package. You may choose to
compile these extensions for dynamic loading (the default), compile
them into the $package executable (static loading), or not include
them at all. Answer "none" to include no extensions.
+Note that DynaLoader is always built and need not be mentioned here.
EOM
case "$dynamic_ext" in
'') dflt="$avail_ext" ;;
- *) dflt="$dynamic_ext" ;;
+ *) dflt="$dynamic_ext"
+ # Perhaps we are reusing an old out-of-date config.sh.
+ case "$hint" in
+ previous)
+ if test X"$dynamic_ext" != X$"avail_ext"; then
+ $cat <<EOM
+NOTICE: Your previous config.sh list may be incorrect.
+The extensions now available to you are
+ ${avail_ext}
+but the default list from your previous config.sh is
+ ${dynamic_ext}
+
+EOM
+ fi
+ ;;
+ esac
+ ;;
esac
case "$dflt" in
'') dflt=none;;
@@ -10327,13 +10472,29 @@ EOM
$cat <<EOM
A number of extensions are supplied with $package. Answer "none"
to include no extensions.
+Note that DynaLoader is always built and need not be mentioned here.
EOM
case "$static_ext" in
'') dflt="$avail_ext" ;;
- *) dflt="$static_ext" ;;
- esac
+ *) dflt="$static_ext"
+ # Perhaps we are reusing an old out-of-date config.sh.
+ case "$hint" in
+ previous)
+ if test X"$static_ext" != X$"avail_ext"; then
+ $cat <<EOM
+NOTICE: Your previous config.sh list may be incorrect.
+The extensions now available to you are
+ ${avail_ext}
+but the default list from your previous config.sh is
+ ${static_ext}
+EOM
+ fi
+ ;;
+ esac
+ ;;
+ esac
case "$dflt" in
'') dflt=none;;
esac
@@ -10528,11 +10689,16 @@ d_gethent='$d_gethent'
d_gethname='$d_gethname'
d_getlogin='$d_getlogin'
d_getnbyaddr='$d_getnbyaddr'
+d_getnbyname='$d_getnbyname'
+d_getpbyname='$d_getpbyname'
+d_getpbynumber='$d_getpbynumber'
d_getpgid='$d_getpgid'
d_getpgrp2='$d_getpgrp2'
d_getpgrp='$d_getpgrp'
d_getppid='$d_getppid'
d_getprior='$d_getprior'
+d_getsbyname='$d_getsbyname'
+d_getsbyport='$d_getsbyport'
d_gettimeod='$d_gettimeod'
d_gnulibc='$d_gnulibc'
d_htonl='$d_htonl'
@@ -10561,6 +10727,7 @@ d_msgrcv='$d_msgrcv'
d_msgsnd='$d_msgsnd'
d_mymalloc='$d_mymalloc'
d_nice='$d_nice'
+d_oldpthreads='$d_oldpthreads'
d_oldsock='$d_oldsock'
d_open3='$d_open3'
d_pathconf='$d_pathconf'
@@ -10595,6 +10762,7 @@ d_semop='$d_semop'
d_setegid='$d_setegid'
d_seteuid='$d_seteuid'
d_setgrps='$d_setgrps'
+d_sethent='$d_sethent'
d_setlinebuf='$d_setlinebuf'
d_setlocale='$d_setlocale'
d_setpgid='$d_setpgid'
@@ -10667,6 +10835,7 @@ defvoidused='$defvoidused'
direntrytype='$direntrytype'
dlext='$dlext'
dlsrc='$dlsrc'
+doublesize='$doublesize'
dynamic_ext='$dynamic_ext'
eagain='$eagain'
echo='$echo'
@@ -10815,6 +10984,7 @@ netdb_hlen_type='$netdb_hlen_type'
netdb_host_type='$netdb_host_type'
netdb_name_type='$netdb_name_type'
netdb_net_type='$netdb_net_type'
+nm='$nm'
nm_opt='$nm_opt'
nm_so_opt='$nm_so_opt'
nroff='$nroff'
@@ -10843,6 +11013,7 @@ prefixexp='$prefixexp'
privlib='$privlib'
privlibexp='$privlibexp'
prototype='$prototype'
+ptrsize='$ptrsize'
randbits='$randbits'
ranlib='$ranlib'
rd_nodata='$rd_nodata'
@@ -10898,6 +11069,7 @@ sysman='$sysman'
tail='$tail'
tar='$tar'
tbl='$tbl'
+tee='$tee'
test='$test'
timeincl='$timeincl'
timetype='$timetype'
@@ -11032,7 +11204,12 @@ the policy defaults.
EOM
fi
-
+if $test -f config.msg; then
+ echo "Hmm. I also noted the following information while running:"
+ echo " "
+ $cat config.msg >&4
+ $rm -f config.msg
+fi
$rm -f kit*isdone ark*isdone
$rm -rf UU
diff --git a/INSTALL b/INSTALL
index 782cd9483d..7a4faec229 100644
--- a/INSTALL
+++ b/INSTALL
@@ -48,6 +48,26 @@ If there is a hint file for your system (in the hints/ directory) you
should also read that hint file for specific information for your
system. (Unixware users should use the svr4.sh hint file.)
+=head1 NOTE: This version is not binary compatible with Perl 5.004.
+
+For Perl 5.004 it was possible to be binary compatible with 5.003.
+Starting from Perl 5.004_50 this is no longer possible because there were
+many deep and far-reaching changes to the language internals.
+
+If you have dynamically loaded extensions that you built under perl
+5.003 or 5.004 and the so-called 'bincompat3' mode (the default mode)
+and that you wish to continue to use with perl 5.005, you may need to
+reinstall the extensions. If you wish to continue to support both 5.004
+and 5.005 on your system, you will have to move the 5.004 extensions
+over to the 5.004 architecture-dependent library. See the discussion
+below on L<"Coexistence with earlier versions of perl5.">
+
+The standard extensions supplied with Perl will be handled automatically.
+
+In a related issue, old extensions may possibly be affected by the
+changes in the Perl language in the current release. Please see
+pod/perldelta.pod for a description of what's changed.
+
=head1 Space Requirements
The complete perl5 source tree takes up about 7 MB of disk space. The
@@ -149,32 +169,31 @@ For my Solaris system, I usually use
If you prefer the GNU-style configure command line interface, you can
use the supplied configure command, e.g.
- CC=gcc ./configure
+ CC=gcc ./configure.gnu
The configure script emulates a few of the more common configure
options. Try
- ./configure --help
+ ./configure.gnu --help
for a listing.
Cross compiling is not supported.
-For systems that do not distinguish the files "Configure" and
-"configure", Perl includes a copy of configure named
-configure.gnu.
+(The file is called configugre.gnu to avoid problems on systems
+that would not distinguish the files "Configure" and "configure".)
=head2 Extensions
By default, Configure will offer to build every extension which appears
to be supported. For example, Configure will offer to build GDBM_File
only if it is able to find the gdbm library. (See examples below.)
-DynaLoader, Fcntl, and IO are always built by default. Configure does
-not contain code to test for POSIX compliance, so POSIX is always built
-by default as well. If you wish to skip POSIX, you can set the
-Configure variable useposix=false either in a hint file or from the
-Configure command line. Similarly, the Opcode extension is always built
-by default, but you can skip it by setting the Configure variable
+B, DynaLoader, Fcntl, IO, and attrs are always built by default.
+Configure does not contain code to test for POSIX compliance, so POSIX
+is always built by default as well. If you wish to skip POSIX, you can
+set the Configure variable useposix=false either in a hint file or from
+the Configure command line. Similarly, the Opcode extension is always
+built by default, but you can skip it by setting the Configure variable
useopcode=false either in a hint file for from the command line.
You can learn more about each of these extensions by consulting the
@@ -188,6 +207,7 @@ version. (Configure will suggest this as the default.)
In summary, here are the Configure command-line variables you can set
to turn off each extension:
+ B (Always included by default)
DB_File i_db
DynaLoader (Must always be included as a static extension)
Fcntl (Always included by default)
@@ -199,6 +219,8 @@ to turn off each extension:
SDBM_File (Always included by default)
Opcode useopcode
Socket d_socket
+ Threads usethreads
+ attrs (Always included by default)
Thus to skip the NDBM_File extension, you can use
@@ -210,10 +232,9 @@ library.
Of course, you may always run Configure interactively and select only
the extensions you want.
-Note: The DB_File module will only work with version 1.x of
-Berkeley DB. Once Berkeley DB version 2 is released, DB_File will be
-upgraded to work with it. Configure will automatically detect this
-for you and refuse to try to build DB_File with version 2.
+Note: The DB_File module will only work with version 1.x of Berkeley
+DB or newer releases of version 2. Configure will automatically detect
+this for you and refuse to try to build DB_File with version 2.
Finally, if you have dynamic loading (most modern Unix systems do)
remember that these extensions do not increase the size of your perl
@@ -363,12 +384,12 @@ above.
The directories site_perl and site_perl/archname are empty, but are
intended to be used for installing local or site-wide extensions. Perl
-will automatically look in these directories.
+will automatically look in these directories.
In order to support using things like #!/usr/local/bin/perl5.004 after
a later version is released, architecture-dependent libraries are
stored in a version-specific directory, such as
-/usr/local/lib/perl5/archname/5.004/.
+/usr/local/lib/perl5/archname/5.004/.
Again, these are just the defaults, and can be changed as you run
Configure.
@@ -410,6 +431,11 @@ Then, you can Configure and install in the usual way:
make test
make install
+Beware, though, that if you go to try to install new add-on
+extensions, they too will get installed in under '/tmp/perl5' if you
+follow this example. The next section shows one way of dealing with
+that problem.
+
=head2 Creating an installable tar archive
If you need to install perl on many identical systems, it is
@@ -431,6 +457,15 @@ installed on multiple systems. Here's one way to do that:
cd /usr/local # Or wherever you specified as $prefix
tar xvf perl5-archive.tar
+=head2 Site-wide "Policy" settings
+
+After Configure runs, it stores a number of common site-wide "policy"
+answers (such as installation directories and the local perl contact
+person) in the Policy.sh file. If you want to build perl on another
+system using the same policy defaults, simply copy the Policy.sh file
+to the new system and Configure will use it along with the appropriate
+hint file for your system.
+
=head2 Configure-time Options
There are several different ways to Configure and build perl for your
@@ -438,30 +473,17 @@ system. For most users, the defaults are sensible and will work.
Some users, however, may wish to further customize perl. Here are
some of the main things you can change.
-=head2 Binary Compatibility With Earlier Versions of Perl 5
+=head2 Threads
-For Perl 5.004 it was possible to be binary compatible with 5.003.
-Starting from Perl 5.005 this is no more possible because there were
-many deep and far-reaching changes to the language internals.
+On some platforms, perl5.005 can be compiled to use threads. To
+enable this, read the file README.threads, and then try
-If you have dynamically loaded extensions that you built under perl
-5.003 or 5.004 and the so-called 'bincompat3' mode (the default mode)
-and that you wish to continue to use with perl 5.005, you may need to
-reinstall the extensions.
-
-Background: starting with Perl 5.003, all functions in the Perl C
-source code have been protected by default by the prefix Perl_ (or
-perl_) so that you may link with third-party libraries without fear of
-namespace collisions. This change broke compatibility with version
-5.002, so installing 5.003 or 5.004 over 5.002 or earlier will force
-you to re-build and install all of your dynamically loadable
-extensions. (The standard extensions supplied with Perl are handled
-automatically). You can turn off this namespace protection by adding
--DNO_EMBED to your ccflags variable in config.sh.
+ sh Configure -Dusethreads
-In a related issue, old extensions may possibly be affected by the
-changes in the Perl language in the current release. Please see
-pod/perldelta.pod for a description of what's changed.
+Currently, you need to specify -Dusethreads on the Configure command
+line so that the hint files can make appropriate adjustments.
+
+The default is to compile without thread support.
=head2 Selecting File IO mechanisms
@@ -633,7 +655,7 @@ the malloc function on your system.
The perl source is shipped with a version of malloc that is very fast
but somewhat wasteful of space. On the other hand, your system's
-malloc() function is probably a bit slower but also a bit more frugal.
+malloc() function may be a bit slower but also a bit more frugal.
For many uses, speed is probably the most important consideration, so
the default behavior (for most systems) is to use the malloc supplied
@@ -1270,37 +1292,63 @@ program even if the Perl source is no longer available.
=head1 Coexistence with earlier versions of perl5
-You can safely install the current version of perl5 and still run scripts
-under the old binaries for versions 5.003 and later ONLY. Instead of
-starting your script with #!/usr/local/bin/perl, just start it with
-#!/usr/local/bin/perl5.003 (or whatever version you want to run.)
-If you want to retain a version of Perl 5 prior to 5.003, you'll
-need to install the current version in a separate directory tree,
-since some of the architecture-independent library files have changed
-in incompatible ways.
-
-The old architecture-dependent files are stored in a version-specific
-directory (such as /usr/local/lib/perl5/sun4-sunos/5.003) so that they
-will still be accessible even after a later version is installed.
-(Note: Perl 5.000 and 5.001 did not put their architecture-dependent
-libraries in a version-specific directory. They are simply in
-/usr/local/lib/perl5/$archname. If you will not be using 5.000 or
-5.001, you may safely remove those files.)
-
-In general, the standard library files in /usr/local/lib/perl5 should
-be usable by all versions of perl5. However, the diagnostics.pm module
-uses the /usr/local/lib/perl5/pod/perldiag.pod documentation file, so
-the C<use diagnostics;> pragma and the splain script will only identify
-and explain any warnings or errors that the most recently-installed
-version of perl can generate.
-
-Most extensions will probably not need to be recompiled to use with a newer
-version of perl. If you do run into problems, and you want to continue
-to use the old version of perl along with your extension, simply move
+WARNING: The upgrade from 5.004_0x to 5.005 is going to be a bit
+tricky. See L<"Upgrading from 5.004 to 5.005"> below.
+
+In general, you can usually safely upgrade from one version of Perl (e.g.
+5.004_04) to another similar version (e.g. 5.004_05) without re-compiling
+all of your add-on extensions. You can also safely leave the old version
+around in case the new version causes you problems for some reason.
+For example, if you want to be sure that your script continues to run
+with 5.004_04, simplly replace the '#!/usr/local/bin/perl' line at the
+top of the script with the particular version you want to run, e.g.
+#!/usr/local/bin/perl5.00404.
+
+(If you are upgrading from 5.002 or earlier, beware that some of the
+standard library files have changed in incompatible ways, so you are
+probably better off starting with a fresh installation.)
+
+The standard library files in /usr/local/lib/perl5 should be usable by
+all versions of perl5 after 5.002. An exception is the diagnostics.pm
+module. Since that module uses the /usr/local/lib/perl5/pod/perldiag.pod
+documentation file, the C<use diagnostics;> pragma and the splain script
+will only identify and explain any warnings or errors that the most
+recently-installed version of perl can generate. Usually, this is not
+a problem.
+
+Most extensions will probably not need to be recompiled to use
+with a newer version of perl. Here is how it is supposed to work.
+(These examples assume you accept all the Configure defaults.)
+
+The directories searched by version 5.004_05 will be
+
+ /usr/local/lib/perl5/archname/5.00405
+ /usr/local/lib/perl5/
+ /usr/local/lib/perl5/site_perl/archname
+ /usr/local/lib/perl5/site_perl
+
+while the directories searched by version 5.004_04 are
+
+ /usr/local/lib/perl5/archname/5.00404
+ /usr/local/lib/perl5/
+ /usr/local/lib/perl5/site_perl/archname
+ /usr/local/lib/perl5/site_perl
+
+When you install an add-on extension, it gets installed into
+/usr/local/lib/perl5/site_perl/archname (if it is architecture-specific.)
+This directory is deliberately NOT version-specific so that both 5.004_04
+and 5.004_05 can use the extension.
+
+However, if you do run into problems, and you want to continue to
+use the old version of perl along with your extension, simply move
those extension files to the appropriate version directory, such as
-/usr/local/lib/perl/archname/5.003. Then Perl 5.003 will find your
-files in the 5.003 directory, and newer versions of perl will find your
-newer extension in the site_perl directory.
+/usr/local/lib/perl5/archname/5.00404. Then use your newer version of
+perl to rebuild and re-install the extension into site_perl. This way,
+Perl 5.004_04 will find your files in the 5.00404 directory, and
+newer versions of perl will find your newer extension in the site_perl
+directory.
+
+=head2 Maintaining completely separate versions
Many users prefer to keep all versions of perl in completely
separate directories. One convenient way to do this is by
@@ -1312,11 +1360,36 @@ and adding /opt/perl5.004/bin to the shell PATH variable. Such users
may also wish to add a symbolic link /usr/local/bin/perl so that
scripts can still start with #!/usr/local/bin/perl.
+Others might share a common directory for maintenance sub-versions
+(e.g. 5.004 for all 5.004_0x versions), but change directory with
+each major version.
+
If you are installing a development subversion, you probably ought to
seriously consider using a separate directory, since development
subversions may not have all the compatibility wrinkles ironed out
yet.
+=head2 Upgrading from 5.004 to 5.005
+
+Extensions compiled with versions of perl prior to 5.004_50 will need
+to be recompiled to be used with 5.004_50 and later.
+
+If you wish to continue using those extensions under 5.004_04, for
+example, then you need to move those extensions from their current
+direcotries, which are something like
+
+ /usr/local/lib/perl5/site_perl/
+ /usr/local/lib/perl5/site_perl/archname
+
+to the version-specific directory such as
+
+ /usr/local/lib/perl5/archname/5.00404
+
+as described above.
+
+Once you have moved the 5.00404 versions of the extensions out of the
+way, you may recompile and reinstall with 5.005.
+
=head1 Coexistence with perl4
You can safely install perl5 even if you want to keep perl4 around.
@@ -1436,4 +1509,4 @@ above.
=head1 LAST MODIFIED
-$Id: INSTALL,v 1.28 1997/10/10 16:50:59 doughera Released $
+$Id: INSTALL,v 1.31 1998/03/03 18:08:52 doughera Released $
diff --git a/Policy_sh.SH b/Policy_sh.SH
index 831585422a..1f84d7a332 100644
--- a/Policy_sh.SH
+++ b/Policy_sh.SH
@@ -7,7 +7,9 @@ $startsh
#
# This file was produced by running the Policy_sh.SH script, which
# gets its values from config.sh, which is generally produced by
-# running Configure.
+# running Configure. The Policy.sh file gets overwritten each time
+# Configure is run. Any variables you add to Policy.sh will be lost
+# unless you copy Policy.sh somewhere else before running Configure.
#
# The idea here is to distill in one place the common site-wide
# "policy" answers (such as installation directories) that are
@@ -38,8 +40,6 @@ perladmin='$perladmin'
# installprivlib is for systems (such as those running AFS) that
# need to distinguish between the place where things
# get installed and where they finally will reside.
-# A full Glossary of all these config.sh variables is in the
-# Porting/Glossary file.
# Installation Prefix.
prefix='$prefix'
@@ -53,12 +53,6 @@ installscript='$installscript'
privlib='$privlib'
installprivlib='$installprivlib'
-archlib='$archlib'
-installarchlib='$installarchlib'
-
-sitearch='$sitearch'
-installsitearch='$installsitearch'
-
sitelib='$sitelib'
installsitelib='$installsitelib'
@@ -70,8 +64,56 @@ man3dir='$man3dir'
man3ext='$man3ext'
installman3dir='$installman3dir'
-# You may add additional items here, for example, to set the pager
-# to your local favorite value, uncomment
-# #pager='$pager'
+# NOTE: Be careful about architecture-dependent names. If you have
+# accepted the default, the following definitions will be commented out.
+# That way you can carry this file to another architecture and this file
+# won't mistakenly set architecture-dependent names to the wrong value.
+#
+# If you have not accepted the default, then be sure to check the
+# following lines before copying this file to another system.
+
+!GROK!THIS!
+
+if test 0 -eq "$subversion"; then
+ version=`LC_ALL=C; export LC_ALL; \
+ echo $baserev $patchlevel |
+ $awk '{ printf "%.3f\n", $1 + $2/1000.0 }'`
+else
+ version=`LC_ALL=C; export LC_ALL; \
+ echo $baserev $patchlevel $subversion | \
+ $awk '{ printf "%.5f\n", $1 + $2/1000.0 + $3/100000.0 }'`
+fi
+
+dflt="$privlib/$archname/$version"
+if test X"$archlib" = X"$dflt"; then
+ echo "# archlib='$archlib'"
+ echo "# installarchlib='$installarchlib'"
+else
+ echo '# NOTE: Preserving your custom archlib.'
+ echo "archlib='$archlib'"
+ echo "installarchlib='$installarchlib'"
+fi >> Policy.sh
+echo >> Policy.sh
+
+# Now consider sitearch.
+dflt="$sitelib/$archname"
+if test X"$sitearch" = X"$dflt"; then
+ echo "# sitearch='$sitearch'"
+ echo "# installsitearch='$installsitearch'"
+else
+ echo '# NOTE: Preserving your custom sitearch.'
+ echo "sitearch='$sitearch'"
+ echo "installsitearch='$installsitearch'"
+fi >> Policy.sh
+
+$spitshell <<!GROK!THIS! >>Policy.sh
+
+# Lastly, you may add additional items here. For example, to set the
+# pager to your local favorite value, uncomment the following line in
+# the original Policy_sh.SH file and re-run sh Policy_sh.SH.
+# $pager='$pager'
+#
+# A full Glossary of all the config.sh variables is in the file
+# Porting/Glossary.
!GROK!THIS!
diff --git a/Porting/Glossary b/Porting/Glossary
index 88c12cd48a..fe7e630ee9 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -380,7 +380,7 @@ d_gethbyaddr (d_gethbyad.U):
d_gethent (d_gethent.U):
This variable conditionally defines HAS_GETHOSTENT if gethostent() is
- available to dup file descriptors.
+ available to look up host names in some data base or another.
d_gethname (d_gethname.U):
This variable conditionally defines the HAS_GETHOSTNAME symbol, which
@@ -397,6 +397,23 @@ d_getnbyaddr (d_getnbyad.U):
indicates to the C program that the getnetbyaddr() routine is available
to look up networks by their IP addresses.
+d_getnbyname (d_getnbynm.U):
+ This variable conditionally defines the HAS_GETNETBYNAME symbol, which
+ indicates to the C program that the getnetbyname() routine is available
+ to look up networks by their names.
+
+d_getpbyname (d_getprotby.U):
+ This variable conditionally defines the HAS_GETPROTOBYNAME
+ symbol, which indicates to the C program that the
+ getprotobyname() routine is available to look up protocols
+ by their name.
+
+d_getpbynumber (d_getprotby.U):
+ This variable conditionally defines the HAS_GETPROTOBYNUMBER
+ symbol, which indicates to the C program that the
+ getprotobynumber() routine is available to look up protocols
+ by their number.
+
d_getpgid (d_getpgid.U):
This variable conditionally defines the HAS_GETPGID symbol, which
indicates to the C program that the getpgid(pid) function
@@ -420,6 +437,18 @@ d_getprior (d_getprior.U):
This variable conditionally defines HAS_GETPRIORITY if getpriority()
is available to get a process's priority.
+d_getsbyname (d_getsrvby.U):
+ This variable conditionally defines the HAS_GETSERVBYNAME
+ symbol, which indicates to the C program that the
+ getservbyname() routine is available to look up services
+ by their name.
+
+d_getsbyport (d_getsrvby.U):
+ This variable conditionally defines the HAS_GETSERVBYPORT
+ symbol, which indicates to the C program that the
+ getservbyport() routine is available to look up services
+ by their port.
+
d_gettimeod (d_ftime.U):
This variable conditionally defines the HAS_GETTIMEOFDAY symbol, which
indicates that the gettimeofday() system call exists (to obtain a
@@ -543,6 +572,12 @@ 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_oldpthreads (usethreads.U):
+ This variable conditionally defines the OLD_PTHREADS_API symbol,
+ and indicates that Perl should be built to use the old
+ draft POSIX threads API. This is only potneially meaningful if
+ usethreads is set.
+
d_oldsock (d_socket.U):
This variable conditionally defines the OLDSOCKET symbol, which
indicates that the BSD socket interface is based on 4.1c and not 4.2.
@@ -697,6 +732,10 @@ d_setgrps (d_setgrps.U):
indicates to the C program that the setgroups() routine is available
to set the list of process groups.
+d_sethent (d_sethent.U):
+ This variable conditionally defines HAS_SETHOSTENT if sethostent() is
+ available.
+
d_setlinebuf (d_setlnbuf.U):
This variable conditionally defines the HAS_SETLINEBUF symbol, which
indicates to the C program that the setlinebuf() routine is available
@@ -1014,6 +1053,10 @@ dlsrc (dlsrc.U):
This variable contains the name of the dynamic loading file that
will be used with the package.
+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.
+
dynamic_ext (Extensions.U):
This variable holds a list of extension files we want to
link dynamically into the package. It is used by Makefile.
@@ -1696,6 +1739,10 @@ prototype (prototype.U):
This variable holds the eventual value of CAN_PROTOTYPE, which
indicates the C compiler can handle funciton prototypes.
+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
diff --git a/Porting/config.sh b/Porting/config.sh
index 59663d958f..4fb150ef9d 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -8,7 +8,7 @@
# Package name : perl5
# Source directory : .
-# Configuration time: Tue Feb 24 12:39:16 EST 1998
+# Configuration time: Tue Mar 3 11:39:44 EST 1998
# Configured by : doughera
# Target system : linux fractal 2.0.33 #1 tue feb 3 10:11:46 est 1998 i686 unknown
@@ -30,15 +30,15 @@ afs='false'
alignbytes='4'
aphostname=''
ar='ar'
-archlib='/opt/perl/lib/i686-linux-thread/5.00460'
-archlibexp='/opt/perl/lib/i686-linux-thread/5.00460'
+archlib='/opt/perl/lib/i686-linux-thread/5.00461'
+archlibexp='/opt/perl/lib/i686-linux-thread/5.00461'
archname='i686-linux-thread'
archobjs=''
awk='awk'
baserev='5.0'
bash=''
bin='/opt/perl/bin'
-bincompat3='n'
+bincompat3=''
binexp='/opt/perl/bin'
bison=''
byacc='byacc'
@@ -52,7 +52,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 Feb 24 12:39:16 EST 1998'
+cf_time='Tue Mar 3 11:39:44 EST 1998'
chgrp=''
chmod=''
chown=''
@@ -124,11 +124,16 @@ d_gethent='define'
d_gethname='undef'
d_getlogin='define'
d_getnbyaddr='define'
+d_getnbyname='define'
+d_getpbyname='define'
+d_getpbynumber='define'
d_getpgid='define'
d_getpgrp2='undef'
d_getpgrp='define'
d_getppid='define'
d_getprior='define'
+d_getsbyname='define'
+d_getsbyport='define'
d_gettimeod='define'
d_gnulibc='define'
d_htonl='define'
@@ -157,6 +162,7 @@ d_msgrcv='define'
d_msgsnd='define'
d_mymalloc='undef'
d_nice='define'
+d_oldpthreads='undef'
d_oldsock='undef'
d_open3='define'
d_pathconf='define'
@@ -191,6 +197,7 @@ d_semop='define'
d_setegid='define'
d_seteuid='define'
d_setgrps='define'
+d_sethent='define'
d_setlinebuf='define'
d_setlocale='define'
d_setpgid='define'
@@ -263,6 +270,7 @@ defvoidused='15'
direntrytype='struct dirent'
dlext='so'
dlsrc='dl_dlopen.xs'
+doublesize='8'
dynamic_ext='B DB_File Fcntl GDBM_File IO NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs'
eagain='EAGAIN'
echo='echo'
@@ -347,7 +355,7 @@ i_varhdr='stdarg.h'
i_vfork='undef'
incpath=''
inews=''
-installarchlib='/opt/perl/lib/i686-linux-thread/5.00460'
+installarchlib='/opt/perl/lib/i686-linux-thread/5.00461'
installbin='/opt/perl/bin'
installman1dir='/opt/perl/man/man1'
installman3dir='/opt/perl/man/man3'
@@ -368,7 +376,7 @@ libc=''
libperl='libperl.a'
libpth='/usr/local/lib /lib /usr/lib'
libs='-lnsl -lndbm -lgdbm -ldbm -ldb -ldl -lm -lpthread -lc -lposix -lcrypt'
-libswanted='sfio net socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m pthread c cposix posix ndir dir crypt ucb BSD PW x'
+libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m pthread c cposix posix ndir dir crypt ucb BSD PW x'
line='line'
lint=''
lkflags=''
@@ -411,6 +419,7 @@ netdb_hlen_type='int'
netdb_host_type='const char *'
netdb_name_type='const char *'
netdb_net_type='unsigned long'
+nm='nm'
nm_opt=''
nm_so_opt='--dynamic'
nroff='nroff'
@@ -439,6 +448,7 @@ prefixexp='/opt/perl'
privlib='/opt/perl/lib'
privlibexp='/opt/perl/lib'
prototype='define'
+ptrsize='4'
randbits='31'
ranlib=':'
rd_nodata='-1'
@@ -489,11 +499,12 @@ stdio_filbuf=''
stdio_ptr='((fp)->_IO_read_ptr)'
strings='/usr/include/string.h'
submit=''
-subversion='60'
+subversion='61'
sysman='/usr/man/man1'
tail=''
tar=''
tbl=''
+tee='tee'
test='test'
timeincl='/usr/include/sys/time.h '
timetype='time_t'
@@ -521,5 +532,5 @@ xlibpth='/usr/lib/386 /lib/386'
zcat=''
zip='zip'
PATCHLEVEL=4
-SUBVERSION=60
+SUBVERSION=61
CONFIG=true
diff --git a/Porting/config_H b/Porting/config_H
index ec3fbdba18..8079a38331 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -17,7 +17,7 @@
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Tue Feb 24 12:39:16 EST 1998
+ * Configuration time: Tue Mar 3 11:39:44 EST 1998
* Configured by : doughera
* Target system : linux fractal 2.0.33 #1 tue feb 3 10:11:46 est 1998 i686 unknown
*/
@@ -243,12 +243,6 @@
*/
#define HAS_GETGROUPS /**/
-/* HAS_GETHOSTENT:
- * This symbol, if defined, indicates that the gethostent routine is
- * available to lookup host names in some data base or other.
- */
-#define HAS_GETHOSTENT /**/
-
/* 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
@@ -1471,6 +1465,12 @@
#define HAS_VPRINTF /**/
/*#define USE_CHAR_VSPRINTF / **/
+/* DOUBLESIZE:
+ * This symbol contains the size of a double, so that the C preprocessor
+ * can make decisions based on it.
+ */
+#define DOUBLESIZE 8 /**/
+
/* I_TIME:
* This symbol, if defined, indicates to the C program that it should
* include <time.h>.
@@ -1530,6 +1530,14 @@
#define RD_NODATA -1
#define EOF_NONBLOCK
+/* PTRSIZE:
+ * This symbol contains the size of a pointer, so that the C preprocessor
+ * can make decisions based on it. It will be sizeof(void *) if
+ * the compiler supports (void *); otherwise it will be
+ * sizeof(char *).
+ */
+#define PTRSIZE 4 /**/
+
/* RANDBITS:
* This symbol contains the number of bits of random number the rand()
* function produces. Usual values are 15, 16, and 31.
@@ -1566,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.00460" /**/
-#define ARCHLIB_EXP "/opt/perl/lib/i686-linux-thread/5.00460" /**/
+#define ARCHLIB "/opt/perl/lib/i686-linux-thread/5.00461" /**/
+#define ARCHLIB_EXP "/opt/perl/lib/i686-linux-thread/5.00461" /**/
/* CAT2:
* This macro catenates 2 tokens together.
@@ -1595,6 +1603,58 @@
*/
#define CSH "/bin/csh" /**/
+/* HAS_GETHOSTBYADDR:
+ * This symbol, if defined, indicates that the gethostbyaddr() routine is
+ * available to look up hosts by their IP addresses.
+ */
+#define HAS_GETHOSTBYADDR /**/
+
+/* HAS_GETHOSTBYNAME:
+ * This symbol, if defined, indicates that the gethostbyname() routine is
+ * available to look up host names in some data base or other.
+ */
+#define HAS_GETHOSTBYNAME /**/
+
+/* HAS_GETHOSTENT:
+ * This symbol, if defined, indicates that the gethostent() routine is
+ * available to look up host names in some data base or another.
+ */
+#define HAS_GETHOSTENT /**/
+
+/* HAS_GETNETBYADDR:
+ * This symbol, if defined, indicates that the getnetbyaddr() routine is
+ * available to look up networks by their IP addresses.
+ */
+#define HAS_GETNETBYADDR /**/
+
+/* HAS_GETNETBYNAME:
+ * This symbol, if defined, indicates that the getnetbyname() routine is
+ * available to look up networks by their names.
+ */
+#define HAS_GETNETBYNAME /**/
+
+/* HAS_GETPROTOBYNAME:
+ * This symbol, if defined, indicates that the getprotobyname()
+ * routine is available to look up protocols by their name.
+ */
+/* HAS_GETPROTOBYNUMBER:
+ * This symbol, if defined, indicates that the getprotobynumber()
+ * routine is available to look up protocols by their number.
+ */
+#define HAS_GETPROTOBYNAME /**/
+#define HAS_GETPROTOBYNUMBER /**/
+
+/* HAS_GETSERVBYNAME:
+ * This symbol, if defined, indicates that the getservbyname()
+ * routine is available to look up services by their name.
+ */
+/* HAS_GETSERVBYPORT:
+ * This symbol, if defined, indicates that the getservbyport()
+ * routine is available to look up services by their port.
+ */
+#define HAS_GETSERVBYNAME /**/
+#define HAS_GETSERVBYPORT /**/
+
/* HAS_SETGROUPS:
* This symbol, if defined, indicates that the setgroups() routine is
* available to set the list of process groups. If unavailable, multiple
@@ -1602,6 +1662,12 @@
*/
#define HAS_SETGROUPS /**/
+/* HAS_SETHOSTENT:
+ * This symbol, if defined, indicates that the sethostent() routine is
+ * available.
+ */
+#define HAS_SETHOSTENT /**/
+
/* 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
@@ -1806,6 +1872,11 @@
* This symbol, if defined, indicates that Perl should
* be built to use threads.
*/
+/* OLD_PTHREADS_API:
+ * This symbol, if defined, indicates that Perl should
+ * be built to use the old draft POSIX threads API.
+ */
#define USE_THREADS /**/
+/*#define OLD_PTHREADS_API / **/
#endif
diff --git a/Porting/pumpkin.pod b/Porting/pumpkin.pod
index 885c813dfa..28d428bea4 100644
--- a/Porting/pumpkin.pod
+++ b/Porting/pumpkin.pod
@@ -357,21 +357,41 @@ permissions for system files; something like that might be appropriate.
=head2 Run Configure
This will build a config.sh and config.h. You can skip this if you haven't
-changed Configure or config_h.SH at all.
+changed Configure or config_h.SH at all. I use the following command
-=head2 Update Porting/config_H
+ sh Configure -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' \
+ -des
-[This section needs revision. We're currently working on easing
-the task of keeping the vms, win32, and plan9 config.sh info
-up-to-date.]
+=head2 Update Porting/config.sh and Porting/config_H
-The Porting/config_H file is provided to help those folks who can't
-run Configure. It is important to keep it up-to-date. If you have
-changed config_h.SH, those changes must be reflected in config_H as well.
-(The name config_H was chosen to distinguish the file from config.h even
-on case-insensitive file systems.) Simply edit the existing config_H
-file; keep the first few explanatory lines and then copy your new
-config.h below.
+[XXX
+This section needs revision. We're currently working on easing
+the task of keeping the vms, win32, and plan9 config.sh info
+up-to-date. The plan is to use keep up-to-date 'canned' config.sh
+files in the appropriate subdirectories and then generate 'canned'
+config.h files for vms, win32, etc. from the generic config.sh file.
+This is to ease maintenance. When Configure gets updated, the parts
+sometimes get scrambled around, and the changes in config_H can
+sometimes be very hard to follow. config.sh, on the other hand, can
+safely be sorted, so it's easy to track (typically very small) changes
+to config.sh and then propoagate them to a canned 'config.h' by any
+number of means, including a perl script in win32/ or carrying
+config.sh and config_h.SH to a Unix system and running sh
+config_h.SH.)
+XXX]
+
+The Porting/config.sh and Porting/config_H files are provided to
+help those folks who can't run Configure. It is important to keep
+them up-to-date. If you have changed config_h.SH, those changes must
+be reflected in config_H as well. (The name config_H was chosen to
+distinguish the file from config.h even on case-insensitive file systems.)
+Simply edit the existing config_H file; keep the first few explanatory
+lines and then copy your new config.h below.
It may also be necessary to update vms/config.vms and
plan9/config.plan9, though you should be quite careful in doing so if
@@ -1184,4 +1204,4 @@ All opinions expressed herein are those of the authorZ<>(s).
=head1 LAST MODIFIED
-$Id: pumpkin.pod,v 1.13 1997/08/28 18:26:40 doughera Released $
+$Id: pumpkin.pod,v 1.14 1998/03/03 17:14:47 doughera Released $
diff --git a/config_h.SH b/config_h.SH
index f74da6286c..138e08a642 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -257,12 +257,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_getgrps HAS_GETGROUPS /**/
-/* HAS_GETHOSTENT:
- * This symbol, if defined, indicates that the gethostent routine is
- * available to lookup host names in some data base or other.
- */
-#$d_gethent HAS_GETHOSTENT /**/
-
/* 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
@@ -1485,6 +1479,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#$d_vprintf HAS_VPRINTF /**/
#$d_charvspr USE_CHAR_VSPRINTF /**/
+/* DOUBLESIZE:
+ * This symbol contains the size of a double, so that the C preprocessor
+ * can make decisions based on it.
+ */
+#define DOUBLESIZE $doublesize /**/
+
/* I_TIME:
* This symbol, if defined, indicates to the C program that it should
* include <time.h>.
@@ -1544,6 +1544,14 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#define RD_NODATA $rd_nodata
#$d_eofnblk EOF_NONBLOCK
+/* PTRSIZE:
+ * This symbol contains the size of a pointer, so that the C preprocessor
+ * can make decisions based on it. It will be sizeof(void *) if
+ * the compiler supports (void *); otherwise it will be
+ * sizeof(char *).
+ */
+#define PTRSIZE $ptrsize /**/
+
/* RANDBITS:
* This symbol contains the number of bits of random number the rand()
* function produces. Usual values are 15, 16, and 31.
@@ -1609,6 +1617,58 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_csh CSH "$full_csh" /**/
+/* HAS_GETHOSTBYADDR:
+ * This symbol, if defined, indicates that the gethostbyaddr() routine is
+ * available to look up hosts by their IP addresses.
+ */
+#$d_gethbyaddr HAS_GETHOSTBYADDR /**/
+
+/* HAS_GETHOSTBYNAME:
+ * This symbol, if defined, indicates that the gethostbyname() routine is
+ * available to look up host names in some data base or other.
+ */
+#$d_gethbyname HAS_GETHOSTBYNAME /**/
+
+/* HAS_GETHOSTENT:
+ * This symbol, if defined, indicates that the gethostent() routine is
+ * available to look up host names in some data base or another.
+ */
+#$d_gethent HAS_GETHOSTENT /**/
+
+/* HAS_GETNETBYADDR:
+ * This symbol, if defined, indicates that the getnetbyaddr() routine is
+ * available to look up networks by their IP addresses.
+ */
+#$d_getnbyaddr HAS_GETNETBYADDR /**/
+
+/* HAS_GETNETBYNAME:
+ * This symbol, if defined, indicates that the getnetbyname() routine is
+ * available to look up networks by their names.
+ */
+#$d_getnbyname HAS_GETNETBYNAME /**/
+
+/* HAS_GETPROTOBYNAME:
+ * This symbol, if defined, indicates that the getprotobyname()
+ * routine is available to look up protocols by their name.
+ */
+/* HAS_GETPROTOBYNUMBER:
+ * This symbol, if defined, indicates that the getprotobynumber()
+ * routine is available to look up protocols by their number.
+ */
+#$d_getpbyname HAS_GETPROTOBYNAME /**/
+#$d_getpbynumber HAS_GETPROTOBYNUMBER /**/
+
+/* HAS_GETSERVBYNAME:
+ * This symbol, if defined, indicates that the getservbyname()
+ * routine is available to look up services by their name.
+ */
+/* HAS_GETSERVBYPORT:
+ * This symbol, if defined, indicates that the getservbyport()
+ * routine is available to look up services by their port.
+ */
+#$d_getsbyname HAS_GETSERVBYNAME /**/
+#$d_getsbyport HAS_GETSERVBYPORT /**/
+
/* HAS_SETGROUPS:
* This symbol, if defined, indicates that the setgroups() routine is
* available to set the list of process groups. If unavailable, multiple
@@ -1616,6 +1676,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_setgrps HAS_SETGROUPS /**/
+/* HAS_SETHOSTENT:
+ * This symbol, if defined, indicates that the sethostent() routine is
+ * available.
+ */
+#$d_sethent HAS_SETHOSTENT /**/
+
/* 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
@@ -1820,7 +1886,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
* This symbol, if defined, indicates that Perl should
* be built to use threads.
*/
+/* OLD_PTHREADS_API:
+ * This symbol, if defined, indicates that Perl should
+ * be built to use the old draft POSIX threads API.
+ */
#$usethreads USE_THREADS /**/
+#$d_oldpthreads OLD_PTHREADS_API /**/
#endif
!GROK!THIS!
diff --git a/handy.h b/handy.h
index 51824f3180..3daf767055 100644
--- a/handy.h
+++ b/handy.h
@@ -96,7 +96,15 @@
# endif
# endif
#endif
- For the moment, these are mentioned here so metaconfig will
+
+ except that still won't work if a system has no integral type
+ with a size that is 32 bytes.
+
+ 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.
+
+ For the moment, these are only mentioned here so metaconfig will
construct Configure to figure out the various sizes.
*/
diff --git a/hints/README.hints b/hints/README.hints
index 2c27068e38..e36bd6d1dd 100644
--- a/hints/README.hints
+++ b/hints/README.hints
@@ -1,17 +1,24 @@
+=head1 NAME
+
+README.hints
+
+=head1 DESCRIPTION
+
These files are used by Configure to set things which Configure either
can't or doesn't guess properly. Most of these hint files have been
tested with at least some version of perl5, but some are still left
-over from perl4. I would appreciate hearing about any problems
-or suggested changes.
+over from perl4.
+
+Please send any problems or suggested changes to perlbug@perl.com.
Hint file naming convention: Each hint file name should have only
-one '.'. (This is for portability to non-unix filesystems.) Names
+one '.'. (This is for portability to non-unix file systems.) Names
should also fit in <= 14 characters, for portability to older SVR3
systems. File names are of the form $osname_$osvers.sh, with all '.'
-changed to '_', and all characters such as '/' that don't belong in
+changed to '_', and all characters (such as '/') that don't belong in
Unix filenames omitted.
-For example, consider SunOS 4.1.3. Configure determines $osname=sunos
+For example, consider Sun OS 4.1.3. Configure determines $osname=sunos
(all names are converted to lower case) and $osvers=4.1.3. Configure
will search for an appropriate hint file in the following order:
@@ -22,18 +29,185 @@ will search for an appropriate hint file in the following order:
If you need to create a hint file, please try to use as general a name
as possible and include minor version differences inside case or test
-statements. Be sure also to include a default choice. (See
-aix.sh for one example.) That way, if you write a hint file for
-foonix 3.2, it might still work without any changes when foonix 3.3 is
-released.
+statements. For example, for IRIX 6.X, we have the following hints
+files:
+
+ irix_6_0.sh
+ irix_6_1.sh
+ irix_6.sh
+
+That is, 6.0 and 6.1 have their own special hints, but 6.2, 6.3, and
+up are all handled by the same irix_6.sh. That way, we don't have to
+make a new hint file every time the IRIX O/S is upgraded.
+
+If you need to test for specific minor version differences in your
+hints file, be sure to include a default choice. (See aix.sh for one
+example.) That way, if you write a hint file for foonix 3.2, it might
+still work without any changes when foonix 3.3 is released.
Please also comment carefully on why the different hints are needed.
That way, a future version of Configure may be able to automatically
-detect what is needed. A glossary of config.sh variables is in the
-file Porting/Glossary.
+detect what is needed.
+
+A glossary of config.sh variables is in the file Porting/Glossary.
+
+=head1 Hint file tricks
+
+=head2 Printing critical messages
+
+[This is still experimental]
+
+If you have a *REALLY* important message that the user ought to see at
+the end of the Configure run, you can store it in the file
+'config.msg'. At the end of the Configure run, Configure will display
+the contents of this file. Currently, the only place this is used is
+in Configure itself to warn about the need to set LD_LIBRARY_PATH if
+you are building a shared libperl.so.
+
+To use this feature, just do something like the following
+
+ $cat <<EOM | $tee -a ../config.msg >&4
+
+ This is a really important message. Be sure to read it
+ before you type 'make'.
+ EOM
+
+This message will appear on the screen as the hint file is being
+processed and again at the end of Configure.
+
+Please use this sparingly.
+
+=head2 Propagating variables to config.sh
+
+Sometimes, you want an extra variable to appear in config.sh. For
+example, if your system can't compile toke.c with the optimizer on,
+you can put
+
+ toke_cflags='optimize=""'
+
+at the beginning of a line in your hints file. Configure will then
+extract that variable and place it in your config.sh file. Later,
+while compiling toke.c, the cflags shell script will eval $toke_cflags
+and hence compile toke.c without optimization.
+
+Note that for this to work, the variable you want to propagate must
+appear in the first column of the hint file. It is extracted by
+Configure with a simple sed script, so beware that surrounding case
+statements aren't any help.
+
+By contrast, if you don't want Configure to propagate your temporary
+variable, simply indent it by a leading tab in your hint file.
+
+For example, prior to 5.002, a bug in scope.c led to perl crashing
+when compiled with -O in AIX 4.1.1. The following "obvious"
+workaround in hints/aix.sh wouldn't work as expected:
+
+ case "$osvers" in
+ 4.1.1)
+ scope_cflags='optimize=""'
+ ;;
+ esac
+
+because Configure doesn't parse the surrounding 'case' statement, it
+just blindly propagates any variable that starts in the first column.
+For this particular case, that's probably harmless anyway.
+
+Three possible fixes are:
+
+=over
+
+=item 1
+
+Create an aix_4_1_1.sh hint file that contains the scope_cflags
+line and then sources the regular aix hints file for the rest of
+the information.
+
+=item 2
+
+Do the following trick:
+
+ scope_cflags='case "$osvers" in 4.1*) optimize=" ";; esac'
+
+Now when $scope_cflags is eval'd by the cflags shell script, the
+case statement is executed. Of course writing scripts to be eval'd is
+tricky, especially if there is complex quoting. Or,
+
+=item 3
+
+Write directly to Configure's temporary file UU/config.sh.
+You can do this with
+
+ case "$osvers" in
+ 4.1.1)
+ echo "scope_cflags='optimize=\"\"'" >> UU/config.sh
+ scope_cflags='optimize=""'
+ ;;
+ esac
+
+Note you have to both write the definition to the temporary
+UU/config.sh file and set the variable to the appropriate value.
+
+This is sneaky, but it works. Still, if you need anything this
+complex, perhaps you should create the separate hint file for
+aix 4.1.1.
+
+=back
+
+=head2 Call-backs
+
+=over 4
+
+=item Warning
+
+All of the following is experimental and subject to change. But it
+probably won't change much. :-)
+
+=item Compiler-related flags
+
+The settings of some things, such as optimization flags, may depend on
+the particular compiler used. For example, for ISC we have the
+following:
+
+ case "$cc" in
+ *gcc*) ccflags="$ccflags -posix"
+ ldflags="$ldflags -posix"
+ ;;
+ *) ccflags="$ccflags -Xp -D_POSIX_SOURCE"
+ ldflags="$ldflags -Xp"
+ ;;
+ esac
+
+However, the hints file is processed before the user is asked which
+compiler should be used. Thus in order for these hints to be useful,
+the user must specify sh Configure -Dcc=gcc on the command line, as
+advised by the INSTALL file.
+
+For versions of perl later than 5.004_61, this problem can
+be circumvented by the use of "call-back units". That is, the hints
+file can tuck this information away into a file UU/cc.cbu. Then,
+after Configure prompts the user for the C compiler, it will load in
+and run the UU/cc.cbu "call-back" unit. See hints/solaris_2.sh for an
+example.
+
+=item Threading-related flags
+
+Similarly, after Configure prompts the user about whether or not to
+compile Perl with threads, it will look for a "call-back" unit
+usethreads.cbu. See hints/linux.sh for an example.
+
+=item Future status
+
+I hope this "call-back" scheme is simple enough to use but powerful
+enough to deal with most situations. Still, there are certainly cases
+where it's not enough. For example, for aix we actually change
+compilers if we are using threads.
+
+I'd appreciate feedback on whether this is sufficiently general to be
+helpful, or whether we ought to simply continue to require folks to
+say things like "sh Configure -Dcc=gcc -Dusethreads" on the command line.
+
+=back
Have the appropriate amount of fun :-)
Andy Dougherty doughera@lafcol.lafayette.edu
- Dept. of Physics
- Lafayette College, Easton PA 18042
diff --git a/hints/aix.sh b/hints/aix.sh
index 076eed5769..bc26590291 100644
--- a/hints/aix.sh
+++ b/hints/aix.sh
@@ -48,12 +48,6 @@ esac
d_setregid='undef'
d_setreuid='undef'
-# The optimizer in 4.1.1 apparently generates bad code for scope.c.
-# Configure doesn't offer an easy way to propagate extra variables
-# only for certain cases, so the following contortion is required:
-# This is probably not needed in 5.002 and later.
-# scope_cflags='case "$osvers" in 4.1*) optimize=" ";; esac'
-
# Changes for dynamic linking by Wayne Scott <wscott@ichips.intel.com>
#
# Tell perl which symbols to export for dynamic linking.
diff --git a/hints/linux.sh b/hints/linux.sh
index 1ddbca1964..7347945c48 100644
--- a/hints/linux.sh
+++ b/hints/linux.sh
@@ -30,7 +30,8 @@ esac
ccflags="-Dbool=char -DHAS_BOOL $ccflags"
# BSD compatability library no longer needed
-set `echo X "$libswanted "| sed -e 's/ bsd / /'`
+# 'kaffe' has a /usr/lib/libnet.so which is not at all relevent for perl.
+set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ net / /'`
shift
libswanted="$*"
@@ -194,7 +195,12 @@ fi
# it should be:
# ccdlflags='-Wl,-E'
-if [ "X$usethreads" != "X" ]; then
+# XXX EXPERIMENTAL A.D. 2/27/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|true|[yY]*)
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
@@ -203,4 +209,7 @@ if [ "X$usethreads" != "X" ]; then
set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
shift
libswanted="$*"
-fi
+ ;;
+esac
+EOSH
+# XXX EXPERIMENTAL --end of call-back
diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh
index 55d0416388..7f7a85680c 100644
--- a/hints/solaris_2.sh
+++ b/hints/solaris_2.sh
@@ -116,6 +116,10 @@ END
fi
rm -f make.vers
+# XXX EXPERIMENTAL A.D. 2/27/1998
+# XXX This script UU/cc.cbu will get 'called-back' by Configure after it
+# XXX has prompted the user for the C compiler to use.
+cat > UU/cc.cbu <<'EOSH'
# If the C compiler is gcc:
# - check the fixed-includes
# - check as(1) and ld(1), they should not be GNU
@@ -223,6 +227,9 @@ fi
# as --version or ld --version might dump core.
rm -f core
+# XXX
+EOSH
+
if [ "X$usethreads" != "X" ]; then
ccflags="-D_REENTRANT $ccflags"
# -lpthread needs to come before -lc but after other libraries such
diff --git a/hints/unicos.sh b/hints/unicos.sh
index b864019a84..1d828550cc 100644
--- a/hints/unicos.sh
+++ b/hints/unicos.sh
@@ -4,4 +4,7 @@ esac
optimize="-O1"
d_setregid='undef'
d_setreuid='undef'
+case "$usemymalloc" in
+'') usemymalloc='n' ;;
+esac
diff --git a/makedepend.SH b/makedepend.SH
index dceca0baee..3c7ffe4f6b 100755
--- a/makedepend.SH
+++ b/makedepend.SH
@@ -115,7 +115,7 @@ for file in `$cat .clist`; do
-e 's|\\$||' \
-e p \
-e '}' ) >UU/$file.c
- $cppstdin $finc -I/usr/local/include -I. $cppflags $cppminus <UU/$file.c |
+ $cppstdin $finc -I. $cppflags $cppminus <UU/$file.c |
$sed \
-e '/^#.*<stdin>/d' \
-e '/^#.*"-"/d' \
diff --git a/myconfig b/myconfig
index 86da2edce8..858c87cbd4 100755
--- a/myconfig
+++ b/myconfig
@@ -24,7 +24,7 @@ Summary of my $package ($baserev patchlevel $PATCHLEVEL subversion $SUBVERSION)
osname=$osname, osvers=$osvers, archname=$archname
uname='$myuname'
hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction
- bincompat3=$bincompat3 useperlio=$useperlio d_sfio=$d_sfio
+ usethreads=$usethreads useperlio=$useperlio d_sfio=$d_sfio
Compiler:
cc='$cc', optimize='$optimize', gccversion=$gccversion
cppflags='$cppflags'
diff --git a/pp_sys.c b/pp_sys.c
index c273c8c5b2..8058fb2656 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -3584,7 +3584,7 @@ PP(pp_semop)
PP(pp_ghbyname)
{
-#ifdef HAS_SOCKET
+#ifdef HAS_GETHOSTBYNAME
return pp_ghostent(ARGS);
#else
DIE(no_sock_func, "gethostbyname");
@@ -3593,7 +3593,7 @@ PP(pp_ghbyname)
PP(pp_ghbyaddr)
{
-#ifdef HAS_SOCKET
+#ifdef HAS_GETHOSTBYADDR
return pp_ghostent(ARGS);
#else
DIE(no_sock_func, "gethostbyaddr");
@@ -3603,7 +3603,7 @@ PP(pp_ghbyaddr)
PP(pp_ghostent)
{
djSP;
-#ifdef HAS_SOCKET
+#if defined(HAS_GETHOSTBYNAME) || defined(HAS_GETHOSTBYADDR) || defined(HAS_GETHOSTENT)
I32 which = op->op_type;
register char **elem;
register SV *sv;
@@ -3687,7 +3687,7 @@ PP(pp_ghostent)
PP(pp_gnbyname)
{
-#ifdef HAS_SOCKET
+#ifdef HAS_GETNETBYNAME
return pp_gnetent(ARGS);
#else
DIE(no_sock_func, "getnetbyname");
@@ -3696,7 +3696,7 @@ PP(pp_gnbyname)
PP(pp_gnbyaddr)
{
-#ifdef HAS_SOCKET
+#ifdef HAS_GETNETBYADDR
return pp_gnetent(ARGS);
#else
DIE(no_sock_func, "getnetbyaddr");
@@ -3706,7 +3706,7 @@ PP(pp_gnbyaddr)
PP(pp_gnetent)
{
djSP;
-#ifdef HAS_SOCKET
+#if defined(HAS_GETNETBYNAME) || defined(HAS_GETNETBYADDR) || defined(HAS_GETNETENT)
I32 which = op->op_type;
register char **elem;
register SV *sv;
@@ -3762,7 +3762,7 @@ PP(pp_gnetent)
PP(pp_gpbyname)
{
-#ifdef HAS_SOCKET
+#ifdef HAS_GETPROTOBYNAME
return pp_gprotoent(ARGS);
#else
DIE(no_sock_func, "getprotobyname");
@@ -3771,7 +3771,7 @@ PP(pp_gpbyname)
PP(pp_gpbynumber)
{
-#ifdef HAS_SOCKET
+#ifdef HAS_GETPROTOBYNUMBER
return pp_gprotoent(ARGS);
#else
DIE(no_sock_func, "getprotobynumber");
@@ -3781,7 +3781,7 @@ PP(pp_gpbynumber)
PP(pp_gprotoent)
{
djSP;
-#ifdef HAS_SOCKET
+#if defined(HAS_GETPROTOBYNAME) || defined(HAS_GETPROTOBYNUMBER) || defined(HAS_GETPROTOENT)
I32 which = op->op_type;
register char **elem;
register SV *sv;
@@ -3834,7 +3834,7 @@ PP(pp_gprotoent)
PP(pp_gsbyname)
{
-#ifdef HAS_SOCKET
+#ifdef HAS_GETSERVICEBYNAME
return pp_gservent(ARGS);
#else
DIE(no_sock_func, "getservbyname");
@@ -3843,7 +3843,7 @@ PP(pp_gsbyname)
PP(pp_gsbyport)
{
-#ifdef HAS_SOCKET
+#ifdef HAS_GETSERVICEBYPORT
return pp_gservent(ARGS);
#else
DIE(no_sock_func, "getservbyport");
@@ -3853,7 +3853,7 @@ PP(pp_gsbyport)
PP(pp_gservent)
{
djSP;
-#ifdef HAS_SOCKET
+#if defined(HAS_GETSERVBYNAME) || defined(HAS_GETSERVBYPORT) || defined(HAS_GETSERVENT)
I32 which = op->op_type;
register char **elem;
register SV *sv;
@@ -3932,7 +3932,7 @@ PP(pp_gservent)
PP(pp_shostent)
{
djSP;
-#ifdef HAS_SOCKET
+#ifdef HAS_SETHOSTENT
sethostent(TOPi);
RETSETYES;
#else
@@ -3943,7 +3943,7 @@ PP(pp_shostent)
PP(pp_snetent)
{
djSP;
-#ifdef HAS_SOCKET
+#ifdef HAS_SETNETENT
setnetent(TOPi);
RETSETYES;
#else
@@ -3954,7 +3954,7 @@ PP(pp_snetent)
PP(pp_sprotoent)
{
djSP;
-#ifdef HAS_SOCKET
+#ifdef HAS_SETPROTOENT
setprotoent(TOPi);
RETSETYES;
#else
@@ -3965,7 +3965,7 @@ PP(pp_sprotoent)
PP(pp_sservent)
{
djSP;
-#ifdef HAS_SOCKET
+#ifdef HAS_SETSERVENT
setservent(TOPi);
RETSETYES;
#else
@@ -3976,7 +3976,7 @@ PP(pp_sservent)
PP(pp_ehostent)
{
djSP;
-#ifdef HAS_SOCKET
+#ifdef HAS_ENDHOSTENT
endhostent();
EXTEND(sp,1);
RETPUSHYES;
@@ -3988,7 +3988,7 @@ PP(pp_ehostent)
PP(pp_enetent)
{
djSP;
-#ifdef HAS_SOCKET
+#ifdef HAS_ENDNETENT
endnetent();
EXTEND(sp,1);
RETPUSHYES;
@@ -4000,7 +4000,7 @@ PP(pp_enetent)
PP(pp_eprotoent)
{
djSP;
-#ifdef HAS_SOCKET
+#ifdef HAS_ENDPROTOENT
endprotoent();
EXTEND(sp,1);
RETPUSHYES;
@@ -4012,7 +4012,7 @@ PP(pp_eprotoent)
PP(pp_eservent)
{
djSP;
-#ifdef HAS_SOCKET
+#ifdef HAS_ENDSERVENT
endservent();
EXTEND(sp,1);
RETPUSHYES;