Configure nits; add socksizetype; add getfsstat for completeness;
Jarkko Hietaniemi [Fri, 25 Feb 2000 22:53:51 +0000 (22:53 +0000)]
add lseekproto, usefull64bits, socksizetype getfsstat to non-UNIX
lands; regen Configure.

p4raw-id: //depot/cfgperl@5259

17 files changed:
Configure
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
doio.c
epoc/config.sh
perl.c
pp_sys.c
vms/subconfigure.com
vos/config.def
win32/config.bc
win32/config.gc
win32/config.vc
win32/config_H.bc
win32/config_H.gc
win32/config_H.vc

index 126ff93..5de3295 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 25 07:45:17 EET 2000 [metaconfig 3.0 PL70]
+# Generated on Sat Feb 26 00:48:15 EET 2000 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -364,6 +364,7 @@ d_ftime=''
 d_gettimeod=''
 d_Gconvert=''
 d_getcwd=''
+d_getfsstat=''
 d_getgrent=''
 d_getgrps=''
 d_gethbyaddr=''
@@ -864,6 +865,7 @@ siteprefix=''
 siteprefixexp=''
 sizetype=''
 so=''
+socksizetype=''
 sharpbang=''
 shsharp=''
 spitshell=''
@@ -4276,7 +4278,7 @@ if eval $compile_ok; then
                echo "(I can't execute the test program--guessing $fpossize.)" >&4
                ;;
        *)      fpossize=$yyy
-               echo "Your $zzz is bytes long." >&4
+               echo "Your $zzz is $fpossize bytes long."
                ;;
        esac
 else
@@ -9008,6 +9010,11 @@ esac
 set getcwd d_getcwd
 eval $inlibc
 
+
+: see if getfsstat exists
+set getfsstat d_getfsstat
+eval $inlibc
+
 : see if getgrent exists
 set getgrent d_getgrent
 eval $inlibc
@@ -11044,37 +11051,6 @@ set d_sigsetjmp
 eval $setvar
 $rm -f try.c try
 
-: see what type is used for size_t
-rp="What is the type used for the length parameter for string functions?"
-set size_t sizetype 'unsigned int' stdio.h sys/types.h
-eval $typedef_ask
-
-: check for socklen_t
-echo " "
-echo "Checking to see if you have socklen_t..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#$d_socket HAS_SOCKET
-#ifdef HAS_SOCKET
-#include <sys/socket.h>
-#endif
-int main() { socklen_t x = 16; }
-EOCP
-set try
-if eval $compile; then
-       val="$define"
-       echo "You have socklen_t."
-else
-       val="$undef"
-       echo "You do not have socklen_t."
-       case "$sizetype" in
-       size_t) echo "(You do have size_t, that might work.)" ;;
-       esac
-fi
-$rm -f try try.*
-set d_socklen_t
-eval $setvar
-
 : see if sys/stat.h is available
 set sys/stat.h i_sysstat
 eval $inhdr
@@ -12849,6 +12825,11 @@ EOSH
 chmod +x protochk
 $eunicefix protochk
 
+: see what type is used for size_t
+rp="What is the type used for the length parameter for string functions?"
+set size_t sizetype 'unsigned int' stdio.h sys/types.h
+eval $typedef_ask
+
 : check for type of arguments to gethostbyaddr. 
 if test "X$netdb_host_type" = X -o "X$netdb_hlen_type" = X; then
        case "$d_gethbyaddr" in
@@ -13500,6 +13481,69 @@ echo $sig_name | $awk \
 }'
 $rm -f signal signal.c signal.awk signal.lst signal_cmd 
 
+: check for socklen_t
+echo " "
+echo "Checking to see if you have socklen_t..." >&4
+$cat >try.c <<EOCP
+#include <sys/types.h>
+#$d_socket HAS_SOCKET
+#ifdef HAS_SOCKET
+#include <sys/socket.h>
+#endif
+int main() { socklen_t x = 16; }
+EOCP
+set try
+if eval $compile; then
+       val="$define"
+       echo "You have socklen_t."
+else
+       val="$undef"
+       echo "You do not have socklen_t."
+       case "$sizetype" in
+       size_t) echo "(You do have size_t, that might work.)" ;;
+       esac
+fi
+$rm -f try try.*
+set d_socklen_t
+eval $setvar
+
+: check for type of the size argument to socket calls
+case "$d_socket" in
+"$define")
+       $cat <<EOM
+
+Checking to see what type is the last argument of accept().
+EOM
+       hdrs="$define sys/types.h $d_socket sys/socket.h" 
+       yyy=''
+       case "$d_socklen_t" in
+       "$define") yyy="$yyy socklen_t"
+       esac
+       yyy="$yyy $sizetype int long"
+       for xxx in $yyy; do
+               case "$socksizetype" in
+               '')     try="extern int accept(int, struct sockaddr *, $xxx *);"
+                       if ./protochk "$try" $hdrs; then
+                               echo "Your system accepts '$xxx *' for the last argument of accept()."
+                               socksizetype="$xxx *"
+                       fi
+                       ;;
+               esac
+       done
+: In case none of those worked, prompt the user.
+       case "$socksizetype" in
+       '')     rp='What is the type for the last argument to accept()?'
+               dflt='int *'
+               . ./myread
+               socksizetype=$ans
+               ;;
+       esac
+       ;;
+*)     : no gethostbyaddr, so pick relatively harmless defaults
+       socksizetype='char *'
+       ;;
+esac
+
 : see what type is used for signed size_t
 set ssize_t ssizetype int stdio.h sys/types.h
 eval $typedef
