integrate cfgperl contents
Gurusamy Sarathy [Wed, 24 Feb 1999 07:02:12 +0000 (07:02 +0000)]
p4raw-id: //depot/perl@3023

27 files changed:
Configure
Makefile.SH
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
ext/DB_File/Changes
ext/DB_File/DB_File.pm
ext/DB_File/DB_File.xs
ext/DB_File/typemap
hints/ultrix_4.sh
perl.c
perl.h
pod/perl.pod
pod/perldelta.pod
pod/perlfunc.pod
pod/perlref.pod
pp.c
t/lib/db-recno.t
t/op/pack.t
vms/subconfigure.com
win32/config.bc
win32/config.gc
win32/config.vc
win32/config_H.bc
win32/config_H.gc
win32/config_H.vc

index 504d106..6f2f171 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Fri Feb 12 13:46:36 EET 1999 [metaconfig 3.0 PL70]
+# Generated on Mon Feb 22 11:28:58 EET 1999 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -236,6 +236,7 @@ uuname=''
 vi=''
 zcat=''
 zip=''
+full_ar=''
 full_sed=''
 libswanted=''
 hint=''
@@ -292,6 +293,7 @@ cpplast=''
 cppminus=''
 cpprun=''
 cppstdin=''
+crosscompile=''
 d_access=''
 d_accessx=''
 d_alarm=''
@@ -356,6 +358,7 @@ d_phostname=''
 d_uname=''
 d_gethostprotos=''
 d_getlogin=''
+d_getmntent=''
 d_getnbyaddr=''
 d_getnbyname=''
 d_getnent=''
@@ -376,6 +379,7 @@ d_getservprotos=''
 d_getsbyname=''
 d_getsbyport=''
 d_gnulibc=''
+d_hasmntopt=''
 d_htonl=''
 d_inetaton=''
 d_isascii=''
@@ -704,6 +708,7 @@ models=''
 small=''
 split=''
 modetype=''
+multiarch=''
 mydomain=''
 myhostname=''
 phostname=''
@@ -815,24 +820,6 @@ if test -f /etc/unixtovms.exe; then
 fi
 
 i_whoami=''
-: change the next line if compiling for Xenix/286 on Xenix/386
-xlibpth='/usr/lib/386 /lib/386'
-
-: Possible local library directories to search.
-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
-
-: general looking path for locating libraries
-glibpth="/shlib /usr/shlib /lib/pa1.1 /usr/lib/large"
-glibpth="$glibpth /lib /usr/lib $xlibpth"
-glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
-
-: Private path used by Configure to find libraries.  Its value
-: is prepended to libpth. This variable takes care of special
-: machines, like the mips.  Usually, it should be empty.
-plibpth=''
-
 : Possible local include directories to search.
 : Set locincpth to "" in a hint file to defeat local include searches.
 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
@@ -911,6 +898,24 @@ _exe=''
 : Extra object files, if any, needed on this platform.
 archobjs=''
 groupstype=''
+: change the next line if compiling for Xenix/286 on Xenix/386
+xlibpth='/usr/lib/386 /lib/386'
+
+: Possible local library directories to search.
+loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
+loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
+
+: general looking path for locating libraries
+glibpth="/shlib /usr/shlib /lib/pa1.1 /usr/lib/large"
+glibpth="$glibpth /lib /usr/lib $xlibpth"
+glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
+glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+
+: Private path used by Configure to find libraries.  Its value
+: is prepended to libpth. This variable takes care of special
+: machines, like the mips.  Usually, it should be empty.
+plibpth=''
+
 : default library list
 libswanted=''
 : some systems want to use only the non-versioned libso:s
@@ -2075,8 +2080,8 @@ EOM
                [23]100) osname=mips ;;
                next*) osname=next ;;
                i386*)
-                       tmp=`/bin/uname -X 2>/dev/null|awk -e '/3\.2v[45]/{ print $(NF) }'`
-                       if $test "$tmp" != "" -a "$3" = "3.2" -a test -e '/etc/systemid'; then
+                       tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
+                       if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
                                osname='sco'
                                osvers=$tmp
                        elif $test -f /etc/kconfig; then
@@ -2525,7 +2530,7 @@ case "$usethreads" in
                . ./usethreads.cbu
        fi
        case "$osname" in
-       aix|dec_osf|dos_djgpp|freebsd|hpux|irix|linux|openbsd|os2|solaris|vmesa)
+       aix|dec_osf|dos_djgpp|freebsd|hpux|irix|linux|next|openbsd|os2|solaris|vmesa)
                # Known thread-capable platforms.
                ;;
        *)
@@ -4076,11 +4081,7 @@ if $xxx; then
        esac;
 fi'
 
-if ./osf1; then
-       set signal.h __LANGUAGE_C__; eval $inctest
-else
-       set signal.h LANGUAGE_C; eval $inctest
-fi
+set signal.h LANGUAGE_C; eval $inctest
 
 case "$hint" in
 none|recommended) dflt="$ccflags $dflt" ;;
@@ -4540,6 +4541,10 @@ else
        installbin="$binexp"
 fi
 
+case "$crosscompile" in
+''|[nN]*) crosscompile="$undef" ;;
+esac
+
 : determine whether to install perl also as /usr/bin/perl
 
 echo " "
@@ -4965,7 +4970,7 @@ nm_extract="$com"
 if $test -f /lib/syscalls.exp; then
        echo " "
        echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
-       $sed -n 's/^\([^        ]*\)[   ]*syscall$/\1/p' /lib/syscalls.exp >>libc.list
+       $sed -n 's/^\([^        ]*\)[   ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list
 fi
 ;;
 esac
@@ -5720,6 +5725,13 @@ case "$man3dir" in
        ;;
 esac
 
+case "$osname" in
+next) multiarch="$define" ;;
+esac
+case "$multiarch" in
+''|[nN]*) multiarch="$undef" ;;
+esac
+
 : see if we have to deal with yellow pages, now NIS.
 if $test -d /usr/etc/yp || $test -d /etc/yp; then
        if $test -f /usr/etc/nibindd; then
@@ -6147,8 +6159,8 @@ $cat <<EOM
 
 The installation process will also create a directory for
 site-specific extensions and modules.  Some users find it convenient
-to place all local files in this directory rather than in the main
-distribution directory.
+to place all site-specific files in this directory rather than in the
+main distribution directory.
 
 EOM
 fn=d~+
@@ -8150,6 +8162,10 @@ eval $hasproto
 set getlogin d_getlogin
 eval $inlibc
 
+: see if getmntent exists
+set getmntent d_getmntent
+eval $inlibc
+
 : see if getnetbyaddr exists
 set getnetbyaddr d_getnbyaddr
 eval $inlibc
@@ -8267,6 +8283,10 @@ $define)
        ;;
 esac
 
+: see if hasmntopt exists
+set hasmntopt d_hasmntopt
+eval $inlibc
+
 : see if this is a netinet/in.h or sys/in.h system
 set netinet/in.h i_niin sys/in.h i_sysin
 eval $inhdr
@@ -8770,7 +8790,7 @@ int main() {
 EOCP
        set try -DJOINABLE=PTHREAD_CREATE_JOINABLE
        if eval $compile; then
-               echo "You seem to use PTHREAD_CREATE_JOINABLE." >&2
+               echo "You seem to use PTHREAD_CREATE_JOINABLE." >&4
                val="$undef" # Yes, undef.
                set d_old_pthread_create_joinable
                eval $setvar
@@ -8780,7 +8800,7 @@ EOCP
        else
                set try -DJOINABLE=PTHREAD_CREATE_UNDETACHED
                if eval $compile; then
-                       echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&2
+                       echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&4
                        val="$define"
                        set d_old_pthread_create_joinable
                        eval $setvar
@@ -8790,7 +8810,7 @@ EOCP
                else            
                        set try -DJOINABLE=__UNDETACHED
                        if eval $compile; then
-                               echo "You seem to use __UNDETACHED." >&2
+                               echo "You seem to use __UNDETACHED." >&4
                                val="$define"
                                set d_old_pthread_create_joinable
                                eval $setvar
@@ -8798,7 +8818,7 @@ EOCP
                                set old_pthread_create_joinable
                                eval $setvar
                        else
-                               echo "Egads, nothing obvious found.  Guessing that you use 0." >&2
+                               echo "Egads, nothing obvious found.  Guessing that you use 0." >&4
                                val="$define"
                                set d_old_pthread_create_joinable
                                eval $setvar
@@ -10276,39 +10296,60 @@ Revision='$Revision'
 
 : check for alignment requirements
 echo " "
-case "$alignbytes" in
-'') echo "Checking alignment constraints..." >&4
-       $cat >try.c <<'EOCP'
+case "$crosscompile$multiarch" in
+*$define*)
+You seem to be cross-compiling, skipping the memory alignment check.
+
+EOM
+       case "$alignbytes" in
+       '') alignbytes=8 ;;
+       esac
+       ;;
+*)
+       case "$alignbytes" in
+       '') echo "Checking alignment constraints..." >&4
+               $cat >try.c <<'EOCP'
 struct foobar {
        char foo;
        double bar;
-} try;
+} try_algn;
 int main()
 {
-       printf("%d\n", (char *)&try.bar - (char *)&try.foo);
+       printf("%d\n", (char *)&try_algn.bar - (char *)&try_algn.foo);
 }
 EOCP
-       set try
-       if eval $compile_ok; then
-               dflt=`./try`
-       else
-               dflt='8'
-               echo "(I can't seem to compile the test program...)"
-       fi
-       ;;
-*) dflt="$alignbytes"
+               set try
+               if eval $compile_ok; then
+                       dflt=`./try`
+               else
+                       dflt='8'
+                       echo "(I can't seem to compile the test program...)"
+               fi
+               ;;
+       *) dflt="$alignbytes"
+               ;;
+       esac
+       rp="Doubles must be aligned on a how-many-byte boundary?"
+       . ./myread
+       alignbytes="$ans"
+       $rm -f try.c try
        ;;
 esac
