summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfigure319
-rw-r--r--INSTALL34
-rw-r--r--Policy_sh.SH26
-rw-r--r--config_h.SH18
-rw-r--r--perl.h2
-rw-r--r--pod/perldelta.pod36
6 files changed, 289 insertions, 146 deletions
diff --git a/Configure b/Configure
index b801ab8de9..126ff93ddb 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 Thu Feb 24 20:37:06 EET 2000 [metaconfig 3.0 PL70]
+# Generated on Fri Feb 25 07:45:17 EET 2000 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.com)
cat >/tmp/c1$$ <<EOF
@@ -415,6 +415,7 @@ d_longdbl=''
longdblsize=''
d_longlong=''
longlongsize=''
+d_lseekproto=''
d_lstat=''
d_mblen=''
d_mbstowcs=''
@@ -777,8 +778,10 @@ api_subversion=''
api_version=''
api_versionstring=''
patchlevel=''
+revision=''
subversion=''
version=''
+perl5=''
perladmin=''
perlpath=''
d_nv_preserves_uv=''
@@ -879,6 +882,7 @@ uidsize=''
uidtype=''
archname64=''
use64bits=''
+usefull64bits=''
uselargefiles=''
uselongdouble=''
usemorebits=''
@@ -1879,7 +1883,6 @@ ln
more
nm
nroff
-perl
pg
test
uname
@@ -2727,6 +2730,7 @@ EOM
$define|true|[yY]*) dflt='y';;
*) dflt='n';;
esac
+ echo " "
echo "If this doesn't make any sense to you, just accept the default '$dflt'."
rp='Build Perl for multiplicity?'
. ./myread
@@ -4221,7 +4225,7 @@ set off_t lseektype long stdio.h sys/types.h
eval $typedef_ask
echo " "
-$echo $n "Checking to see how big your file offsets are...$c" >&4
+echo "Checking to see how big your file offsets are..." >&4
$cat >try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
@@ -4234,7 +4238,7 @@ EOCP
set try
if eval $compile_ok; then
lseeksize=`./try`
- $echo " $lseeksize bytes." >&4
+ echo "Your file offsets are $lseeksize bytes long."
else
dflt=$longsize
echo " "
@@ -4255,7 +4259,7 @@ case "$fpostype" in
*_t) zzz="$fpostype" ;;
*) zzz="fpos_t" ;;
esac
-$echo $n "Checking the size of $zzz...$c" >&4
+echo "Checking the size of $zzz..." >&4
cat > try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
@@ -4269,11 +4273,10 @@ if eval $compile_ok; then
yyy=`./try`
case "$yyy" in
'') fpossize=4
- echo " " >&4
echo "(I can't execute the test program--guessing $fpossize.)" >&4
;;
*) fpossize=$yyy
- echo " $fpossize bytes." >&4
+ echo "Your $zzz is bytes long." >&4
;;
esac
else
@@ -4323,7 +4326,7 @@ case "$uselargefiles" in
echo "Your platform has some specific hints for large file builds, using them..."
. ./uselfs.cbu
echo " "
- $echo $n "Rechecking to see how big your file offsets are...$c" >&4
+ echo "Rechecking to see how big your file offsets are..." >&4
$cat >try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
@@ -4336,7 +4339,7 @@ EOCP
set try
if eval $compile_ok; then
lseeksize=`./try`
- $echo " $lseeksize bytes." >&4
+ $echo "Your file offsets are now $lseeksize bytes long."
else
dflt="$lseeksize"
echo " "
@@ -4367,7 +4370,7 @@ EOCP
echo "(I can't execute the test program--guessing $fpossize.)" >&4
;;
*) fpossize=$yyy
- echo " $fpossize bytes."
+ echo " $fpossize bytes." >&4
;;
esac
else
@@ -4395,28 +4398,40 @@ case "$usemorebits" in
esac
-case "$intsize:$longsize" in
-8:*|*:8) cat <<EOM
+# Backward compatibility (uselonglong is deprecated).
+case "$uselonglong" in
+"$define"|true|[yY]*)
+ cat <<EOM >&4
+
+*** Configure -Duselonglong is deprecated, using the -Duse64bits instead.
-You have natively 64-bit integers.
+EOM
+ use64bits="$define"
+ ;;
+esac
+case "$ccflags" in
+*-DUSE_LONG_LONG*|*-DUSE_64_BITS*|*-DUSE_FULL_64_BITS*) use64bits="$define";;
+esac
+case "$usefull64bits" in
+"$define"|true|[yY]*) use64bits="$define" ;;
+esac
+
+case "$longsize" in
+8) cat <<EOM
+
+You have natively 64-bit long integers.
EOM
val="$define"
;;
-*) case "$ccflags" in
- *-DUSE_64_BITS*|*-DUSE_LONG_LONG*) use64bits="$define";;
- *) case "$uselonglong" in
- $define|true|[yY]*) use64bits="$define";;
- esac
- ;;
- esac
- case "$use64bits" in
- $define|true|[yY]*) dflt='y';;
+*) case "$use64bits" in
+ "$define"|true|[yY]*) dflt='y';;
*) dflt='n';;
esac
-cat <<EOM
+ cat <<EOM
Perl can be built to take advantage of 64-bit integer types
on some systems. To do so, Configure can be run with -Duse64bits.
+Choosing this option will most probably introduce binary incompatibilities.
If this doesn't make any sense to you, just accept the default '$dflt'.
EOM
@@ -4431,9 +4446,39 @@ esac
set use64bits
eval $setvar
-case "$archname64" in
-'') archname64='' ;; # not a typo
-esac
+case "$usefull64bits" in
+"$define"|true|[yY]*) val="$define" ;;
+*) case "$use64bits" in
+ "$define") case "$longsize" in
+ 4) dflt='n'
+ cat <<EOM
+
+Since you chose 64-bitness you may want to try maximal 64-bitness.
+What you have chosen is minimal 64-bitness which means just enough
+to get 64-bit integers. The maximal means using as much 64-bitness
+as is possible on the platform. This in turn means even more binary
+incompatibilities. On the other hand, your platform may not have
+any more maximal 64-bitness than what you already have chosen.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+ rp='Try to use full 64-bit support, if available?'
+ . ./myread
+ case "$ans" in
+ [yY]*) val="$define" ;;
+ *) val="$undef" ;;
+ esac
+ ;;
+ 8) val="$define" ;;
+ *) val="$undef" ;;
+ esac
+ ;;
+ *) val="$undef" ;;
+ esac
+ ;;
+esac
+set usefull64bits
+eval $setvar
case "$use64bits" in
"$define"|true|[yY]*)
@@ -4443,30 +4488,39 @@ case "$use64bits" in
if $test -f use64bits.cbu; then
echo "Your platform has some specific hints for 64-bit builds, using them..."
. ./use64bits.cbu
- else
- $cat <<EOM
-(Your platform doesn't have any specific hints for 64-bit builds.)
-EOM
- case "$intsize:$longsize" in
-8:*|*:8) cat <<EOM
-(This is probably okay, as your system is a natively 64-bit system.)
-EOM
- ;;
- esac
- case "$gccversion" in
- '') ;;
- *) case "$ccflags" in
- *-DUSE_64_BITS*) ;;
- *) $cat <<EOM
-But since you seem to be using gcc, I will now add -DUSE_64_BITS
-to the compilation flags to get long longs.
-EOM
- ccflags="$ccflags -DUSE_64_BITS"
- ;;
- esac
- ;;
- esac
fi
+ case "$longsize" in
+ 4) case "$ccflags" in
+ *-DUSE_64_BITS*) ;;
+ *) ccflags="$ccflags -DUSE_64_BITS";;
+ esac
+ case "$archname64" in
+ '') archname64=64 ;;
+ esac
+ ;;
+ esac
+ ;;
+esac
+
+case "$usefull64bits" in
+"$define"|true|[yY]*)
+: Look for a hint-file generated 'call-back-unit'. If the
+: user has specified that a full 64-bit perl is to be built,
+: we may need to set or change some other defaults.
+ if $test -f usefull64bits.cbu; then
+ echo "Your platform has some specific hints for full 64-bit builds, using them..."
+ . ./usefull64bits.cbu
+ fi
+ case "$longsize" in
+ 4) case "$ccflags" in
+ *-DUSE_FULL_64_BITS*) ;;
+ *) ccflags="$ccflags -DUSE_FULL_64_BITS";;
+ esac
+ case "$archname64" in
+ ''|64) archname64=full64 ;;
+ esac
+ ;;
+ esac
;;
esac
@@ -4654,44 +4708,39 @@ prefixit='case "$3" in
esac;;
esac'
-: set the base revision
-baserev=5.0
-
: get the patchlevel
echo " "
echo "Getting the current patchlevel..." >&4
if $test -r $rsrc/patchlevel.h;then
+ revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h`
patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
else
+ revision=0
patchlevel=0
subversion=0
api_revision=0
api_version=0
api_subversion=0
fi
-$echo $n "(You have $package" $c
-case "$package" in
-"*$baserev") ;;
-*) $echo $n " $baserev" $c ;;
-esac
+$echo $n "(You have $package revision $revision" $c
$echo $n " patchlevel $patchlevel" $c
test 0 -eq "$subversion" || $echo $n " subversion $subversion" $c
echo ".)"
case "$osname" in
dos|vms)
: XXX Should be a Configure test for double-dots in filenames.
- version=`echo $baserev $patchlevel $subversion | \
+ version=`echo $revision $patchlevel $subversion | \
$awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
api_versionstring=`echo $api_revision $api_version $api_subversion | \
$awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
;;
*)
- version=`echo $baserev $patchlevel $subversion | \
+ version=`echo $revision $patchlevel $subversion | \
$awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
api_versionstring=`echo $api_revision $api_version $api_subversion | \
$awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
@@ -5146,7 +5195,12 @@ EOM
rp='Do you want to configure vendor-specific add-on directories?'
case "$usevendorprefix" in
define|true|[yY]*) dflt=y ;;
-*) dflt=n ;;
+*) : User may have set vendorprefix directly on Configure command line.
+ case "$vendorprefix" in
+ ''|' ') dflt=n ;;
+ *) dflt=y ;;
+ esac
+ ;;
esac
. ./myread
case "$ans" in
@@ -5157,6 +5211,7 @@ case "$ans" in
*) dflt=$vendorprefix ;;
esac
. ./getfile
+ : XXX Prefixit unit does not yet support siteprefix and vendorprefix
oldvendorprefix=''
case "$vendorprefix" in
'') ;;
@@ -5184,24 +5239,30 @@ case "$vendorprefix" in
*) d_vendorlib="$define"
: determine where vendor-supplied modules go.
: Usual default is /usr/local/lib/perl5/vendor_perl/$version
- prog=`echo $package | $sed 's/-*[0-9.]*$//'`
- case "$installstyle" in
- *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
- *) dflt=$vendorprefix/lib/vendor_$prog/$version ;;
+ case "$vendorlib" in
+ '')
+ prog=`echo $package | $sed 's/-*[0-9.]*$//'`
+ case "$installstyle" in
+ *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
+ *) dflt=$vendorprefix/lib/vendor_$prog/$version ;;
+ esac
+ ;;
+ *) dflt="$vendorlib"
+ ;;
esac
fn=d~+
rp='Pathname for the vendor-supplied library files?'
. ./getfile
vendorlib="$ans"
vendorlibexp="$ansexp"
- : Change installation prefix, if necessary.
- if $test X"$prefix" != X"$installprefix"; then
- installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
- else
- installvendorlib="$vendorlibexp"
- fi
;;
esac
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+ installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
+else
+ installvendorlib="$vendorlibexp"
+fi
: Cruising for prototypes
echo " "
@@ -5264,6 +5325,28 @@ else
installbin="$binexp"
fi
+: Find perl5.005 or later.
+echo "Looking for a previously installed perl5.005 or later... "
+case "$perl5" in
+'') for tdir in `echo "$binexp:$PATH" | $sed "s/$path_sep/ /g"`; do
+ : Check if this perl is recent and can load a simple module
+ if $test -x $tdir/perl && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
+ perl5=$tdir/perl
+ break;
+ elif $test -x $tdir/perl5 && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
+ perl5=$tdir/perl
+ break;
+ fi
+ done
+ ;;
+*) perl5="$perl5"
+ ;;
+esac
+case "$perl5" in
+'') echo "None found. That's ok.";;
+*) echo "Using $perl5." ;;
+esac
+
$cat <<EOM
After $package is installed, you may wish to install various
@@ -5287,11 +5370,11 @@ case "$siteprefix" in
*) dflt=$siteprefix ;;
esac
. ./getfile
+: XXX Prefixit unit does not yet support siteprefix and vendorprefix
oldsiteprefix=''
case "$siteprefix" in
'') ;;
-*)
- case "$ans" in
+*) case "$ans" in
"$prefix") ;;
*) oldsiteprefix="$prefix";;
esac
@@ -5305,9 +5388,14 @@ siteprefixexp="$ansexp"
: The default "style" setting is made in installstyle.U
: XXX No longer works with Prefixit stuff.
prog=`echo $package | $sed 's/-*[0-9.]*$//'`
-case "$installstyle" in
-*lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
-*) dflt=$siteprefix/lib/site_$prog/$version ;;
+case "$sitelib" in
+'') case "$installstyle" in
+ *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
+ *) dflt=$siteprefix/lib/site_$prog/$version ;;
+ esac
+ ;;
+*) dflt="$sitelib"
+ ;;
esac
$cat <<EOM
@@ -5324,14 +5412,14 @@ sitelib="$ans"
sitelibexp="$ansexp"
: Change installation prefix, if necessary.
if $test X"$prefix" != X"$installprefix"; then
- installsitelib=`echo $sitelibexp | sed "s#^$prefix#$installprefix#"`
+ installsitelib=`echo $sitelibexp | $sed "s#^$prefix#$installprefix#"`
else
installsitelib="$sitelibexp"
fi
: Determine list of previous versions to include in @INC
$cat > getverlist <<EOPL
-#!$perl -w
+#!$perl5 -w
use File::Basename;
\$api_versionstring = "$api_versionstring";
\$version = "$version";
@@ -5342,7 +5430,7 @@ EOPL
# Can't have leading @ because metaconfig interprets it as a command!
;@inc_version_list=();
$stem=dirname($sitelib);
-# Redo to do opendir/readdir?
+# XXX Redo to do opendir/readdir?
if (-d $stem) {
chdir($stem);
;@candidates = glob("5.*");
@@ -5382,8 +5470,8 @@ else {
EOPL
chmod +x getverlist
case "$inc_version_list" in
-'') if test -x $perl; then
- dflt=`$perl getverlist`
+'') if test -x "$perl5"; then
+ dflt=`$perl5 getverlist`
else
dflt='none'
fi
@@ -5391,6 +5479,9 @@ case "$inc_version_list" in
$undef) dflt='none' ;;
*) dflt="$inc_version_list" ;;
esac
+case "$dflt" in
+''|' ') dflt=none ;;
+esac
$cat <<'EOM'
In order to ease the process of upgrading, this version of perl
@@ -5408,7 +5499,7 @@ EOM
rp='List of earlier versions to include in @INC?'
. ./myread
case "$ans" in
-[Nn]one) inc_version_list=' ' ;;
+[Nn]one|''|' ') inc_version_list=' ' ;;
*) inc_version_list="$ans" ;;
esac
case "$inc_version_list" in
@@ -6974,21 +7065,22 @@ fi
: sitelib default is /usr/local/lib/perl5/site_perl/$version
: sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
: sitelib may have an optional trailing /share.
-tdflt=`echo $sitelib | $sed 's,/share$,,'`
-tdflt="$tdflt/$archname"
-set sitearch sitearch none
-eval $prefixit
case "$sitearch" in
-'') dflt="$tdflt" ;;
-*) dflt="$sitearch" ;;
+'') dflt=`echo $sitelib | $sed 's,/share$,,'`
+ dflt="$dflt/$archname"
+ ;;
+*) dflt="$sitearch"
+ ;;
esac
+set sitearch sitearch none
+eval $prefixit
$cat <<EOM
The installation process will also create a directory for
architecture-dependent site-specific extensions and modules.
EOM
-fn=nd~+
+fn=d~+
rp='Pathname for the site-specific architecture-dependent library files?'
. ./getfile
sitearch="$ans"
@@ -7003,7 +7095,7 @@ fi
: determine where add-on public executables go
case "$sitebin" in
'') dflt=$siteprefix/bin ;;
-*) dflt=$sitebin ;;
+*) dflt=$sitebin ;;
esac
fn=d~
rp='Pathname where the add-on public executables should be installed?'
@@ -7114,26 +7206,29 @@ case "$vendorprefix" in
;;
*) d_vendorbin="$define"
: determine where vendor-supplied executables go.
- dflt=$vendorprefix/bin
+ case "$vendorbin" in
+ '') dflt=$vendorprefix/bin ;;
+ *) dflt="$vendorbin" ;;
+ esac
fn=d~+
rp='Pathname for the vendor-supplied executables directory?'
. ./getfile
vendorbin="$ans"
vendorbinexp="$ansexp"
- : Change installation prefix, if necessary.
- if $test X"$prefix" != X"$installprefix"; then
- installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
- else
- installvendorbin="$vendorbinexp"
- fi
;;
esac
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+ installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
+else
+ installvendorbin="$vendorbinexp"
+fi
: check for length of double
echo " "
case "$doublesize" in
'')
- $echo $n "Checking to see how big your double precision numbers are...$c" >&4
+ echo "Checking to see how big your double precision numbers are..." >&4
$cat >try.c <<'EOCP'
#include <stdio.h>
int main()
@@ -7145,7 +7240,7 @@ EOCP
set try
if eval $compile_ok; then
doublesize=`./try`
- $echo " $doublesize bytes." >&4
+ echo "Your double is $doublesize bytes long."
else
dflt='8'
echo "(I can't seem to compile the test program. Guessing...)"
@@ -7177,7 +7272,7 @@ eval $setvar
case "${d_longdbl}${longdblsize}" in
$define)
echo " "
- $echo $n "Checking to see how big your long doubles are..." $c >&4
+ echo "Checking to see how big your long doubles are..." >&4
$cat >try.c <<'EOCP'
#include <stdio.h>
int main()
@@ -7189,7 +7284,7 @@ EOCP
set try
if eval $compile; then
longdblsize=`./try$exe_ext`
- $echo " $longdblsize bytes." >&4
+ echo "Your long doubles are $longdblsize bytes long."
else
dflt='8'
echo " "
@@ -9416,7 +9511,7 @@ eval $setvar
case "${d_longlong}${longlongsize}" in
$define)
echo " "
- $echo $n "Checking to see how big your long longs are..." $c >&4
+ echo "Checking to see how big your long longs are..." >&4
$cat >try.c <<'EOCP'
#include <stdio.h>
int main()
@@ -9428,7 +9523,7 @@ EOCP
set try
if eval $compile_ok; then
longlongsize=`./try$exe_ext`
- $echo " $longlongsize bytes." >&4
+ echo "Your long longs are $longlongsize bytes long."
else
dflt='8'
echo " "
@@ -9444,6 +9539,11 @@ EOCP
esac
$rm -f try.* try
+: see if prototype for lseek is available
+echo " "
+set d_lseekproto lseek $i_systypes sys/types.h $i_unistd unistd.h
+eval $hasproto
+
: see if lstat exists
set lstat d_lstat
eval $inlibc
@@ -11595,6 +11695,9 @@ EOCP
esac
+: set the base revision
+baserev=5.0
+
: check for ordering of bytes in a long
echo " "
case "$crosscompile$multiarch" in
@@ -12371,7 +12474,7 @@ if eval $compile_ok; then
echo "(I can't execute the test program--guessing $gidsize.)" >&4
;;
*) gidsize=$yyy
- echo "Your $zzz size is $gidsize bytes."
+ echo "Your $zzz is $gidsize bytes long."
;;
esac
else
@@ -12916,7 +13019,7 @@ pm_apiversion='5.005'
echo " "
case "$ptrsize" in
'')
- $echo $n "Checking to see how big your pointers are...$c" >&4
+ echo "Checking to see how big your pointers are..." >&4
if test "$voidflags" -gt 7; then
echo '#define VOID_PTR char *' > try.c
else
@@ -12933,7 +13036,7 @@ EOCP
set try
if eval $compile_ok; then
ptrsize=`./try`
- $echo " $ptrsize bytes." >&4
+ echo "Your pointers are $ptrsize bytes long."
else
dflt='4'
echo "(I can't seem to compile the test program. Guessing...)" >&4
@@ -13512,7 +13615,7 @@ if eval $compile_ok; then
echo "(I can't execute the test program--guessing $uidsize.)" >&4
;;
*) uidsize=$yyy
- echo "Your $zzz size is $uidsize bytes."
+ echo "Your $zzz is $uidsize bytes long."
;;
esac
else
@@ -14739,6 +14842,7 @@ d_locconv='$d_locconv'
d_lockf='$d_lockf'
d_longdbl='$d_longdbl'
d_longlong='$d_longlong'
+d_lseekproto='$d_lseekproto'
d_lstat='$d_lstat'
d_mblen='$d_mblen'
d_mbstowcs='$d_mbstowcs'
@@ -15136,6 +15240,7 @@ pager='$pager'
passcat='$passcat'
patchlevel='$patchlevel'
path_sep='$path_sep'
+perl5='$perl5'
perl='$perl'
perladmin='$perladmin'
perlpath='$perlpath'
@@ -15159,6 +15264,7 @@ randfunc='$randfunc'
randseedtype='$randseedtype'
ranlib='$ranlib'
rd_nodata='$rd_nodata'
+revision='$revision'
rm='$rm'
rmail='$rmail'
runnm='$runnm'
@@ -15259,6 +15365,7 @@ uquadtype='$uquadtype'
use5005threads='$use5005threads'
use64bits='$use64bits'
usedl='$usedl'
+usefull64bits='$usefull64bits'
useithreads='$useithreads'
uselargefiles='$uselargefiles'
uselongdouble='$uselongdouble'
diff --git a/INSTALL b/INSTALL
index d38778305c..5fe174d58a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -369,13 +369,13 @@ be used for installing those add-on modules and scripts.
Configure variable Default value
$siteprefix $prefix
$sitebin $siteprefix/bin
- $sitescriptdir $siteprefix/bin
+ $sitescript $siteprefix/bin
$sitelib $siteprefix/lib/perl5/site_perl/$version
$sitearch $siteprefix/lib/perl5/site_perl/$version/$archname
- $siteman1dir $siteprefix/man/man1
- $siteman3dir $siteprefix/man/man3
- $sitehtml1dir (none)
- $sitehtml3dir (none)
+ $siteman1 $siteprefix/man/man1
+ $siteman3 $siteprefix/man/man3
+ $sitehtml1 (none)
+ $sitehtml3 (none)
By default, ExtUtils::MakeMaker will install architecture-independent
modules into $sitelib and architecture-dependent modules into $sitearch.
@@ -390,13 +390,13 @@ for you to use to distribute add-on modules.
$vendorprefix (none)
(The next ones are set only if vendorprefix is set.)
$vendorbin $vendorprefix/bin
- $vendorscriptdir $vendorprefix/bin
+ $vendorscript $vendorprefix/bin
$vendorlib $vendorprefix/lib/perl5/vendor_perl/$version
$vendorarch $vendorprefix/lib/perl5/vendor_perl/$version/$archname
- $vendorman1dir $vendorprefix/man/man1
- $vendorman3dir $vendorprefix/man/man3
- $vendorhtml1dir (none)
- $vendorhtml3dir (none)
+ $vendorman1 $vendorprefix/man/man1
+ $vendorman3 $vendorprefix/man/man3
+ $vendorhtml1 (none)
+ $vendorhtml3 (none)
These are normally empty, but may be set as needed. For example,
a vendor might choose the following settings:
@@ -415,18 +415,18 @@ This would have the effect of setting the following:
$man3dir /usr/man/man3
$sitebin /usr/local/bin
- $sitescriptdir /usr/local/bin
+ $sitescript /usr/local/bin
$sitelib /usr/local/lib/perl5/site_perl/$version
$sitearch /usr/local/lib/perl5/site_perl/$version/$archname
- $siteman1dir /usr/local/man/man1
- $siteman3dir /usr/local/man/man3
+ $siteman1 /usr/local/man/man1
+ $siteman3 /usr/local/man/man3
- $vendorbin /usr/bin
- $vendorscriptdir /usr/bin
+ $vendorbin /usr/bin
+ $vendorscript /usr/bin
$vendorlib /usr/lib/perl5/vendor_perl/$version
$vendorarch /usr/lib/perl5/vendor_perl/$version/$archname
- $vendorman1dir /usr/man/man1
- $vendorman3dir /usr/man/man3
+ $vendorman1 /usr/man/man1
+ $vendorman3 /usr/man/man3
Note how in this example, the vendor-supplied directories are in the
/usr hierarchy, while the directories reserved for the end-user are in
diff --git a/Policy_sh.SH b/Policy_sh.SH
index b953046f9d..0d9c1dfbc7 100644
--- a/Policy_sh.SH
+++ b/Policy_sh.SH
@@ -86,8 +86,8 @@ esac
for var in \
bin scriptdir privlib archlib man1dir man3dir html1dir html3dir \
- sitebin sitescriptdir sitelib sitearch \
- siteman1dir siteman3dir sitehtml1dir sitehtml3dir \
+ sitebin sitescript sitelib sitearch \
+ siteman1 siteman3 sitehtml1 sitehtml3 \
vendorbin vendorscript vendorlib vendorarch \
vendorman1 vendorman3 vendorhtml1 vendorhtml3
do
@@ -124,8 +124,7 @@ do
# Directories for site-specific add-on files
sitebin) dflt=$siteprefix/bin ;;
- # The scriptdir test is more complex, but this is probably usually ok.
- sitescriptdir)
+ sitescript)
if $test -d $siteprefix/script; then
dflt=$siteprefix/script
else
@@ -140,10 +139,10 @@ do
;;
sitearch) dflt="$sitelib/$archname" ;;
- siteman1dir) dflt="$siteprefix/man/man1" ;;
- siteman3dir) dflt="$siteprefix/man/man3" ;;
+ siteman1) dflt="$siteprefix/man/man1" ;;
+ siteman3) dflt="$siteprefix/man/man3" ;;
# We don't know what to do with these yet.
- sitehtml1dir) dflt='' ;;
+ sitehtml1) dflt='' ;;
sitehtm31dir) dflt='' ;;
# Directories for vendor-supplied add-on files
@@ -154,10 +153,7 @@ do
else
case "$var" in
vendorbin) dflt=$vendorprefix/bin ;;
-
- # The scriptdir test is more complex,
- # but this is probably usually ok.
- vendorscriptdir)
+ vendorscript)
if $test -d $vendorprefix/script; then
dflt=$vendorprefix/script
else
@@ -172,11 +168,11 @@ do
;;
vendorarch) dflt="$vendorlib/$archname" ;;
- vendorman1dir) dflt="$vendorprefix/man/man1" ;;
- vendorman3dir) dflt="$vendorprefix/man/man3" ;;
+ vendorman1) dflt="$vendorprefix/man/man1" ;;
+ vendorman3) dflt="$vendorprefix/man/man3" ;;
# We don't know what to do with these yet.
- vendorhtml1dir) dflt='' ;;
- vendorhtm31dir) dflt='' ;;
+ vendorhtml1) dflt='' ;;
+ vendorhtm3) dflt='' ;;
esac # End of vendorprefix != ''
fi
diff --git a/config_h.SH b/config_h.SH
index cd14526e71..a65d0b8fb4 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -2858,12 +2858,20 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
/* USE_64_BITS:
* This symbol, if defined, indicates that 64-bit integers should
* be used when available. If not defined, the native integers
- * will be used (be they 32 or 64 bits).
+ * will be employed (be they 32 or 64 bits). The minimal possible
+ * 64-bitness is used, just enough to get 64-bit integers into Perl.
+ * This may mean using for example "long longs", while your memory
+ * may still be limited to 2 gigabytes.
+ * To go all the way, use Configure -Dusefull64bits.
*/
#ifndef USE_64_BITS
#$use64bits USE_64_BITS /**/
#endif
+#ifndef USE_FULL_64_BITS
+#$usefull64bits USE_FULL_64_BITS /**/
+#endif
+
/* USE_LARGE_FILES:
* This symbol, if defined, indicates that large file support
* should be used when available. The USE_64_BITS symbol will
@@ -2999,5 +3007,13 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#define PERL_XS_APIVERSION "$xs_apiversion"
#define PERL_PM_APIVERSION "$pm_apiversion"
+/* HAS_LSEEK_PROTO:
+ * This symbol, if defined, indicates that the system provides
+ * a prototype for the lseek() function. Otherwise, it is up
+ * to the program to supply one. A good guess is
+ * extern off_t lseek(int, off_t, int);
+ */
+#$d_lseekproto HAS_LSEEK_PROTO /**/
+
#endif
!GROK!THIS!
diff --git a/perl.h b/perl.h
index ad5af2faac..73a67f4f2a 100644
--- a/perl.h
+++ b/perl.h
@@ -2108,7 +2108,7 @@ char *crypt (const char*, const char*);
# ifndef getenv
char *getenv (const char*);
# endif /* !getenv */
-# if !defined(EPOC) && !(defined(__hpux) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
+# if !defined(EPOC) && !(defined(__hpux) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64) && !defined(HAS_LSEEK_PROTO)
Off_t lseek (int,Off_t,int);
# endif
# endif /* !DONT_DECLARE_STD */
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 4fd3ce49bd..90c81de852 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -386,12 +386,20 @@ process starts. Run C<Configure -h> to find out the full C<-A> syntax.
=head2 Enhanced Installation Directories
-The installation structure has been enriched to improve the support for
-maintaining multiple versions of perl, to provide locations for
-vendor-supplied modules and scripts, and to ease maintenance of
-locally-added modules and scripts. See the section on Installation
-Directories in the INSTALL file for complete details. For most users
-building and installing from source, the defaults should be fine.
+The installation structure has been enriched to improve the support
+for maintaining multiple versions of perl, to provide locations for
+vendor-supplied modules, scripts, and manpages, and to ease maintenance
+of locally-added modules, scripts, and manpages. See the section on
+Installation Directories in the INSTALL file for complete details.
+For most users building and installing from source, the defaults should
+be fine.
+
+If you previously used C<Configure -Dsitelib> or C<-Dsitearch> to set
+special values for library directories, you might wish to consider using
+the new C<-Dsiteprefix> setting instead. Also, if you wish to re-use a
+config.sh file from an earlier version of perl, you should be sure to
+check that Configure makes sensible choices for the new directories.
+See INSTALL for complete details.
=head1 Core Changes
@@ -672,6 +680,22 @@ change. Bit arithmetics for bit vector scalars (created by vec()) are
not limited in their width, you can use the & | ^ ~ operators on such
scalars.
+There are actually two modes of 64-bitness: the first one is achieved
+using Configure -Duse64bits and the second one using Configure
+-Dusefull64bits. The difference is that the first one is minimal and
+the second one maximal. The first one does only as much as is
+required to get 64-bit integers into Perl (this may mean, for example,
+using "long longs") while your memory may still be limited to 2
+gigabytes (because your pointers most likely are 32-bit); the second
+one goes all the way by attempting to switch also longs (and pointers)
+being 64-bit. This may create an even more binary incompatible Perl
+than -Duse64bits: the resulting executable may not run at all in a
+CPU-bit box, or you may have to reboot/reconfigure/rebuild your
+operating system to be 64-bit aware.
+
+Natively 64-bit systems like Alpha and Cray need neither -Duse64bits
+nor -Dusefull64bits.
+
Last but not least: note that due to Perl's habit of always using
floating point numbers the quads are still not true integers.
When quads overflow their limits (0...18_446_744_073_709_551_615 unsigned,