@@ -14794,6 +14838,7 @@ d_fstatvfs='$d_fstatvfs'
 d_ftello='$d_ftello'
 d_ftime='$d_ftime'
 d_getcwd='$d_getcwd'
+d_getfsstat='$d_getfsstat'
 d_getgrent='$d_getgrent'
 d_getgrps='$d_getgrps'
 d_gethbyaddr='$d_gethbyaddr'
@@ -15316,6 +15361,7 @@ small='$small'
 so='$so'
 sockethdr='$sockethdr'
 socketlib='$socketlib'
+socksizetype='$socksizetype'
 sort='$sort'
 spackage='$spackage'
 spitshell='$spitshell'
index 89f6943..296bd24 100644 (file)
@@ -566,7 +566,7 @@ d_fpathconf (d_pathconf.U):
        to determine file-system related limits and options associated
        with a given open file descriptor.
 
-d_fpos64_t (io64.U):
+d_fpos64_t (d_fpos64_t.U):
        This symbol will be defined if the C compiler supports fpos64_t.
 
 d_fs_data_s (d_fs_data_s.U):
@@ -612,6 +612,10 @@ d_getcwd (d_getcwd.U):
        indicates to the C program that the getcwd() routine is available
        to get the current working directory.
 
+d_getfsstat (d_getfsstat.U):
+       This variable conditionally defines the HAS_GETFSSTAT symbol, which
+       indicates to the C program that the getfsstat() routine is available.
+
 d_getgrent (d_getgrent.U):
        This variable conditionally defines the HAS_GETGRENT symbol, which
        indicates to the C program that the getgrent() routine is available
@@ -838,6 +842,12 @@ d_longlong (d_longlong.U):
        This variable conditionally defines HAS_LONG_LONG if 
        the long long type is supported.
 
+d_lseekproto (d_lseekproto.U):
+       This variable conditionally defines the HAS_LSEEK_PROTO symbol,
+       which indicates to the C program that the system provides
+       a prototype for the lseek() function.  Otherwise, it is
+       up to the program to supply one.
+
 d_lstat (d_lstat.U):
        This variable conditionally defines HAS_LSTAT if lstat() is
        available to do file stats on symbolic links.
@@ -985,7 +995,7 @@ d_nv_preserves_uv (perlxv.U):
        This variable indicates whether a variable of type nvtype
        can preserve all the bits a variable of type uvtype.
 
-d_off64_t (io64.U):
+d_off64_t (d_off64_t.U):
        This symbol will be defined if the C compiler supports off64_t.
 
 d_old_pthread_create_joinable (d_pthrattrj.U):
@@ -2722,16 +2732,20 @@ patchlevel (patchlevel.U):
        The patchlevel level of this package.
        The value of patchlevel comes from the patchlevel.h file.
        In a version number such as 5.6.1, this is the "6".
-       In patchlevel.h, this is referred to as the "PERL_VERSION".
+       In patchlevel.h, this is referred to as "PERL_VERSION".
 
 path_sep (Unix.U):
        This is an old synonym for p_ in Head.U, the character
        used to separate elements in the command shell search PATH.
 
+perl5 (perl5.U):
+       This variable contains the full path (if any) to a previously
+       installed perl5.005 or later suitable for running the script
+       to determine inc_version_list.
+
 perl (Loc.U):
-       This variable is used internally by Configure to determine the
-       full pathname (if any) of the perl program.  After Configure runs,
-       the value is reset to a plain "perl" and is not useful.
+       This variable is defined but not used by Configure.
+       The value is a plain '' and is not useful.
 
 PERL_REVISION (Oldsyms.U):
        In a Perl version number such as 5.6.2, this is the 5.
@@ -2859,6 +2873,11 @@ rd_nodata (nblock_io.U):
        used, which is a shame because you cannot make the difference between
        no data and an EOF.. Sigh!
 
+revision (patchlevel.U):
+       The value of revision comes from the patchlevel.h file.
+       In a version number such as 5.6.1, this is the "5".
+       In patchlevel.h, this is referred to as "PERL_REVISION".
+
 rm (Loc.U):
        This variable is used internally by Configure to determine the
        full pathname (if any) of the rm program.  After Configure runs,
@@ -3074,6 +3093,11 @@ sockethdr (d_socket.U):
 socketlib (d_socket.U):
        This variable has the names of any libraries needed for socket support.
 