-rp="Doubles must be aligned on a how-many-byte boundary?"
-. ./myread
-alignbytes="$ans"
-$rm -f try.c try
+
 
 : check for ordering of bytes in a long
-case "$byteorder" in
-'')
-       $cat <<'EOM'
-  
+echo " "
+case "$crosscompile$multiarch" in
+*$define*)
+       $cat <<EOM
+You seem to be cross-compiling, I'm skipping the byteorder check.
+
+EOM
+       ;;
+*)
+       case "$byteorder" in
+       '')
+               $cat <<'EOM'
 In the following, larger digits indicate more significance.  A big-endian
 machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
 little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
@@ -10316,7 +10357,7 @@ machines may have weird orders like 3412.  A Cray will report 87654321. If
 the test program works the default is probably right.
 I'm now running the test program...
 EOM
-       $cat >try.c <<'EOCP'
+               $cat >try.c <<'EOCP'
 #include <stdio.h>
 int main()
 {
@@ -10336,37 +10377,40 @@ int main()
        exit(0);
 }
 EOCP
-       xxx_prompt=y
-       set try
-       if eval $compile && ./try > /dev/null; then
-               dflt=`./try`
-               case "$dflt" in
-               [1-4][1-4][1-4][1-4]|12345678|87654321)
-                       echo "(The test program ran ok.)"
-                       echo "byteorder=$dflt"
-                       xxx_prompt=n
+               xxx_prompt=y
+               set try
+               if eval $compile && ./try > /dev/null; then
+                       dflt=`./try`
+                       case "$dflt" in
+                       [1-4][1-4][1-4][1-4]|12345678|87654321)
+                               echo "(The test program ran ok.)"
+                               echo "byteorder=$dflt"
+                               xxx_prompt=n
                        ;;
-               ????|????????) echo "(The test program ran ok.)" ;;
-               *) echo "(The test program didn't run right for some reason.)" ;;
-               esac
-       else
-               dflt='4321'
-               cat <<'EOM'
+                       ????|????????) echo "(The test program ran ok.)" ;;
+                       *) echo "(The test program didn't run right for some reason.)" ;;
+                       esac
+               else
+                       dflt='4321'
+                       cat <<'EOM'
 (I can't seem to compile the test program.  Guessing big-endian...)
 EOM
-       fi
-       case "$xxx_prompt" in
-       y)
-               rp="What is the order of bytes in a long?"
-               . ./myread
-               byteorder="$ans"
-               ;;
-       *)      byteorder=$dflt
+               fi
+               case "$xxx_prompt" in
+               y)
+                       rp="What is the order of bytes in a long?"
+                       . ./myread
+                       byteorder="$ans"
+                       ;;
+               *)      byteorder=$dflt
+                       ;;
+               esac
                ;;
        esac
+       $rm -f try.c try
        ;;
 esac
-$rm -f try.c try
+
 
 : how do we catenate cpp tokens here?
 echo " "
@@ -10822,6 +10866,12 @@ rp="What is the type for file position used by fsetpos()?"
 set fpos_t fpostype long stdio.h sys/types.h
 eval $typedef_ask
 
+: Store the full pathname to the ar program for use in the C program
+: Respect a hint or command line value for full_ar.
+case "$full_ar" in
+'') full_ar=$ar ;;
+esac
+
 : Store the full pathname to the sed program for use in the C program
 full_sed=$sed
 
@@ -12574,6 +12624,7 @@ cppminus='$cppminus'
 cpprun='$cpprun'
 cppstdin='$cppstdin'
 cppsymbols='$cppsymbols'
+crosscompile='$crosscompile'
 cryptlib='$cryptlib'
 csh='$csh'
 d_Gconvert='$d_Gconvert'
@@ -12660,6 +12711,7 @@ d_gethent='$d_gethent'
 d_gethname='$d_gethname'
 d_gethostprotos='$d_gethostprotos'
 d_getlogin='$d_getlogin'
+d_getmntent='$d_getmntent'
 d_getnbyaddr='$d_getnbyaddr'
 d_getnbyname='$d_getnbyname'
 d_getnent='$d_getnent'
@@ -12681,6 +12733,7 @@ d_getservprotos='$d_getservprotos'
 d_gettimeod='$d_gettimeod'
 d_gnulibc='$d_gnulibc'
 d_grpasswd='$d_grpasswd'
+d_hasmntopt='$d_hasmntopt'
 d_htonl='$d_htonl'
 d_index='$d_index'
 d_inetaton='$d_inetaton'
@@ -12883,6 +12936,7 @@ firstmakefile='$firstmakefile'
 flex='$flex'
 fpostype='$fpostype'
 freetype='$freetype'
+full_ar='$full_ar'
 full_csh='$full_csh'
 full_sed='$full_sed'
 gccversion='$gccversion'
@@ -13023,6 +13077,7 @@ mmaptype='$mmaptype'
 models='$models'
 modetype='$modetype'
 more='$more'
+multiarch='$multiarch'
 mv='$mv'
 myarchname='$myarchname'
 mydomain='$mydomain'
index 617f803..2530d4f 100644 (file)
@@ -166,7 +166,7 @@ shellflags = $shellflags
 $make_set_make
 
 # These variables may need to be manually set for non-Unix systems.
-AR = $ar
+AR = $full_ar
 EXE_EXT = $_exe
 LIB_EXT = $_a
 OBJ_EXT = $_o
index cf2076f..c1b8758 100644 (file)
@@ -116,15 +116,15 @@ byteorder (byteorder.U):
 c (n.U):
        This variable contains the \c string if that is what causes the echo
        command to suppress newline.  Otherwise it is null.  Correct usage is
-           $echo $n "prompt for a question: $c".
+       $echo $n "prompt for a question: $c".
 
 castflags (d_castneg.U):
        This variable contains a flag that precise difficulties the
        compiler has casting odd floating values to unsigned long:
-               0 = ok
-               1 = couldn't cast < 0
-               2 = couldn't cast >= 0x80000000
-               4 = couldn't cast in argument expression list
+       0 = ok
+       1 = couldn't cast < 0
+       2 = couldn't cast >= 0x80000000
+       4 = couldn't cast in argument expression list
 
 cat (Loc.U):
        This variable is be used internally by Configure to determine the
@@ -152,6 +152,12 @@ ccflags (ccflags.U):
        This variable contains any additional C compiler flags desired by
        the user.  It is up to the Makefile to use this.
 
+ccsymbols (Cppsym.U):
+       The variable contains the symbols defined by the C compiler alone.
+       The symbols defined by cpp or by cc when it calls cpp are not in
+       this list, see cppsymbols and cppccsymbols.
+       The list is a space-separated list of symbol=value tokens.
+
 cf_by (cf_who.U):
        Login name of the person who ran the Configure script and answered the
        questions. This is used to tag both config.sh and config_h.SH.
@@ -214,6 +220,12 @@ cpp_stuff (cpp_stuff.U):
        This variable contains an identification of the catenation mechanism
        used by the C preprocessor.
 
+cppccsymbols (Cppsym.U):
+       The variable contains the symbols defined by the C compiler when
+       when it calls cpp.  The symbols defined by the cc alone or cpp
+       alone are not in this list, see ccsymbols and cppsymbols.
+       The list is a space-separated list of symbol=value tokens.
+
 cppflags (ccflags.U):
        This variable holds the flags that will be passed to the C pre-
        processor. It is up to the Makefile to use it.
@@ -242,6 +254,12 @@ cppstdin (cppstdin.U):
        It is primarily used by other Configure units that ask about
        preprocessor symbols.
 
+cppsymbols (Cppsym.U):
+       The variable contains the symbols defined by the C preprocessor
+       alone.  The symbols defined by cc or by cc when it calls cpp are
+       not in this list, see ccsymbols and cppccsymbols.
+       The list is a space-separated list of symbol=value tokens.
+
 cryptlib (d_crypt.U):
        This variable holds -lcrypt or the path to a libcrypt.a archive if
        the crypt() function is not defined in the standard C library. It is
@@ -546,6 +564,14 @@ d_fstat64 (io64.U):
        This variable conditionally defines the HAS_FSTAT64 symbol, which
        indicates to the C program that the fstat64() routine is available.
 
+d_fstatfs (d_statfs.U):
+       This variable conditionally defines the HAS_FSTATFS symbol, which
+       indicates to the C program that the fstatfs() routine is available.
+
+d_fstatvfs (d_statvfs.U):
+       This variable conditionally defines the HAS_FSTATVFS symbol, which
+       indicates to the C program that the fstatvfs() routine is available.
+
 d_ftell64 (stdio64.U):
        This variable conditionally defines the HAS_FTELL64 symbol, which
        indicates to the C program that the ftell64() routine is available.
@@ -572,9 +598,9 @@ d_Gconvert (d_gconvert.U):
        floating point numbers into strings. It could be 'gconvert'
        or a more complex macro emulating gconvert with gcvt() or sprintf.
        Possible values are:
-               d_Gconvert='gconvert((x),(n),(t),(b))'
-               d_Gconvert='gcvt((x),(n),(b))'
-               d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+       d_Gconvert='gconvert((x),(n),(t),(b))'
+       d_Gconvert='gcvt((x),(n),(b))'
+       d_Gconvert='sprintf((b),"%.*g",(n),(x))'
 
 d_getgrent (d_getgrent.U):
        This variable conditionally defines the HAS_GETGRENT symbol, which
@@ -616,6 +642,11 @@ d_getlogin (d_getlogin.U):
        indicates to the C program that the getlogin() routine is available
        to get the login name.
 
+d_getmntent (d_getmntent.U):
+       This variable conditionally defines the HAS_GETMNTENT symbol, which
+       indicates to the C program that the getmntent() routine is available
+       to iterate through mounted files.
+
 d_getnbyaddr (d_getnbyad.U):
        This variable conditionally defines the HAS_GETNETBYADDR symbol, which
        indicates to the C program that the getnetbyaddr() routine is available
