diff options
-rwxr-xr-x | Configure | 319 | ||||
-rw-r--r-- | INSTALL | 34 | ||||
-rw-r--r-- | Policy_sh.SH | 26 | ||||
-rw-r--r-- | config_h.SH | 18 | ||||
-rw-r--r-- | perl.h | 2 | ||||
-rw-r--r-- | pod/perldelta.pod | 36 |
6 files changed, 289 insertions, 146 deletions
@@ -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' @@ -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! @@ -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, |