+socksizetype (socksizetype.U):
+       This variable holds the type used for the size argument
+       for various socket calls like accept.  Usual values include
+       socklen_t, size_t, and int.
+
 sort (Loc.U):
        This variable is used internally by Configure to determine the
        full pathname (if any) of the sort program.  After Configure runs,
@@ -3218,6 +3242,7 @@ subversion (patchlevel.U):
        The subversion level of this package.
        The value of subversion comes from the patchlevel.h file.
        In a version number such as 5.6.1, this is the "1".
+       In patchlevel.h, this is referred to as "PERL_SUBVERSION".
        This is unique to perl.
 
 sysman (sysman.U):
@@ -3336,12 +3361,25 @@ use5005threads (usethreads.U):
 use64bits (use64bits.U):
        This variable conditionally defines the USE_64_BITS symbol,
        and indicates that 64-bit integer types should be used
-       when available.
+       when available.  The minimal possible 64-bitness
+       is employed, 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.
 
 usedl (dlsrc.U):
        This variable indicates if the system supports dynamic
        loading of some sort.  See also dlsrc and dlobj.
 
+usefull64bits (use64bits.U):
+       This variable conditionally defines the USE_FULL_64_BITS symbol,
+       and indicates that 64-bit integer types should be used
+       when available.  The maximal possible
+       64-bitness is employed: LP64 or ILP64, meaning that you will
+       be able to use more than 2 gigabytes of memory.  This mode is
+       even more binary incompatible than USE_64_BITS. You may not
+       be able to run the resulting executable in a 32-bit CPU at all or
+       you may need at least to reboot your OS to 64-bit mode.
+
 useithreads (usethreads.U):
        This variable conditionally defines the USE_ITHREADS symbol,
        and indicates that Perl should be built to use the interpreter-based
@@ -3350,7 +3388,7 @@ useithreads (usethreads.U):
 uselargefiles (uselfs.U):
        This variable conditionally defines the USE_LARGE_FILES symbol,
        and indicates that large file interfaces should be used when
-       available.  The use64bits symbol will also be turned on if necessary.
+       available.
 
 uselongdouble (uselongdbl.U):
        This variable conditionally defines the USE_LONG_DOUBLE symbol,
@@ -3486,7 +3524,7 @@ vendorprefixexp (vendorprefix.U):
 
 version (patchlevel.U):
        The full version number of this package, such as 5.6.1 (or 5_6_1).
-       This combines baserev, patchlevel, and subversion to get the
+       This combines revision, patchlevel, and subversion to get the
        full version number, including any possible subversions.
        This is suitable for use as a directory name, and hence is
        filesystem dependent.
index 073beac..ed01b7e 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Tue Feb 22 23:57:36 EET 2000
+# Configuration time: Sat Feb 26 00:49:19 EET 2000
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -59,7 +59,7 @@ ccflags='-pthread -std -DLANGUAGE_C'
 ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_BSD=1 SYSTYPE_BSD=1 unix=1'
 cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Tue Feb 22 23:57:36 EET 2000'
+cf_time='Sat Feb 26 00:49:19 EET 2000'
 charsize='1'
 chgrp=''
 chmod=''
@@ -159,6 +159,7 @@ d_fstatvfs='define'
 d_ftello='undef'
 d_ftime='undef'
 d_getcwd='define'
+d_getfsstat='define'
 d_getgrent='define'
 d_getgrps='define'
 d_gethbyaddr='define'
@@ -207,6 +208,7 @@ d_locconv='define'
 d_lockf='define'
 d_longdbl='define'
 d_longlong='define'
+d_lseekproto='define'
 d_lstat='define'
 d_mblen='define'
 d_mbstowcs='define'
@@ -604,7 +606,8 @@ pager='/c/bin/less'
 passcat='cat /etc/passwd'
 patchlevel='5'
 path_sep=':'
-perl='perl'
+perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl'
+perl=''
 perladmin='yourname@yourhost.yourplace.com'
 perlpath='/opt/perl/bin/perl'
 pg='pg'
@@ -627,6 +630,7 @@ randfunc='drand48'
 randseedtype='long'
 ranlib=':'
 rd_nodata='-1'
+revision='5'
 rm='rm'
 rmail=''
 runnm='true'
@@ -678,6 +682,7 @@ small=''
 so='so'
 sockethdr=''
 socketlib=''
+socksizetype='int *'
 sort='sort'
 spackage='Perl5'
 spitshell='cat'
@@ -727,6 +732,7 @@ uquadtype='unsigned long'
 use5005threads='undef'
 use64bits='define'
 usedl='define'
+usefull64bits='define'
 useithreads='define'
 uselargefiles='define'
 uselongdouble='undef'
index 16fb48f..5a3e2c5 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Tue Feb 22 23:57:36 EET 2000
+ * Configuration time: Sat Feb 26 00:49:19 EET 2000
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
  */
 #define HAS_FD_SET     /**/
 