@@ -720,6 +751,11 @@ d_grpasswd (i_grp.U):
        This variable conditionally defines GRPASSWD, which indicates
        that struct group in <grp.h> contains gr_passwd.
 
+d_hasmntopt (d_hasmntopt.U):
+       This variable conditionally defines the HAS_HASMNTOPT symbol, which
+       indicates to the C program that the hasmntopt() routine is available
+       to query the mount options of file systems.
+
 d_htonl (d_htonl.U):
        This variable conditionally defines HAS_HTONL if htonl() and its
        friends are available to do network order byte swapping.
@@ -737,7 +773,7 @@ d_ino64t (io64.U):
        This symbol will be defined if the C compiler supports ino64_t.
 
 d_int64t (i_inttypes.U):
-           This symbol will be defined if the C compiler supports int64_t.
+       This symbol will be defined if the C compiler supports int64_t.
 
 d_iovec_s (i_sysuio.U):
        This variable conditionally defines the HAS_STRUCT_IOVEC symbol,
@@ -793,6 +829,10 @@ d_lstat (d_lstat.U):
        This variable conditionally defines HAS_LSTAT if lstat() is
        available to do file stats on symbolic links.
 
+d_madvise (d_madvise.U):
+       This variable conditionally defines HAS_MADVISE if madvise() is
+       available to map a file into memory.
+
 d_mblen (d_mblen.U):
        This variable conditionally defines the HAS_MBLEN symbol, which
        indicates to the C program that the mblen() routine is available
@@ -841,6 +881,14 @@ d_mktime (d_mktime.U):
        This variable conditionally defines the HAS_MKTIME symbol, which
        indicates to the C program that the mktime() routine is available.
 
+d_mmap (d_mmap.U):
+       This variable conditionally defines HAS_MMAP if mmap() is
+       available to map a file into memory.
+
+d_mprotect (d_mprotect.U):
+       This variable conditionally defines HAS_MPROTECT if mprotect() is
+       available to modify the access protection of a memory mapped file.
+
 d_msg (d_msg.U):
        This variable conditionally defines the HAS_MSG symbol, which
        indicates that the entire msg*(2) library is present.
@@ -890,6 +938,14 @@ d_msgsnd (d_msgsnd.U):
        This variable conditionally defines the HAS_MSGSND symbol, which
        indicates to the C program that the msgsnd() routine is available.
 
+d_msync (d_msync.U):
+       This variable conditionally defines HAS_MSYNC if msync() is
+       available to synchronize a mapped file.
+
+d_munmap (d_munmap.U):
+       This variable conditionally defines HAS_MUNMAP if munmap() is
+       available to unmap a region mapped by mmap().
+
 d_mymalloc (mallocsrc.U):
        This variable conditionally defines MYMALLOC in case other parts
        of the source want to take special action if MYMALLOC is used.
@@ -1261,6 +1317,20 @@ d_statblks (d_statblks.U):
        if this system has a stat structure declaring
        st_blksize and st_blocks.
 
+d_statfs (d_statfs.U):
+       This variable conditionally defines the HAS_STATFS symbol, which
+       indicates to the C program that the statfs() routine is available.
+
+d_statfsflags (d_statfs.U):
+       This variable conditionally defines the HAS_STRUCT_STATFS_FLAGS
+       symbol, which indicates to struct statfs from has f_flags member.
+       This kind of struct statfs is coming from sys/mount.h (BSD),
+       not from sys/statfs.h (SYSV).
+
+d_statvfs (d_statvfs.U):
+       This variable conditionally defines the HAS_STATVFS symbol, which
+       indicates to the C program that the statvfs() routine is available.
+
 d_stdio_cnt_lval (d_stdstdio.U):
        This variable conditionally defines STDIO_CNT_LVALUE if the
        FILE_cnt macro can be used as an lvalue.
@@ -1373,6 +1443,12 @@ d_telldir (d_readdir.U):
        This variable conditionally defines HAS_TELLDIR if telldir() is
        available.
 
+d_telldirproto (d_telldirproto.U):
+       This variable conditionally defines the HAS_TELLDIR_PROTO symbol,
+       which indicates to the C program that the system provides
+       a prototype for the telldir() function.  Otherwise, it is
+       up to the program to supply one.
+
 d_time (d_time.U):
        This variable conditionally defines the HAS_TIME symbol, which indicates
        that the time() routine exists.  The time() routine is normaly
@@ -1483,6 +1559,9 @@ db_prefixtype (i_db.U):
        in the <db.h> header file.  In older versions of DB, it was
        int, while in newer ones it is size_t.
 
+defvoidused (voidflags.U):
+       This variable contains the default value of the VOIDUSED symbol (15).
+
 direntrytype (i_dirent.U):
        This symbol is set to 'struct direct' or 'struct dirent' depending on
        whether dirent is available or not. You should use this pseudo type to
@@ -1577,6 +1656,11 @@ freetype (mallocsrc.U):
        This variable contains the return type of free().  It is usually
        void, but occasionally int.
 
+full_ar (Loc_ar.U):
+       This variable contains the full pathname to 'ar', whether or
+       not the user has specified 'portability'.  This is only used
+       in the Makefile.SH.
+
 full_csh (d_csh.U):
        This variable contains the full pathname to 'csh', whether or
        not the user has specified 'portability'.  This is only used
@@ -1601,6 +1685,11 @@ gidtype (gidtype.U):
        ushort, or whatever type is used to declare the return type
        of getgid().  Typically, it is the type of group ids in the kernel.
 
+glibpth (libpth.U):
+       This variable holds the general path (space-separated) used to
+       find libraries.  It may contain directories that do not exist on
+       this platform, libpth is the cleaned-up version.
+
 grep (Loc.U):
        This variable is be used internally by Configure to determine the
        full pathname (if any) of the grep program.  After Configure runs,
@@ -1696,8 +1785,8 @@ i_grp (i_grp.U):
        whether a C program should include <grp.h>.
 
 i_inttypes (i_inttypes.U):
-           This variable conditionally defines the I_INTTYPES symbol,
-           and indicates whether a C program should include <inttypes.h>.
+       This variable conditionally defines the I_INTTYPES symbol,
+       and indicates whether a C program should include <inttypes.h>.
 
 i_limits (i_limits.U):
        This variable conditionally defines the I_LIMITS symbol, and indicates
@@ -1709,8 +1798,8 @@ i_locale (i_locale.U):
        and indicates whether a C program should include <locale.h>.
 
 i_machcthr (i_machcthr.U):
-           This variable conditionally defines the I_MACH_CTHREADS symbol,
-           and indicates whether a C program should include <mach/cthreads.h>.
+       This variable conditionally defines the I_MACH_CTHREADS symbol,
+       and indicates whether a C program should include <mach/cthreads.h>.
 
 i_malloc (i_malloc.U):
        This variable conditionally defines the I_MALLOC symbol, and indicates
@@ -1724,6 +1813,10 @@ i_memory (i_memory.U):
        This variable conditionally defines the I_MEMORY symbol, and indicates
        whether a C program should include <memory.h>.
 
+i_mntent (i_mntent.U):
+       This variable conditionally defines the I_MNTENT symbol, and indicates
+       whether a C program should include <mntent.h>.
+
 i_ndbm (i_ndbm.U):
        This variable conditionally defines the I_NDBM symbol, which
        indicates to the C program that <ndbm.h> exists and should
@@ -1785,8 +1878,8 @@ i_string (i_string.U):
        indicates that <string.h> should be included rather than <strings.h>.
 
 i_sysaccess (i_sysaccess.U):
-           This variable conditionally defines the I_SYS_ACCESS symbol,
-           and indicates whether a C program should include <sys/access.h>.
+       This variable conditionally defines the I_SYS_ACCESS symbol,
+       and indicates whether a C program should include <sys/access.h>.
 
 i_sysdir (i_sysdir.U):
        This variable conditionally defines the I_SYS_DIR symbol, and indicates
@@ -1811,6 +1904,14 @@ i_sysioctl (i_sysioctl.U):
        indicates to the C program that <sys/ioctl.h> exists and should
        be included.
 
+i_sysmman (i_sysmman.U):
+       This variable conditionally defines the I_SYS_MMAN symbol, and
+       indicates whether a C program should include <sys/mman.h>.
+
+i_sysmount (i_sysmount.U):
+       This variable conditionally defines the I_SYSMOUNT symbol,
+       and indicates whether a C program should include <sys/mount.h>.
+
 i_sysndir (i_sysndir.U):
        This variable conditionally defines the I_SYS_NDIR symbol, and indicates
        whether a C program should include <sys/ndir.h>.
@@ -1824,8 +1925,8 @@ i_sysresrc (i_sysresrc.U):
        and indicates whether a C program should include <sys/resource.h>.
 
 i_syssecrt (i_syssecrt.U):
-           This variable conditionally defines the I_SYS_SECURITY symbol,
-           and indicates whether a C program should include <sys/security.h>.
+       This variable conditionally defines the I_SYS_SECURITY symbol,
+       and indicates whether a C program should include <sys/security.h>.
 
 i_sysselct (i_sysselct.U):
        This variable conditionally defines I_SYS_SELECT, which indicates
@@ -1841,6 +1942,10 @@ i_sysstat (i_sysstat.U):
        This variable conditionally defines the I_SYS_STAT symbol,
        and indicates whether a C program should include <sys/stat.h>.
 
+i_sysstatvfs (i_sysstatvfs.U):
+       This variable conditionally defines the I_SYSSTATVFS symbol,
+       and indicates whether a C program should include <sys/statvfs.h>.
+
 i_systime (i_time.U):
        This variable conditionally defines I_SYS_TIME, which indicates
        to the C program that it should include <sys/time.h>.