+/* HAS_FPOS64_T:
+ *     This symbol will be defined if the C compiler supports fpos64_t.
+ */
+/*#define      HAS_FPOS64_T            / **/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
  *     available to stat filesystems by file descriptors.
  */
 #define HAS_FSTATFS            /**/
+
 /* HAS_FTELLO:
  *     This symbol, if defined, indicates that the ftello routine is
  *     available to ftell beyond 32 bits (useful for ILP32 hosts).
  */
 #define HAS_MSG                /**/
 
+/* HAS_OFF64_T:
+ *     This symbol will be defined if the C compiler supports off64_t.
+ */
+/*#define      HAS_OFF64_T             / **/
+
 /* HAS_OPEN3:
  *     This manifest constant lets the C program know that the three
  *     argument form of open(2) is available.
 /*#define      HAS_MSG_PROXY   / **/
 #define        HAS_SCM_RIGHTS  /**/
 
-/* HAS_SOCKLEN_T:
- *     This symbol will defined if the C compiler supports socklen_t.
- *     Usually the <sys/socket.h> needs to be included.
- */
-/*#define     HAS_SOCKLEN_T               / **/
-
 /* HAS_SQRTL:
  *     This symbol, if defined, indicates that the sqrtl routine is
  *     available to do long double square roots.
  */
 #define INSTALL_USR_BIN_PERL   /**/
 
-/* HAS_OFF64_T:
- *     This symbol will be defined if the C compiler supports off64_t.
- */
-/* HAS_FPOS64_T:
- *     This symbol will be defined if the C compiler supports fpos64_t.
- */
-/*#define      HAS_OFF64_T             / **/
-/*#define      HAS_FPOS64_T            / **/
-
 /* PERL_PRIfldbl:
  *     This symbol, if defined, contains the string used by stdio to
  *     format long doubles (format 'f') for output.
 /* 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.
  */
 #ifndef USE_64_BITS
 #define        USE_64_BITS             /**/
 #endif
 
+#ifndef USE_FULL_64_BITS
+#define        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
- *     also be turned on if necessary.
+ *     should be used when available.
  */
 #ifndef USE_LARGE_FILES
 #define        USE_LARGE_FILES         /**/
 #define PERL_XS_APIVERSION "5.5.660"
 #define PERL_PM_APIVERSION "5.005"
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+#define HAS_GETFSSTAT          /**/
+
+/* 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);
+ */
+#define        HAS_LSEEK_PROTO /**/
+
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument
+ *     of various socket calls.
+ */
+#define Sock_size_t            int * /**/
+
 #endif
index a65d0b8..0e0e525 100644 (file)
@@ -1378,6 +1378,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     available to stat filesystems by file descriptors.
  */
 #$d_fstatfs HAS_FSTATFS                /**/
+
 /* HAS_FTELLO:
  *     This symbol, if defined, indicates that the ftello routine is
  *     available to ftell beyond 32 bits (useful for ILP32 hosts).
@@ -1946,12 +1947,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_msg_proxy  HAS_MSG_PROXY   /**/
 #$d_scm_rights HAS_SCM_RIGHTS  /**/
 
-/* HAS_SOCKLEN_T:
- *     This symbol will defined if the C compiler supports socklen_t.
- *     Usually the <sys/socket.h> needs to be included.
- */
-#$d_socklen_t     HAS_SOCKLEN_T               /**/
-
 /* HAS_SQRTL:
  *     This symbol, if defined, indicates that the sqrtl routine is
  *     available to do long double square roots.
@@ -2862,7 +2857,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     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             /**/
@@ -2874,8 +2868,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 
 /* USE_LARGE_FILES:
  *     This symbol, if defined, indicates that large file support
- *     should be used when available.  The USE_64_BITS symbol will
- *     also be turned on if necessary.
+ *     should be used when available.
  */
 #ifndef USE_LARGE_FILES
 #$uselargefiles        USE_LARGE_FILES         /**/
@@ -3007,6 +3000,12 @@ 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_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+#$d_getfsstat HAS_GETFSSTAT            /**/
+
 /* HAS_LSEEK_PROTO:
  *     This symbol, if defined, indicates that the system provides
  *     a prototype for the lseek() function.  Otherwise, it is up
@@ -3015,5 +3014,11 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_lseekproto HAS_LSEEK_PROTO /**/
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument
+ *     of various socket calls.
+ */
+#define Sock_size_t            $socksizetype /**/
+
 #endif
 !GROK!THIS!
diff --git a/doio.c b/doio.c
index 5f284db..d818185 100644 (file)
--- a/doio.c
+++ b/doio.c
 # endif
 #endif
 
-/* Put this after #includes because <unistd.h> defines _XOPEN_*.
- * Sock_size_t is defined identically in pp_sys.c. */
-#ifndef Sock_size_t
-#  ifdef HAS_SOCKLEN_T
-#      define Sock_size_t socklen_t
-#  else
-#      if _XOPEN_VERSION >= 5 || defined(_XOPEN_SOURCE_EXTENDED) || defined(__GLIBC__)
-#          define Sock_size_t Size_t
-#      else
-#          define Sock_size_t int
-#      endif
-#  endif
-#endif
-
 bool
 Perl_do_open(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
             int rawmode, int rawperm, PerlIO *supplied_fp)
index fda0bf0..59886ba 100644 (file)
@@ -34,8 +34,8 @@ apirevision=''
 apisubversion=''
 apiversion=''
 ar='arm-pe-ar'
-archlib='/perl/lib/5.5.650/epoc'
-archlibexp='/perl/lib/5.5.650/epoc'
+archlib='/perl/lib/5.5.670/epoc'
+archlibexp='/perl/lib/5.5.670/epoc'
 archname64=''
 archname='epoc'
 archobjs='epoc.o epocish.o epoc_stubs.o'
@@ -156,6 +156,7 @@ d_fstatfs='define'
 d_fstatvfs='undef'
 d_ftello='undef'
 d_ftime='undef'
+d_getfsstat='undef'
 d_getgrent='undef'
 d_getgrps='undef'
 d_gethbyaddr='define'
@@ -204,6 +205,7 @@ d_locconv='undef'
 d_lockf='undef'
 d_longdbl='undef'
 d_longlong='define'
+d_lseekproto='define'
 d_lstat='undef'
 d_madvise='undef'
 d_mblen='undef'
@@ -575,8 +577,8 @@ pmake=''
 pr=''
 prefix=''
 prefixexp=''
-privlib='/perl/lib/5.5.650'
-privlibexp='/perl/lib/5.5.650'
+privlib='/perl/lib/5.5.670'
+privlibexp='/perl/lib/5.5.670'
 prototype='define'
 ptrsize='4'
 randbits='31'
@@ -620,10 +622,10 @@ sig_name_init='"ZERO", 0'
 sig_num='0'
 sig_num_init='0, 0'
 signal_t='void'
-sitearch='/perl/lib/site_perl/5.5.650/epoc'
-sitearchexp='/perl/lib/site_perl/5.5.650/epoc'
-sitelib='/perl/lib/site_perl/5.5.650/'
-sitelibexp='/perl/lib/site_perl/5.5.650/'
+sitearch='/perl/lib/site_perl/5.5.670/epoc'
+sitearchexp='/perl/lib/site_perl/5.5.670/epoc'
+sitelib='/perl/lib/site_perl/5.5.670/'
+sitelibexp='/perl/lib/site_perl/5.5.670/'
 siteprefix=''
 siteprefixexp=''
 sizetype='size_t'
@@ -631,6 +633,7 @@ sleep=''
 smail=''
 small=''
 so=''
+sock_size_type='int *'
 sockethdr=''
 socketlib=''
 sort='sort'
@@ -670,6 +673,7 @@ uname='uname'
 uniq='uniq'
 use64bits='undef'
 usedl='undef'
+usefull64bits='undef'
 uselargefiles='undef'
 uselongdouble='undef'
 usemorebits='undef'
@@ -691,7 +695,7 @@ vendorlib=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.5.650'
+version='5.5.670'
 vi=''
 voidflags='15'
 xlibpth=''
@@ -714,10 +718,10 @@ config_arg10=''
 config_arg11=''
 PERL_REVISION=5
 PERL_VERSION=5
-PERL_SUBVERSION=650
+PERL_SUBVERSION=670
 PERL_API_REVISION=5
 PERL_API_VERSION=5
-PERL_API_SUBVERSION=650
+PERL_API_SUBVERSION=670
 CONFIGDOTSH=true
 # Variables propagated from previous config.sh file.
 pp_sys_cflags=''
diff --git a/perl.c b/perl.c
index 8f53c36..9c38c29 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -2539,7 +2539,7 @@ sed %s -e \"/^[^#]/b\" \
 /* Mention
  * I_SYSSTATVFS        HAS_FSTATVFS
  * I_SYSMOUNT
- * I_STATFS    HAS_FSTATFS
+ * I_STATFS    HAS_FSTATFS     HAS_GETFSSTAT
  * I_MNTENT    HAS_GETMNTENT   HAS_HASMNTOPT
  * here so that metaconfig picks them up. */
 
index 572da79..9e3ad52 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -118,20 +118,6 @@ extern int h_errno;
 #   define vfork fork
 #endif
 
-/* Put this after #includes because <unistd.h> defines _XOPEN_*.
- * Sock_size_t is defined identically in doio.c. */
-#ifndef Sock_size_t
-#  ifdef HAS_SOCKLEN_T
-#      define Sock_size_t socklen_t
-#  else
-#      if _XOPEN_VERSION >= 5 || defined(_XOPEN_SOURCE_EXTENDED) || defined(__GLIBC__)
-#          define Sock_size_t Size_t
-#      else
-#          define Sock_size_t int
-#      endif
-#  endif
-#endif
-
 #ifdef HAS_CHSIZE
 # ifdef my_chsize  /* Probably #defined to Perl_my_chsize in embed.h */
 #   undef my_chsize