@@ -1966,6 +2071,11 @@ installsitelib (sitelib.U):
        those systems using AFS. For extra portability, only this variable
        should be used in makefiles.
 
+installusrbinperl (instubperl.U):
+       This variable tells whether Perl should be installed also as
+       /usr/bin/perl in addition to
+       $installbin/perl
+
 intsize (intsize.U):
        This variable contains the value of the INTSIZE symbol, which
        indicates to the C program how many bytes there are in an int.
@@ -2019,8 +2129,8 @@ libperl (libperl.U):
        library.
 
 libpth (libpth.U):
-       This variable holds the general path used to find libraries. It is
-       intended to be used by other units.
+       This variable holds the general path (space-separated) used to find
+       libraries. It is intended to be used by other units.
 
 libs (libs.U):
        This variable holds the additional libraries we want to use.
@@ -2061,9 +2171,9 @@ locincpth (ccflags.U):
        It's not much, but it parallels the loclibpth stuff in libpth.U.
 
 loclibpth (libpth.U):
-       This variable holds the paths used to find local libraries.  It is
-       prepended to libpth, and is intended to be easily set from the
-       command line.
+       This variable holds the paths (space-separated) used to find local
+       libraries.  It is prepended to libpth, and is intended to be easily
+       set from the command line.
 
 longdblsize (d_longdbl.U):
        This variable contains the value of the LONG_DOUBLESIZE symbol, which
@@ -2123,7 +2233,7 @@ make_set_make (make.U):
        make_set_make='#'               # If your make program handles this for you,
        make_set_make="MAKE=$make"      # if it doesn't.
        I used a comment character so that we can distinguish a
-       'set' value (from a previous config.sh or Configure '-D' option)
+       'set' value (from a previous config.sh or Configure -D option)
        from an uncomputed value.
 
 mallocobj (mallocsrc.U):
@@ -2191,6 +2301,11 @@ mkdir (Loc.U):
        full pathname (if any) of the mkdir program.  After Configure runs,
        the value is reset to a plain "mkdir" and is not useful.
 
+mmaptype (d_mmap.U):
+       This symbol contains the type of pointer returned by mmap()
+       (and simultaneously the type of the first argument).
+       It can be 'void *' or 'caddr_t'.
+
 models (models.U):
        This variable contains the list of memory models supported by this
        system.  Possible component values are none, split, unsplit, small,
@@ -2233,9 +2348,9 @@ myuname (Oldconfig.U):
        whole thing is then lower-cased.
 
 n (n.U):
-       This variable contains the '-n' flag if that is what causes the echo
+       This variable contains the -n flag if that is what causes the echo
        command to suppress newline.  Otherwise it is null.  Correct usage is
-           $echo $n "prompt for a question: $c".
+       $echo $n "prompt for a question: $c".
 
 netdb_hlen_type (netdbtype.U):
        This variable holds the type used for the 2nd argument to
@@ -2498,9 +2613,9 @@ sh (sh.U):
        /bin/sh, though it's possible that some systems will have /bin/ksh,
        /bin/pdksh, /bin/ash, /bin/bash, or even something such as
        D:/bin/sh.exe.
-       This unit comes before Options.U, so you can't set sh with a '-D'
+       This unit comes before Options.U, so you can't set sh with a -D
        option, though you can override this (and startsh)
-       with '-O -Dsh=/bin/whatever -Dstartsh=whatever'
+       with -O -Dsh=/bin/whatever -Dstartsh=whatever
 
 shar (Loc.U):
        This variable is defined but not used by Configure.
@@ -2524,11 +2639,11 @@ shrpenv (libperl.U):
        One way to do this on some systems is to set the environment variable
        LD_RUN_PATH to the directory that will be the final location of the
        shared libperl.so.  The makefile can use this with something like
-               $shrpenv $(CC) -o perl perlmain.o $libperl $libs
+       $shrpenv $(CC) -o perl perlmain.o $libperl $libs
        Typical values are
-               shrpenv="env LD_RUN_PATH=$archlibexp/CORE"
+       shrpenv="env LD_RUN_PATH=$archlibexp/CORE"
        or
-               shrpenv=''
+       shrpenv=''
        See the main perl Makefile.SH for actual working usage.
        Alternatively, we might be able to use a command line option such
        as -R $archlibexp/CORE (Solaris, NetBSD) or -Wl,-rpath
@@ -2626,7 +2741,7 @@ spackage (package.U):
 
 spitshell (spitshell.U):
        This variable contains the command necessary to spit out a runnable
-       shell on this system.  It is either cat or a grep '-v' for # comments.
+       shell on this system.  It is either cat or a grep -v for # comments.
 
 split (models.U):
        This variable contains a flag which will tell the C compiler and loader
@@ -2650,8 +2765,8 @@ startperl (startperl.U):
        script to make sure (hopefully) that it runs with perl and not some
        shell. Of course, that leading line must be followed by the classical
        perl idiom:
-               eval 'exec perl -S $0 ${1+"$@"}'
-                       if $running_under_some_shell;
+       eval 'exec perl -S $0 ${1+"$@"}'
+       if $running_under_some_shell;
        to guarantee perl startup should the shell execute the script. Note
        that this magic incatation is not understood by csh.
 
@@ -2864,6 +2979,11 @@ voidflags (voidflags.U):
        which indicates how much support of the void type is given by this
        compiler.  See VOIDFLAGS for more info.
 
+xlibpth (libpth.U):
+       This variable holds extra path (space-separated) used to find
+       libraries on this platform, for example CPU-specific libraries
+       (on multi-CPU platforms) may be listed here.
+
 zcat (Loc.U):
        This variable is defined but not used by Configure.
        The value is a plain '' and is not useful.
index ddae299..d1f4393 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Fri Feb 12 13:48:44 EET 1999
+# Configuration time: Sat Feb 20 15:45:59 EET 1999
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -30,10 +30,10 @@ afs='false'
 alignbytes='8'
 ansi2knr=''
 aphostname=''
-apiversion='5.00554'
+apiversion='5.00555'
 ar='ar'
-archlib='/opt/perl/lib/5.00554/alpha-dec_osf-thread'
-archlibexp='/opt/perl/lib/5.00554/alpha-dec_osf-thread'
+archlib='/opt/perl/lib/5.00555/alpha-dec_osf-thread'
+archlibexp='/opt/perl/lib/5.00555/alpha-dec_osf-thread'
 archname64=''
 archname='alpha-dec_osf-thread'
 archobjs=''
@@ -51,11 +51,11 @@ cat='cat'
 cc='cc'
 cccdlflags=' '
 ccdlflags=' '
-ccflags='-pthread -std -D__LANGUAGE_C__'
+ccflags='-pthread -std -DLANGUAGE_C'
 ccsymbols='__LANGUAGE_C__=1 _LONGLONG=1 LANGUAGE_C=1 SYSTYPE_BSD=1'
 cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Fri Feb 12 13:48:44 EET 1999'
+cf_time='Sat Feb 20 15:45:59 EET 1999'
 chgrp=''
 chmod=''
 chown=''
@@ -68,7 +68,7 @@ cpio=''
 cpp='cpp'
 cpp_stuff='42'
 cppccsymbols='__alpha=1 __osf__=1 __unix__=1 _SYSTYPE_BSD=1 unix=1'
-cppflags='-pthread -std -D__LANGUAGE_C__'
+cppflags='-pthread -std -DLANGUAGE_C'
 cpplast=''
 cppminus=''
 cpprun='/usr/bin/cpp'
@@ -160,6 +160,7 @@ d_gethent='define'
 d_gethname='define'
 d_gethostprotos='define'
 d_getlogin='define'
+d_getmntent='undef'
 d_getnbyaddr='define'
 d_getnbyname='define'
 d_getnent='define'
@@ -181,6 +182,7 @@ d_getservprotos='define'
 d_gettimeod='define'
 d_gnulibc='undef'
 d_grpasswd='define'
+d_hasmntopt='undef'
 d_htonl='define'
 d_index='undef'
 d_inetaton='define'
@@ -383,6 +385,7 @@ firstmakefile='makefile'
 flex=''
 fpostype='fpos_t'
 freetype='void'
+full_ar='/usr/bin/ar'
 full_csh='/usr/bin/csh'
 full_sed='/usr/bin/sed'
 gccversion=''
@@ -464,14 +467,14 @@ i_vfork='undef'
 ignore_versioned_solibs=''
 incpath=''
 inews=''
-installarchlib='/opt/perl/lib/5.00554/alpha-dec_osf-thread'
+installarchlib='/opt/perl/lib/5.00555/alpha-dec_osf-thread'
 installbin='/opt/perl/bin'
 installman1dir='/opt/perl/man/man1'
 installman3dir='/opt/perl/man/man3'
-installprivlib='/opt/perl/lib/5.00554'
+installprivlib='/opt/perl/lib/5.00555'
 installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread'
-installsitelib='/opt/perl/lib/site_perl/5.00554'
+installsitearch='/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread'
+installsitelib='/opt/perl/lib/site_perl/5.00555'
 installusrbinperl='define'
 intsize='4'
 known_extensions='B DB_File Data/Dumper Devel/Peek Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
@@ -561,8 +564,8 @@ pmake=''
 pr=''
 prefix='/opt/perl'
 prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.00554'
-privlibexp='/opt/perl/lib/5.00554'
+privlib='/opt/perl/lib/5.00555'
+privlibexp='/opt/perl/lib/5.00555'
 prototype='define'
 ptrsize='8'
 randbits='48'
@@ -593,10 +596,10 @@ sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE"
 sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 6 6 16 20 23 23 23 29 48 '
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0'
 signal_t='void'
-sitearch='/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread'
-sitearchexp='/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread'
-sitelib='/opt/perl/lib/site_perl/5.00554'
-sitelibexp='/opt/perl/lib/site_perl/5.00554'
+sitearch='/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread'
+sitearchexp='/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread'
+sitelib='/opt/perl/lib/site_perl/5.00555'
+sitelibexp='/opt/perl/lib/site_perl/5.00555'
 sizetype='size_t'
 sleep=''
 smail=''
@@ -621,7 +624,7 @@ stdio_filbuf=''
 stdio_ptr='((fp)->_ptr)'
 strings='/usr/include/string.h'
 submit=''
-subversion='54'
+subversion='55'
 sysman='/usr/man/man1'
 tail=''
 tar=''
@@ -651,7 +654,7 @@ usethreads='define'
 usevfork='false'
 usrinc='/usr/include'
 uuname=''
-version='5.00554'
+version='5.00555'
 vi=''
 voidflags='15'
 xlibpth='/usr/lib/386 /lib/386'
@@ -671,8 +674,9 @@ config_arg7='-Dperladmin=yourname@yourhost.yourplace.com'
 config_arg8='-Dmydomain=.yourplace.com'
 config_arg9='-Dmyhostname=yourhost'
 config_arg10='-dE'
-PATCHLEVEL=5
-SUBVERSION=54
+PERL_REVISION=5
+PERL_VERSION=5
+PERL_SUBVERSION=55
 CONFIG=true
 # Variables propagated from previous config.sh file.
 pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
index 70bf0f9..54c7e60 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Fri Feb 12 13:48:44 EET 1999
+ * Configuration time: Sat Feb 20 15:45:59 EET 1999
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
  *     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/5.00554/alpha-dec_osf-thread"           /**/
-#define ARCHLIB_EXP "/opt/perl/lib/5.00554/alpha-dec_osf-thread"               /**/
+#define ARCHLIB "/opt/perl/lib/5.00555/alpha-dec_osf-thread"           /**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.00555/alpha-dec_osf-thread"               /**/
 
 /* DLSYM_NEEDS_UNDERSCORE:
  *     This symbol, if defined, indicates that we need to prepend an
  */
 /*#define HAS_FTELLO           / **/
 
+/* HAS_GETMNTENT:
+ *     This symbol, if defined, indicates that the getmntent routine is
+ *     available to iterate through mounted file systems.
+ */
+/*#define HAS_GETMNTENT                / **/
+
+/* HAS_HASMNTOPT:
+ *     This symbol, if defined, indicates that the hasmntopt routine is
+ *     available to query the mount options of file systems.
+ */
+/*#define HAS_HASMNTOPT                / **/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
 
 /* HAS_FSTATFS:
  *     This symbol, if defined, indicates that the fstatfs routine is
- *     available to do stat filesystems of file descriptors.
+ *     available to stat filesystems of file descriptors.
  */
 /* HAS_STRUCT_STATFS_FLAGS:
  *     This symbol, if defined, indicates that the struct statfs
  *     does have the f_flags member containing the mount flags of
  *     the filesystem holding the file.
- *     This kind of struct statfs is coming from sys/mount.h (BSD)
- *     and not from sys/statfs.h (SYSV).
+ *     This kind of struct statfs is coming from sys/mount.h (BSD),
+ *     not from sys/statfs.h (SYSV).
  */
 #define HAS_FSTATFS            /**/
 #define HAS_STRUCT_STATFS_FLAGS                /**/
 
 /* HAS_FSTATVFS:
  *     This symbol, if defined, indicates that the fstatvfs routine is
- *     available to do stat filesystems of file descriptors.
+ *     available to stat filesystems of file descriptors.
  */
 #define HAS_FSTATVFS           /**/
 
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/opt/perl/lib/5.00554"                /**/
-#define PRIVLIB_EXP "/opt/perl/lib/5.00554"            /**/
+#define PRIVLIB "/opt/perl/lib/5.00555"                /**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.00555"            /**/
 
 /* SELECT_MIN_BITS:
  *     This symbol holds the minimum number of bits operated by select.
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread"                /**/
-#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread"            /**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread"                /**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread"            /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
  *     This symbol contains the ~name expanded version of SITELIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITELIB "/opt/perl/lib/site_perl/5.00554"              /**/
-#define SITELIB_EXP "/opt/perl/lib/site_perl/5.00554"          /**/
+#define SITELIB "/opt/perl/lib/site_perl/5.00555"              /**/
+#define SITELIB_EXP "/opt/perl/lib/site_perl/5.00555"          /**/
 
 /* STARTPERL:
  *     This variable contains the string to put in front of a perl
index 7047dfa..d28e91f 100644 (file)
@@ -1072,19 +1072,22 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$i_syssecrt   I_SYS_SECURITY  /**/
 
 /* MEM_ALIGNBYTES:
- *      This symbol contains the number of bytes required to align a
- *      double. Usual values are 2, 4 and 8.
- *      On NeXT starting with 3.2, you can build "Fat" Multiple Architecture
- *      Binaries (MAB) for targets with varying alignment.  This only matters
- *      for perl, where the config.h can be generated and installed on one
- *      system, and used by a different architecture to build an extension.
- *      The default is eight, for safety.
+ *     This symbol contains the number of bytes required to align a
+ *     double. Usual values are 2, 4 and 8. The default is eight,
+ *     for safety.
  */
-#define MEM_ALIGNBYTES $alignbytes     /**/
+#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#  define MEM_ALIGNBYTES 8
+#else
+#define MEM_ALIGNBYTES $alignbytes
+#endif
 
 /* BYTEORDER:
  *     This symbol holds the hexadecimal constant defined in byteorder,
  *     i.e. 0x1234 or 0x4321, etc...
+ *     If the compiler supports cross-compiling or multiple-architecture
+ *     binaries (eg. on NeXT systems), use compiler-defined macros to
+ *     determine the byte order.
  *     On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
  *     Binaries (MAB) on either big endian or little endian machines.
  *     The endian-ness is available at compile-time.  This only matters
@@ -1095,14 +1098,31 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     so the default case (for NeXT) is big endian to catch them. 
  *     This might matter for NeXT 3.0.
  */
-#ifndef NeXT
+#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#  ifdef __LITTLE_ENDIAN__
+#    if LONGSIZE == 4
+#      define BYTEORDER 0x1234
+#    else
+#      if LONGSIZE == 8
+#        define BYTEORDER 0x12345678
+#      endif
+#    endif
+#  else
+#    ifdef __BIG_ENDIAN__
+#      if LONGSIZE == 4
+#        define BYTEORDER 0x4321
+#      else
+#        if LONGSIZE == 8
+#          define BYTEORDER 0x87654321
+#        endif
+#      endif
+#    endif
+#  endif
+#  if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
+#    define BYTEORDER 0x4321
+#  endif
+#else
 #define BYTEORDER 0x$byteorder /* large digits for MSB */
-#else  /* NeXT */
-#ifdef __LITTLE_ENDIAN__
-#define BYTEORDER 0x1234
-#else /* __BIG_ENDIAN__ */
-#define BYTEORDER 0x4321
-#endif /* ENDIAN CHECK */
 #endif /* NeXT */
 
 /* CASTI32:
@@ -2042,6 +2062,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_archlib ARCHLIB "$archlib"         /**/
 #$d_archlib ARCHLIB_EXP "$archlibexp"          /**/
 
+/* CROSSCOMPILE:
+ *     This symbol, if defined, signifies that we our
+ *     build process is a cross-compilation.
+ */
+#$crosscompile CROSSCOMPILE            /**/
+
 /* DLSYM_NEEDS_UNDERSCORE:
  *     This symbol, if defined, indicates that we need to prepend an
  *     underscore to the symbol name before calling dlsym().  This only
@@ -2062,6 +2088,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_ftello HAS_FTELLO          /**/
 
+/* HAS_GETMNTENT:
+ *     This symbol, if defined, indicates that the getmntent routine is
+ *     available to iterate through mounted file systems.
+ */
+#$d_getmntent HAS_GETMNTENT            /**/
+
+/* HAS_HASMNTOPT:
+ *     This symbol, if defined, indicates that the hasmntopt routine is
+ *     available to query the mount options of file systems.
+ */
+#$d_hasmntopt HAS_HASMNTOPT            /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
@@ -2089,21 +2127,21 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 
 /* HAS_FSTATFS:
  *     This symbol, if defined, indicates that the fstatfs routine is
- *     available to do stat filesystems of file descriptors.
+ *     available to stat filesystems of file descriptors.
  */
 /* HAS_STRUCT_STATFS_FLAGS:
  *     This symbol, if defined, indicates that the struct statfs
  *     does have the f_flags member containing the mount flags of
  *     the filesystem holding the file.
- *     This kind of struct statfs is coming from sys/mount.h (BSD)
- *     and not from sys/statfs.h (SYSV).
+ *     This kind of struct statfs is coming from sys/mount.h (BSD),
+ *     not from sys/statfs.h (SYSV).
  */
 #$d_fstatfs HAS_FSTATFS                /**/
 #$d_statfsflags HAS_STRUCT_STATFS_FLAGS                /**/
 
 /* HAS_FSTATVFS:
  *     This symbol, if defined, indicates that the fstatvfs routine is
- *     available to do stat filesystems of file descriptors.
+ *     available to stat filesystems of file descriptors.
  */
 #$d_fstatvfs HAS_FSTATVFS              /**/
 
@@ -2288,6 +2326,15 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_off64t      HAS_OFF64_T            /**/
 #$d_dirent64_s   HAS_STRUCT_DIRENT64   /**/
 