index bfdb489..c919c99 100644 (file)
@@ -88,6 +88,7 @@ $ perl_d_getspent="undef
 $ perl_d_getspnam="undef
 $ perl_d_setspent="undef
 $ perl_d_fstatfs="undef"
+$ perl_d_getfsstat="undef"
 $ perl_i_machcthreads="undef"
 $ perl_i_pthread="define"
 $ perl_d_fstatvfs="undef"
@@ -140,7 +141,14 @@ $   perl_uselargefiles = "undef"
 $   perl_uselongdouble = "undef"
 $   perl_usemorebits = "undef"
 $ ENDIF
+$ IF use_full64bit .eqs. "Y"
+$ THEN
+$   perl_usefull64bits = "define"
+$ ELSE
+$   perl_usefull64bits = "undef"
+$ ENDIF
 $ perl_d_drand48proto = "define"
+$ perl_d_lseekproto = "define"
 $ perl_libpth="/sys$share /sys$library"
 $ perl_ld="Link"
 $ perl_lddlflags="/Share"
@@ -3341,6 +3349,7 @@ $ perl_d_gethostprotos="define"
 $ perl_d_getnetprotos="define"
 $ perl_d_getprotoprotos="define"
 $ perl_d_getservprotos="define"
+$ perl_sock_size_type="int *"
 $ ELSE
 $ perl_d_vms_do_sockets="undef"
 $ perl_d_htonl="undef"
@@ -3362,6 +3371,7 @@ $ perl_d_gethostprotos="undef"
 $ perl_d_getnetprotos="undef"
 $ perl_d_getprotoprotos="undef"
 $ perl_d_getservprotos="undef"
+$ perl_sock_size_type="undef"
 $ ENDIF
 $! Threads
 $ if ("''use_threads'".eqs."T")
@@ -3909,6 +3919,7 @@ $ WC "netdb_host_type='" + perl_netdb_host_type + "'"
 $ WC "netdb_hlen_type='" + perl_netdb_hlen_type + "'"
 $ WC "netdb_name_type='" + perl_netdb_name_type + "'"
 $ WC "netdb_net_type='" + perl_netdb_net_type + "'"
+$ WC "sock_size_type='" + perl_sock_size_type + "'"
 $ WC "baserev='" + perl_baserev + "'"
 $ WC "doublesize='" + perl_doublesize + "'"
 $ WC "ptrsize='" + perl_ptrsize + "'"
@@ -3999,7 +4010,9 @@ $ WC "i_inttypes='" + perl_i_inttypes + "'"
 $ WC "d_off64_t='" + perl_d_off64_t + "'"
 $ WC "d_fpos64_t='" + perl_d_fpos64_t + "'"
 $ WC "use64bits='" + perl_use64bits + "'"
+$ WC "usefull64bits='" + perl_usefull64bits + "'"
 $ WC "d_drand48proto='" + perl_d_drand48proto + "'"
+$ WC "d_lseekproto='" + perl_d_drand48proto + "'"
 $ WC "d_old_pthread_create_joinable='" + perl_d_old_pthread_create_joinable + "'"
 $ WC "old_pthread_create_joinable='" + perl_old_pthread_create_joinable + "'"
 $ WC "drand01='" + perl_drand01 + "'"
@@ -4008,6 +4021,7 @@ $ WC "seedfunc='" + perl_seedfunc + "'"
 $ WC "sig_num_init='" + perl_sig_num_with_commas + "'"
 $ WC "i_sysmount='" + perl_i_sysmount + "'"
 $ WC "d_fstatfs='" + perl_d_fstatfs + "'"
+$ WC "d_getfsstat='" + perl_d_getfsstat + "'"
 $ WC "d_memchr='" + perl_d_memchr + "'"
 $ WC "d_statfsflags='" + perl_d_statfsflags + "'"
 $ WC "fflushNULL='define'"
@@ -4195,6 +4209,10 @@ $ THEN
 $    WRITE CONFIG "#define USE_64_BITS"
 $    WRITE CONFIG "#define USE_LONG_DOUBLE"
 $ ENDIF
+$ if use_full64bit.eqs."Y"
+$ THEN
+$    WRITE CONFIG "#define USE_FULL_64_BITS"
+$ ENDIF
 $ WRITE CONFIG "#define HAS_ENVGETENV"
 $ WRITE CONFIG "#define PERL_EXTERNAL_GLOB"
 $ CLOSE CONFIG
index 19ec5ed..c7b320f 100644 (file)
@@ -73,6 +73,7 @@ $d_fstatvfs='undef'
 $d_ftello='undef'
 $d_Gconvert='sprintf((b),"%.*g",(n),(x))'
 $d_getcwd='define'
+$d_getfsstat='undef'
 $d_getgrent='undef'
 $d_getgrps='undef'
 $d_gethbyaddr='define'
@@ -121,6 +122,7 @@ $d_locconv='define'
 $d_lockf='define'
 $d_longdbl='define'
 $d_longlong='undef'