+/* MULTIARCH:
+ *     This symbol, if defined, signifies that the build
+ *     process will produce some binary files that are going to be
+ *     used in a cross-platform environment.  This is the case for
+ *     example with the NeXT "fat" binaries that contain executables
+ *     for several CPUs.
+ */
+#$multiarch MULTIARCH          /**/
+
 /* PRIVLIB:
  *     This symbol contains the name of the private library for this package.
  *     The library is private in the sense that it needn't be in anyone's
index 212ae5f..c71d5b8 100644 (file)
 
 1.63 19th December 1998
 
-   Fix to allow DB 2.6.x to build with DB_File
-   Documentation upadated to use push,pop etc in the RECNO example & to 
-   include the find_dup & del_dup methods.
+   * Fix to allow DB 2.6.x to build with DB_File
+   * Documentation updated to use push,pop etc in the RECNO example &
+     to include the find_dup & del_dup methods.
+
+1.64 21st February 1999
+
+   * Tidied the 1.x to 2.x flag mapping code.
+   * Added a patch from Mark Kettenis <kettenis@wins.uva.nl> to fix a flag
+     mapping problem with O_RDONLY on the Hurd
+   * Updated the message that db-recno.t prints when tests 51, 53 or 55 fail.
+
index dc68974..738de7c 100644 (file)
@@ -1,10 +1,10 @@
 # DB_File.pm -- Perl 5 interface to Berkeley DB 
 #
 # written by Paul Marquess (Paul.Marquess@btinternet.com)
-# last modified 2nd December 1998
-# version 1.63
+# last modified 21st February 1999
+# version 1.64
 #
-#     Copyright (c) 1995-8 Paul Marquess. All rights reserved.
+#     Copyright (c) 1995-9 Paul Marquess. All rights reserved.
 #     This program is free software; you can redistribute it and/or
 #     modify it under the same terms as Perl itself.
 
@@ -145,7 +145,7 @@ use vars qw($VERSION @ISA @EXPORT $AUTOLOAD $DB_BTREE $DB_HASH $DB_RECNO $db_ver
 use Carp;
 
 
-$VERSION = "1.63" ;
+$VERSION = "1.64" ;
 
 #typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE;
 $DB_BTREE = new DB_File::BTREEINFO ;
@@ -1785,7 +1785,7 @@ compile properly on IRIX 5.3.
 
 =head1 COPYRIGHT
 
-Copyright (c) 1995-8 Paul Marquess. All rights reserved. This program
+Copyright (c) 1995-9 Paul Marquess. All rights reserved. This program
 is free software; you can redistribute it and/or modify it under the
 same terms as Perl itself.
 
index 33f4b69..540fa9c 100644 (file)
@@ -3,12 +3,12 @@
  DB_File.xs -- Perl 5 interface to Berkeley DB 
 
  written by Paul Marquess <Paul.Marquess@btinternet.com>
- last modified 19th November 1998
- version 1.63
+ last modified 21st February 1999
+ version 1.64
 
  All comments/suggestions/problems are welcome
 
-     Copyright (c) 1995, 1996, 1997, 1998 Paul Marquess. All rights reserved.
+     Copyright (c) 1995-9 Paul Marquess. All rights reserved.
      This program is free software; you can redistribute it and/or
      modify it under the same terms as Perl itself.
 
@@ -60,7 +60,9 @@
                fixed typo in O_RDONLY test.
         1.62 -  No change to DB_File.xs
         1.63 -  Fix to alllow DB 2.6.x to build.
-
+        1.64 -  Tidied up the 1.x to 2.x flags mapping code.
+               Added a patch from Mark Kettenis <kettenis@wins.uva.nl>
+               to fix a flag mapping problem with O_RDONLY on the Hurd
 
 
 
 
 #ifndef PERL_VERSION
 #include "patchlevel.h"
-#define PERL_VERSION PATCHLEVEL
+#define PERL_REVISION  5
+#define PERL_VERSION   PATCHLEVEL
+#define PERL_SUBVERSION        SUBVERSION
+#endif
+
+#if PERL_REVISION == 5 && (PERL_VERSION < 4 || (PERL_VERSION == 4 && PERL_SUBVERSION <= 75 ))
+
+#    define PL_sv_undef                sv_undef
+#    define PL_na              na
+
 #endif
 
 /* Being the Berkeley DB we prefer the <sys/cdefs.h> (which will be
@@ -825,19 +836,14 @@ SV *   sv ;
         if ((flags & O_CREAT) == O_CREAT)
             Flags |= DB_CREATE ;
 
-#ifdef O_NONBLOCK
-        if ((flags & O_NONBLOCK) == O_NONBLOCK)
-            Flags |= DB_EXCL ;
-#endif
-
 #if O_RDONLY == 0
         if (flags == O_RDONLY)
 #else
-        if ((flags & O_RDONLY) == O_RDONLY)
+        if ((flags & O_RDONLY) == O_RDONLY && (flags & O_RDWR) != O_RDWR)
 #endif
             Flags |= DB_RDONLY ;
 
-#ifdef O_NONBLOCK
+#ifdef O_TRUNC
         if ((flags & O_TRUNC) == O_TRUNC)
             Flags |= DB_TRUNCATE ;
 #endif
index 8a95342..3463ec0 100644 (file)
@@ -1,8 +1,8 @@
 # typemap for Perl 5 interface to Berkeley 
 #
 # written by Paul Marquess <Paul.Marquess@btinternet.com>
-# last modified 13th May 1998
-# version 1.59
+# last modified 21st February 1999
+# version 1.64
 #
 #################################### DB SECTION
 #
index 9217cc3..f418ea1 100644 (file)
@@ -34,16 +34,16 @@ case "$cc" in
 *gcc*) ;;
 *)
     case "$osvers" in
-    *4.1*)     ccflags="$ccflags -DLANGUAGE_C -Olimit 3400" ;;
-    *4.2*)     ccflags="$ccflags -DLANGUAGE_C -Olimit 3400"
+    *4.1*)     ccflags="$ccflags -DLANGUAGE_C -Olimit 3800" ;;
+    *4.2*)     ccflags="$ccflags -DLANGUAGE_C -Olimit 3800"
                # Prototypes sometimes cause compilation errors in 4.2.
                prototype=undef   
                case "$myuname" in
                *risc*)  d_volatile=undef ;;
                esac
                ;;
-    *4.3*)     ccflags="$ccflags -std1 -DLANGUAGE_C -Olimit 3400" ;;
-    *) ccflags="$ccflags -std -Olimit 3400" ;;
+    *4.3*)     ccflags="$ccflags -std1 -DLANGUAGE_C -Olimit 3800" ;;
+    *) ccflags="$ccflags -std -Olimit 3800" ;;
     esac
     ;;
 esac
diff --git a/perl.c b/perl.c
index 81d1f96..836ec10 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -2118,6 +2118,13 @@ sed %s -e \"/^[^#]/b\" \
     }
 }
 
+/* Mention
+ * I_SYSSTATVFS        HAS_FSTATVFS
+ * I_SYSMOUNT
+ * I_STATFS    HAS_FSTATFS
+ * I_MNTENT    HAS_GETMNTENT   HAS_HASMNTOPT
+ * here so that metaconfig picks them up. */
+
 #ifdef IAMSUID
 static int
 fd_on_nosuid_fs(int fd)
diff --git a/perl.h b/perl.h
index 94fd478..af64d64 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1613,7 +1613,7 @@ typedef I32 CHECKPOINT;
 # define HAS_VTOHS
 # define HAS_HTOVL
 # define HAS_HTOVS
-# if BYTEORDER == 0x4321
+# if BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
 #  define vtohl(x)     ((((x)&0xFF)<<24)       \
                        +(((x)>>24)&0xFF)       \
                        +(((x)&0x0000FF00)<<8)  \
index db45087..15d8f0e 100644 (file)
@@ -265,7 +265,7 @@ F<http://www.perl.com/CPAN/src/index.html>
         DYNIX/ptx       OpenSTEP        Windows 3.1     1)
         FreeBSD         OS/2            Windows 95      1) 3)
         HP-UX           OS390   2)      Windows 98      1) 3)
-       Hurd            PowerUX         Windows NT      1) 3)
+       Hurd            PowerMAX        Windows NT      1) 3)
                        QNX             VOS
 
         1) in DOS mode either the DOS or OS/2 ports can be used
@@ -275,7 +275,7 @@ F<http://www.perl.com/CPAN/src/index.html>
 The following platforms have been known to build Perl from the source
 but for the Perl release 5.005_03 we haven't been able to verify them,
 either because the hardware/software platforms are rather rare or
-because we don't have an active champion on these platforms.
+because we don't have an active champion on these platforms, or both.
                                        
         3b1             FPS             Plan 9
         AmigaOS         GENIX           RISC/os
@@ -290,7 +290,7 @@ because we don't have an active champion on these platforms.
         ESIX
 
 The following platforms are planned to be supported in the standard
-source distribution of the Perl release 5.006 but are not
+source code distribution of the Perl release 5.006 but are not
 supported in the Perl release 5.005_03:
 
         BS2000
@@ -302,7 +302,7 @@ binaries available via F<http://www.perl.com/CPAN/ports/index.html>.
                                Perl release
 
        AS/400                  5.003
-       MacOS                   5.004_04
+       MacOS                   5.004
        Tandem Guardian         5.004
 
 The following platforms have only binaries available via
@@ -310,7 +310,7 @@ F<http://www.perl.com/CPAN/ports/index.html>.
 
                                Perl release
 
-       Acorn RISCOS            5.001
+       Acorn RISCOS            5.005_02
        AOS                     5.002
        LynxOS                  5.004_02
        Netware                 5.003_07
index 258473a..0c0520c 100644 (file)
@@ -156,6 +156,11 @@ now correctly prints "3|a", instead of "2|a".
 The new format type 'Z' is useful for packing and unpacking null-terminated
 strings.  See L<perlfunc/"pack">.
 
+=head2 pack() format modifier '_' supported
+
+The new format type modifer '_' is useful for packing and unpacking
+native shorts, ints, and longs.  See L<perlfunc/"pack">.
+
 =head1 Significant bug fixes
 
 =head2 E<lt>HANDLEE<gt> on empty files
@@ -175,11 +180,6 @@ Note that the behavior of:
 
 is unchanged (it continues to leave the file empty).
 
-=head2 pack() format modifier '_' supported
-
-The new format type modifer '_' is useful for packing and unpacking
-native shorts, ints, and longs.  See L<perlfunc/"pack">.
-
 =head1 Supported Platforms
 
 =over 4