+$d_lseekproto='define'
 $d_lstat='define'
 $d_madvise='undef'
 $d_mblen='define'
@@ -402,6 +404,7 @@ $sitearchexp=''
 $sitelib='/system/ported/perl/lib/site/5.005'
 $sitelibexp='/system/ported/perl/lib/site/5.005'
 $sizetype='size_t'
+$sock_size_type='int *'
 $sPRIfldbl='"Lf"'
 $sPRIgldbl='"Lg"'
 $src='%es#lang/vos_ftp_site/pub/vos/alpha/perl'
@@ -429,6 +432,7 @@ $uquadtype='_error_'
 $use5005threads='undef'
 $use64bits='undef'
 $usedl='undef'
+$usefull64bits='undef'
 $uselargefiles='undef'
 $uselongdouble='define'
 $usemorebits='undef'
index 9c44eb0..d60890f 100644 (file)
@@ -148,6 +148,7 @@ d_fstatvfs='undef'
 d_ftello='undef'
 d_ftime='define'
 d_getcwd='undef'
+d_getfsstat='undef'
 d_getgrent='undef'
 d_getgrps='undef'
 d_gethbyaddr='define'
@@ -195,6 +196,7 @@ d_locconv='define'
 d_lockf='undef'
 d_longdbl='define'
 d_longlong='undef'
+d_lseekproto='define'
 d_lstat='undef'
 d_madvise='undef'
 d_mblen='define'
@@ -654,6 +656,7 @@ sleep=''
 smail=''
 small=''
 so='dll'
+sock_size_type='int *'
 sockethdr=''
 socketlib=''
 sort='sort'
@@ -705,6 +708,7 @@ uquadtype='unsigned __int64'
 use5005threads='undef'
 use64bits='undef'
 usedl='define'
+usefull64bits='undef'
 useithreads='undef'
 uselargefiles='undef'
 uselongdouble='undef'
index d4dde74..9faa286 100644 (file)
@@ -148,6 +148,7 @@ d_fstatvfs='undef'
 d_ftello='undef'
 d_ftime='define'
 d_getcwd='undef'
+d_getfsstat='undef'
 d_getgrent='undef'
 d_getgrps='undef'
 d_gethbyaddr='define'
@@ -195,6 +196,7 @@ d_locconv='define'
 d_lockf='undef'
 d_longdbl='define'
 d_longlong='undef'
+d_lseekproto='define'
 d_lstat='undef'
 d_madvise='undef'
 d_mblen='define'
@@ -654,6 +656,7 @@ sleep=''
 smail=''
 small=''
 so='dll'
+sock_size_type='int *'
 sockethdr=''
 socketlib=''
 sort='sort'
@@ -705,6 +708,7 @@ uquadtype='unsigned long long'
 use5005threads='undef'
 use64bits='undef'
 usedl='define'
+usefull64bits='undef'
 useithreads='undef'
 uselargefiles='undef'
 uselongdouble='undef'
index ff50f51..d7ef9e4 100644 (file)
@@ -148,6 +148,7 @@ d_fstatvfs='undef'
 d_ftello='undef'
 d_ftime='define'
 d_getcwd='undef'
+d_getfsstat='undef'
 d_getgrent='undef'
 d_getgrps='undef'
 d_gethbyaddr='define'
@@ -195,6 +196,7 @@ d_locconv='define'
 d_lockf='undef'
 d_longdbl='define'
 d_longlong='undef'
+d_lseekproto='define'
 d_lstat='undef'
 d_madvise='undef'
 d_mblen='define'
@@ -654,6 +656,7 @@ sleep=''
 smail=''
 small=''
 so='dll'
+sock_size_type='int *'
 sockethdr=''
 socketlib=''
 sort='sort'
@@ -705,6 +708,7 @@ uquadtype='unsigned __int64'
 use5005threads='undef'
 use64bits='undef'
 usedl='define'
+usefull64bits='undef'
 useithreads='undef'
 uselargefiles='undef'
 uselongdouble='undef'
index 085d8ef..bb35cb7 100644 (file)
  *     available to stat filesystems by file descriptors.
  */
 /*#define HAS_FSTATFS          /**/
+
 /* HAS_FTELLO:
  *     This symbol, if defined, indicates that the ftello routine is
  *     available to ftell beyond 32 bits (useful for ILP32 hosts).
  */
 /*#define HAS_GETCWD           /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the fstatfs routine is
+ *     available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT                /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
 #define LONGLONGSIZE 8         /**/
 #endif
 
+/* 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));
+ */
+#define        HAS_LSEEK_PROTO /**/
+
 /* HAS_MEMCHR:
  *     This symbol, if defined, indicates that the memchr routine is available
  *     to locate characters within a C string.
 /*#define      HAS_MSG_PROXY   /**/
 /*#define      HAS_SCM_RIGHTS  /**/
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument
+ *     of various socket calls.
+ */
+#define Sock_size_t            int * /**/
+
 /* HAS_SQRTL:
  *     This symbol, if defined, indicates that the sqrtl routine is
  *     available to do long double square roots.
 /* 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.
  */
 #ifndef USE_64_BITS
 /*#define      USE_64_BITS             /**/
 #endif
 