@@ -190,11 +190,15 @@ VM/ESA is now supported.
 
 =item *
 
-Siemens BS200 is now supported.
+Siemens BS2000 is now supported under the POSIX Shell.
+
+=item *
+
+The Mach CThreads (NEXTSTEP, OPENSTEP) are now supported by the Thread extension.
 
 =item *
 
-The Mach CThreads (NeXTstep) are now supported by the Thread extension.
+GNU/Hurd is now supported.
 
 =back
 
index 7ba00c8..a193d67 100644 (file)
@@ -2692,7 +2692,7 @@ C<"i_"> and C<"I_"> also work but only because of completeness;
 they are identical to C<"i"> and C<"I">.
 
 The actual sizes (in bytes) of native shorts, ints, and longs on
-the platform where Perl was built are available via L<Config>:
+the platform where Perl was built are also available via L<Config>:
 
        use Config;
        print $Config{shortsize}, "\n";
@@ -2704,12 +2704,17 @@ the platform where Perl was built are available via L<Config>:
 The integer formats C<"s">, C<"S">, C<"i">, C<"I">, C<"l">, and C<"L">
 are inherently non-portable between processors and operating systems
 because they obey the native byteorder and endianness.  For example a
-4-byte integer 0x12345678 (305419896 decimal) be ordered natively
+4-byte integer 0x87654321 (2271560481 decimal) be ordered natively
 (arranged in and handled by the CPU registers) into bytes as
  
-       0x12 0x34 0x56 0x78     # big-endian
-       0x78 0x56 0x34 0x12     # little-endian
+       0x12 0x34 0x56 0x78     # little-endian
+       0x78 0x56 0x34 0x12     # big-endian
  