+/* USE_FULL_64_BITS:
+ *     This variable conditionally defines the USE_FULL_64_BITS symbol,
+ *     and indicates that 64-bit integer types should be used
+ *     when available.  The maximal possible
+ *     64-bitness is employed: LP64 or ILP64, meaning that you will
+ *     be able to use more than 2 gigabytes of memory.  This mode is
+ *     even more binary incompatible than USE_64_BITS. You may not
+ *     be able to run the resulting executable in a 32-bit CPU at all or
+ *     you may need at least to reboot your OS to 64-bit mode.
+ */
+#ifndef USE_FULL_64_BITS
+/*#define      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
- *     also be turned on if necessary.
+ *     should be used when available.
  */
 #ifndef USE_LARGE_FILES
 /*#define      USE_LARGE_FILES         /**/
index 6a32877..a3ac38a 100644 (file)
  *     available to stat filesystems by file descriptors.
  */
 /*#define HAS_FSTATFS          /**/
+
 /* HAS_FTELLO:
  *     This symbol, if defined, indicates that the ftello routine is
  *     available to ftell beyond 32 bits (useful for ILP32 hosts).
  */
 /*#define HAS_GETCWD           /**/
   
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the fstatfs routine is
+ *     available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT                /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
 #define LONGLONGSIZE 8         /**/
 #endif
 
+/* 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));
+ */
+#define        HAS_LSEEK_PROTO /**/
+
 /* HAS_MEMCHR:
  *     This symbol, if defined, indicates that the memchr routine is available
  *     to locate characters within a C string.
 /*#define      HAS_MSG_PROXY   /**/
 /*#define      HAS_SCM_RIGHTS  /**/
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument
+ *     of various socket calls.
+ */
+#define Sock_size_t            int * /**/
+
 /* HAS_SQRTL:
  *     This symbol, if defined, indicates that the sqrtl routine is
  *     available to do long double square roots.
 /* 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.
  */
 #ifndef USE_64_BITS
 /*#define      USE_64_BITS             /**/
 #endif
 
+/* USE_FULL_64_BITS:
+ *     This variable conditionally defines the USE_FULL_64_BITS symbol,
+ *     and indicates that 64-bit integer types should be used
+ *     when available.  The maximal possible
+ *     64-bitness is employed: LP64 or ILP64, meaning that you will
+ *     be able to use more than 2 gigabytes of memory.  This mode is
+ *     even more binary incompatible than USE_64_BITS. You may not
+ *     be able to run the resulting executable in a 32-bit CPU at all or
+ *     you may need at least to reboot your OS to 64-bit mode.
+ */
+#ifndef USE_FULL_64_BITS
+/*#define      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
- *     also be turned on if necessary.
+ *     should be used when available.
  */
 #ifndef USE_LARGE_FILES
 /*#define      USE_LARGE_FILES         /**/
index 5408521..c5d9738 100644 (file)
  *     available to stat filesystems by file descriptors.
  */
 /*#define HAS_FSTATFS          /**/
+
 /* HAS_FTELLO:
  *     This symbol, if defined, indicates that the ftello routine is
  *     available to ftell beyond 32 bits (useful for ILP32 hosts).
  */
 /*#define HAS_GETCWD           /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the fstatfs routine is
+ *     available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT                /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
 #define LONGLONGSIZE 8         /**/
 #endif
 
+/* 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));
+ */
+#define        HAS_LSEEK_PROTO /**/
+
 /* HAS_MEMCHR:
  *     This symbol, if defined, indicates that the memchr routine is available
  *     to locate characters within a C string.
 /*#define      HAS_MSG_PROXY   /**/
 /*#define      HAS_SCM_RIGHTS  /**/
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument
+ *     of various socket calls.
+ */
+#define Sock_size_t            int * /**/
+
 /* HAS_SQRTL:
  *     This symbol, if defined, indicates that the sqrtl routine is
  *     available to do long double square roots.
 /* 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.
  */
 #ifndef USE_64_BITS
 /*#define      USE_64_BITS             /**/
 #endif
 
+/* USE_FULL_64_BITS:
+ *     This variable conditionally defines the USE_FULL_64_BITS symbol,
+ *     and indicates that 64-bit integer types should be used
+ *     when available.  The maximal possible
+ *     64-bitness is employed: LP64 or ILP64, meaning that you will
+ *     be able to use more than 2 gigabytes of memory.  This mode is
+ *     even more binary incompatible than USE_64_BITS. You may not
+ *     be able to run the resulting executable in a 32-bit CPU at all or
+ *     you may need at least to reboot your OS to 64-bit mode.
+ */
+#ifndef USE_FULL_64_BITS
+/*#define      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
- *     also be turned on if necessary.
+ *     should be used when available.
  */
 #ifndef USE_LARGE_FILES
 /*#define      USE_LARGE_FILES         /**/