+Basically, the Intel, Alpha, and VAX CPUs and little-endian, while
+everybody else, for example Motorola m68k/88k, PPC, Sparc, HP PA,
+Power, and Cray are big-endian.  MIPS can be either: Digital used it
+in little-endian mode, SGI uses it in big-endian mode.
+
 The names `big-endian' and `little-endian' are joking references to
 the classic "Gulliver's Travels" (via the paper "On Holy Wars and a
 Plea for Peace" by Danny Cohen, USC/ISI IEN 137, April 1, 1980) and
@@ -2725,14 +2730,17 @@ You can see your system's preference with
        print join(" ", map { sprintf "%#02x", $_ }
                             unpack("C*",pack("L",0x12345678))), "\n";
 
-The actual byteorder on the platform where Perl was built is available
+The byteorder on the platform where Perl was built is also available
 via L<Config>:
 
        use Config;
        print $Config{byteorder}, "\n";
 
-If you want portable integers use the formats C<"n">, C<"N">, C<"v">, and
-"V", their byte endianness and size is known.
+Byteorders C<'1234'> and C<'12345678'> are little-endian, C<'4321'>
+and C<'87654321'> are big-endian.
+
+If you want portable packed integers use the formats C<"n">, C<"N">,
+C<"v">, and C<"V">, their byte endianness and size is known.
 
 =item *
 
index df85013..596ff72 100644 (file)
@@ -456,7 +456,7 @@ symbolic references.  Lexical variables (declared with my()) aren't in
 a symbol table, and thus are invisible to this mechanism.  For example:
 
     local $value = 10;
-    $ref = \$value;
+    $ref = "value";
     {
        my $value = 20;
        print $$ref;
diff --git a/pp.c b/pp.c
index d5b7081..7577394 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -78,6 +78,9 @@ typedef unsigned UBW;
 #define SIZE16 2
 #define SIZE32 4
 
+/* CROSSCOMPILE and MULTIARCH are going to affect pp_pack() and pp_unpack().
+   --jhi Feb 1999 */
+
 #if SHORTSIZE != SIZE16 || LONGSIZE != SIZE32
 #   define PERL_NATINT_PACK
 #endif
@@ -3549,6 +3552,10 @@ PP(pp_unpack)
                 {
                    while (len-- > 0) {
                        COPY16(s, &ashort);
+#if SHORTSIZE > SIZE16
+                       if (ashort > 32767)
+                         ashort -= 65536;
+#endif
                        s += SIZE16;
                        culong += ashort;
                    }
@@ -3572,6 +3579,10 @@ PP(pp_unpack)
                 {
                    while (len-- > 0) {
                        COPY16(s, &ashort);
+#if SHORTSIZE > SIZE16
+                       if (ashort > 32767)
+                         ashort -= 65536;
+#endif
                        s += SIZE16;
                        sv = NEWSV(38, 0);
                        sv_setiv(sv, (IV)ashort);
@@ -3747,6 +3758,10 @@ PP(pp_unpack)
                 {
                    while (len-- > 0) {
                        COPY32(s, &along);
+#if LONGSIZE > SIZE32
+                       if (along > 2147483647)
+                         along -= 4294967296;
+#endif
                        s += SIZE32;
                        if (checksum > 32)
                            cdouble += (double)along;
@@ -3773,6 +3788,10 @@ PP(pp_unpack)
                 {
                    while (len-- > 0) {
                        COPY32(s, &along);
+#if LONGSIZE > SIZE32
+                       if (along > 2147483647)
+                         along -= 4294967296;
+#endif
                        s += SIZE32;
                        sv = NEWSV(42, 0);
                        sv_setiv(sv, (IV)along);
@@ -4555,7 +4574,7 @@ PP(pp_pack)
            }
            break;
        case 's':
-#if SHORTSIZE != 2
+#if SHORTSIZE != SIZE16
            if (natint) {
                while (len-- > 0) {
                    fromstr = NEXTFROM;
index 636a43f..d5afeb0 100755 (executable)
@@ -42,14 +42,16 @@ sub bad_one
 {
     print STDERR <<EOM unless $bad_ones++ ;
 #
-# Some older versions of Berkeley DB will fail tests 51, 53 and 55.
+# Some older versions of Berkeley DB version 1 will fail tests 51,
+# 53 and 55.
 #
 # You can safely ignore the errors if you're never going to use the
 # broken functionality (recno databases with a modified bval). 
 # Otherwise you'll have to upgrade your DB library.
 #
-# If you want to upgrade Berkeley DB, the most recent version is 1.85.
-# Check out http://www.bostic.com/db for more details.
+# If you want to use Berkeley DB version 1, then 1.85 and 1.86 are the
+# last versions that were released. Berkeley DB version 2 is continually
+# being updated -- Check out http://www.sleepycat.com/ for more details.
 #
 EOM
 }
index 3e31e36..4bfbfa3 100755 (executable)
@@ -6,7 +6,7 @@ BEGIN {
     require Config; import Config;
 }
 
-print "1..98\n";
+print "1..142\n";
 
 $format = "c2 x5 C C x s d i l a6";
 # Need the expression in here to force ary[5] to be numeric.  This avoids
@@ -266,145 +266,90 @@ print "ok ", $test++, "\n";
 print "not " unless length(pack("i_", 0)) == length(pack("i", 0));
 print "ok ", $test++, "\n";
 
-# 79..94: test the limits
+# 79..138: pack <-> unpack bijectionism
 
-# Some possibilities for $Config{byteorder} and $Config{.*size}.
-# Note that CPUs can feature at several places.
-#
-# Config
-#
-# byteorder
-#
-# 1234         x86, vax, (DEC) mips
-# 12345678     alpha
-# 4321         sparc, ppc, hppa, (IRIX) mips, motorola
-# 87654321     sparc, mips, hppa, cray
-#
-#              x86     alpha   sparc   cray
-# shortsize    2       2       2       8
-# intsize      4       4       4       8
-# longsize     4       8       8       8
-#
+#  79.. 83 c
+foreach my $c (-128, -1, 0, 1, 127) {
+    print "not " unless unpack("c", pack("c", $c)) == $c;
+    print "ok ", $test++, "\n";
+}
 
-print "not " unless unpack("c", pack("c",  127)) ==  127;
-print "ok ", $test++, "\n";
+#  84.. 88: C
+foreach my $C (0, 1, 127, 128, 255) {
+    print "not " unless unpack("C", pack("C", $C)) == $C;
+    print "ok ", $test++, "\n";
+}
 
-print "not " unless unpack("c", pack("c", -128)) == -128;
-print "ok ", $test++, "\n";
+#  89.. 93: s
+foreach my $s (-32768, -1, 0, 1, 32767) {
+    print "not " unless unpack("s", pack("s", $s)) == $s;
+    print "ok ", $test++, "\n";
+}
 
-print "not " unless unpack("C", pack("C",  255)) ==  255;
-print "ok ", $test++, "\n";
+#  94.. 98: S
+foreach my $S (0, 1, 32767, 32768, 65535) {
+    print "not " unless unpack("S", pack("S", $S)) == $S;
+    print "ok ", $test++, "\n";
+}
 
-print "not " unless unpack("s", pack("s",  32767)) ==  32767;
-print "ok ", $test++, "\n";
+#  99..103: i
+foreach my $i (-2147483648, -1, 0, 1, 2147483647) {
+    print "not " unless unpack("i", pack("i", $i)) == $i;
+    print "ok ", $test++, "\n";
+}
 
-if ($Config{shortsize} == 2) {
-    print "not " unless unpack("s", pack("s", -32768)) == -32768;
+# 104..108: I
+foreach my $I (0, 1, 2147483647, 2147483648, 4294967295) {
+    print "not " unless unpack("I", pack("I", $I)) == $I;
     print "ok ", $test++, "\n";
-} else {
-    if ($Config{shortsize} == 8 && $Config{byteorder} eq '87654321') {
-        print "not " unless unpack("s_", pack("s_", -32768)) == -32768;
-        print "ok ", $test++, "\n";
-    } else {
-        print "ok ", $test++, " # skipped\n";
-    }
 }
 
-print "not " unless unpack("S", pack("S",  65535)) ==  65535;
-print "ok ", $test++, "\n";
+# 109..113: l
+foreach my $l (-2147483648, -1, 0, 1, 2147483647) {
+    print "not " unless unpack("l", pack("l", $l)) == $l;
+    print "ok ", $test++, "\n";
+}
 
-print "not " unless unpack("i", pack("i",  2147483647)) ==  2147483647;
-print "ok ", $test++, "\n";
+# 114..118: L
+foreach my $L (0, 1, 2147483647, 2147483648, 4294967295) {
+    print "not " unless unpack("L", pack("L", $L)) == $L;
+    print "ok ", $test++, "\n";
+}
 
-print "not " unless unpack("i", pack("i", -2147483648)) == -2147483648;
-print "ok ", $test++, "\n";
+# 119..123: n
+foreach my $n (0, 1, 32767, 32768, 65535) {
+    print "not " unless unpack("n", pack("n", $n)) == $n;
+    print "ok ", $test++, "\n";
+}
 
-print "not " unless unpack("I", pack("I",  4294967295)) ==  4294967295;
-print "ok ", $test++, "\n";
+# 124..128: v
+foreach my $v (0, 1, 32767, 32768, 65535) {
+    print "not " unless unpack("v", pack("v", $v)) == $v;
+    print "ok ", $test++, "\n";
+}
 
-print "not " unless unpack("l", pack("l",  2147483647)) ==  2147483647;
-print "ok ", $test++, "\n";
+# 129..133: N
+foreach my $N (0, 1, 2147483647, 2147483648, 4294967295) {
+    print "not " unless unpack("N", pack("N", $N)) == $N;
+    print "ok ", $test++, "\n";
+}
 
-if ($Config{longsize} == 4 || $Config{byteorder} eq '12345678') {
-    print "not " unless unpack("l", pack("l", -2147483648)) == -2147483648;
+# 134..138: V
+foreach my $V (0, 1, 2147483647, 2147483648, 4294967295) {
+    print "not " unless unpack("V", pack("V", $V)) == $V;
     print "ok ", $test++, "\n";
-} else {
-    if ($Config{shortsize} == 8 && $Config{byteorder} eq '87654321') {
-        print "not "
-            unless unpack("l_", pack("l_", -2147483648)) == -2147483648;
-        print "ok ", $test++, "\n";
-    } else {
-        print "ok ", $test++, " # skipped\n";
-    }
 }
 
-print "not " unless unpack("L", pack("L",  4294967295)) ==  4294967295;
-print "ok ", $test++, "\n";
+# 139..142: pack nvNV byteorders
 
-print "not " unless unpack("n", pack("n",  65535)) == 65535;
+print "not " unless pack("n", 0xdead) eq "\xde\xad";
 print "ok ", $test++, "\n";
 
-if ($Config{shortsize} == 2) {
-    print "not " unless unpack("v", pack("v",  65535)) == 65535;
-    print "ok ", $test++, "\n";
-} else {
-    print "ok ", $test++, " # skipped\n";
-}
-
-print "not " unless unpack("N", pack("N",  4294967295)) ==  4294967295;
+print "not " unless pack("v", 0xdead) eq "\xad\xde";
 print "ok ", $test++, "\n";
 
-if ($Config{longsize} == 4 || $Config{byteorder} eq '12345678') {
-    print "not " unless unpack("V", pack("V",  4294967295)) ==  4294967295;
-    print "ok ", $test++, "\n";
-} else {
-    print "ok ", $test++, " # skipped\n";
-}
+print "not " unless pack("N", 0xdeadbeef) eq "\xde\xad\xbe\xef";
+print "ok ", $test++, "\n";
 
-# 95..98 test the n/v/N/V byteorder
-
-if ($Config{byteorder} =~ /^1234(5678)?$/ ||
-    $Config{byteorder} =~ /^(8765)?4321$/) {
-
-    if ($Config{shortsize} == 2 ||
-        $Config{byteorder} eq '87654321') {
-        print "not " unless pack("n", 0xdead) eq "\xde\xad";
-        print "ok ", $test++, "\n";
-
-        if ($Config{byteorder} ne '87654321') {
-            print "not " unless pack("v", 0xdead) eq "\xad\xde";
-            print "ok ", $test++, "\n";
-        } else {
-            print "ok ", $test++, " # skipped\n";
-        }
-    } else {
-        # shortsize != 2 systems require more thought
-        foreach (95..96) {
-            print "ok ", $test++, " # skipped\n";
-        }
-    }
-
-    if ($Config{longsize} == 4 ||
-        $Config{byteorder} eq '12345678' ||
-        $Config{byteorder} eq '87654321') {
-        print "not " unless pack("N", 0xdeadbeef) eq "\xde\xad\xbe\xef";
-        print "ok ", $test++, "\n";
-
-        if ($Config{byteorder} ne '87654321') {
-            print "not " unless pack("V", 0xdeadbeef) eq "\xef\xbe\xad\xde";
-            print "ok ", $test++, "\n";
-        } else {
-            print "ok ", $test++, " # skipped\n";
-        }
-    } else {
-        # exotic longsize != 2 systems require more thought
-        foreach (97..98) {
-            print "ok ", $test++, " # skipped\n";
-        }
-    }
-} else {
-   # exotic byteorder system require more thought 
-   foreach (95..98) {
-       print "ok ", $test++, " # skipped\n";
-   }
-}
+print "not " unless pack("V", 0xdeadbeef) eq "\xef\xbe\xad\xde";
+print "ok ", $test++, "\n";
index ab5fdfb..2ea5667 100644 (file)
@@ -62,6 +62,8 @@ $ myname = myhostname
 $ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE")
 $!
 $! ##ADD NEW CONSTANTS HERE##
+$ perl_multiarch="undef"
+$ perl_crosscompile="undef"
 $ perl_d_madvise="undef"
 $ perl_d_msync="undef"
 $ perl_d_mprotect="undef"
@@ -3082,6 +3084,8 @@ $ WC "d_mprotect='" + perl_d_mprotect + "'"
 $ WC "d_munmap='" + perl_d_munmap + "'"
 $ WC "d_mmap='" + perl_d_mmap + "'"
 $ WC "i_sysmman='" + perl_i_sysmman + "'"
+$ WC "multiarch='" + perl_multiarch + "'"
+$ WC "crosscompile='" + perl_crosscompile + "'"
 $!
 $! ##WRITE NEW CONSTANTS HERE##
 $!
index 1726a36..fa1daf9 100644 (file)
@@ -67,6 +67,7 @@ cppminus=''
 cpprun='cpp32 -oCON'
 cppstdin='cpp32 -oCON'
 cppsymbols=''
+crosscompile='undef'
 cryptlib=''
 csh='undef'
 d_Gconvert='gcvt((x),(n),(b))'
@@ -518,6 +519,7 @@ mmaptype='void *'
 models='none'
 modetype='mode_t'
 more='more /e'
+multiarch='undef'
 mv=''
 myarchname='MSWin32'
 mydomain=''
index a1d5d0b..e270d49 100644 (file)
@@ -67,6 +67,7 @@ cppminus='-'
 cpprun='gcc -E'
 cppstdin='gcc -E'
 cppsymbols=''
+crosscompile='undef'
 cryptlib=''
 csh='undef'
 d_Gconvert='sprintf((b),"%.*g",(n),(x))'
@@ -518,6 +519,7 @@ mmaptype='void *'
 models='none'
 modetype='mode_t'
 more='more /e'
+multiarch='undef'
 mv=''
 myarchname='MSWin32'
 mydomain=''
index 11aa47e..082b4c1 100644 (file)
@@ -67,6 +67,7 @@ cppminus=''
 cpprun='cl -nologo -E'
 cppstdin='cl -nologo -E'
 cppsymbols=''
+crosscompile='undef'
 cryptlib=''
 csh='undef'
 d_Gconvert='sprintf((b),"%.*g",(n),(x))'
@@ -518,6 +519,7 @@ mmaptype='void *'
 models='none'
 modetype='mode_t'
 more='more /e'
+multiarch='undef'
 mv=''
 myarchname='MSWin32'
 mydomain=''
index 3051ee0..cfa6474 100644 (file)
  */
 /*#define HAS_MPROTECT         /**/
 
+/* MULTIARCH:
+ *     This symbol, if defined, indicates that we have a multiarchitecture
+ *     build.
+ */
+/*#define MULTIARCH            /**/
+
+/* CROSSCOMPILE:
+ *     This symbol, if defined, indicates that we have a cross-compile
+ *     build.
+ */
+/*#define MULTIARCH            /**/
+
 /* HAS_READV:
  *     This symbol, if defined, indicates that the readv routine is
  *     available to do gather reads.  You will also need <sys/uio.h>
index 23e2ac5..0d30b29 100644 (file)
  */
 /*#define HAS_MPROTECT         /**/
 
+/* MULTIARCH:
+ *     This symbol, if defined, indicates that we have a multiarchitecture
+ *     build.
+ */
+/*#define MULTIARCH            /**/
+
+/* CROSSCOMPILE:
+ *     This symbol, if defined, indicates that we have a cross-compile
+ *     build.
+ */
+/*#define MULTIARCH            /**/
+
 /* HAS_READV:
  *     This symbol, if defined, indicates that the readv routine is
  *     available to do gather reads.  You will also need <sys/uio.h>
index 8db3fcb..3b2185f 100644 (file)
  */
 /*#define HAS_MPROTECT         /**/
 
+/* MULTIARCH:
+ *     This symbol, if defined, indicates that we have a multiarchitecture
+ *     build.
+ */
+/*#define MULTIARCH            /**/
+
+/* CROSSCOMPILE:
+ *     This symbol, if defined, indicates that we have a cross-compile
+ *     build.
+ */
+/*#define MULTIARCH            /**/
+
 /* HAS_READV:
  *     This symbol, if defined, indicates that the readv routine is
  *     available to do gather reads.  You will also need <sys/uio.h>