This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Continue what #4494 started; introduce uid and gid formats.
authorJarkko Hietaniemi <jhi@iki.fi>
Fri, 29 Oct 1999 23:36:19 +0000 (23:36 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Fri, 29 Oct 1999 23:36:19 +0000 (23:36 +0000)
p4raw-id: //depot/cfgperl@4495

Configure
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
handy.h
perl.h

index 3bd3a06..559eb24 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 Sat Oct 30 01:07:44 EET DST 1999 [metaconfig 3.0 PL70]
+# Generated on Sat Oct 30 02:37:12 EET DST 1999 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -572,6 +572,7 @@ fflushNULL=''
 fflushall=''
 fpossize=''
 fpostype=''
+gidformat=''
 gidsign=''
 gidsize=''
 gidtype=''
@@ -842,6 +843,7 @@ stdio_stream_array=''
 d_strtoull=''
 sysman=''
 trnl=''
+uidformat=''
 uidsign=''
 uidsize=''
 uidtype=''
@@ -8537,10 +8539,10 @@ EOCP
 set try
 if eval $compile; then
        val="$define"
-       echo " Yup, it does."
+       echo "Yes, it does."
 else
        val="$undef"
-       echo " Nope, it doesn't."
+       echo "No, it doesn't."
        case "$lseeksize" in
        8) echo "(This is okay because your off_t is 64 bits wide.)" ;;
        esac
@@ -8559,10 +8561,10 @@ EOCP
 set try
 if eval $compile; then
        val="$define"
-       echo " Yup, it does."
+       echo "Yes, it does."
 else
        val="$undef"
-       echo " Nope, it doesn't."
+       echo "No, it doesn't."
        case "$fpossize" in
        8) echo "(This is okay because your fpos_t is 64 bits wide.)" ;;
        esac
@@ -8607,8 +8609,8 @@ echo "Checking to see if your system supports struct fs_data..." >&4
 set d_fs_data_s fs_data $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h
 eval $hasstruct
 case "$d_fs_data_s" in
-"$define")      echo "Yup, it does."     ;;
-*)              echo "Nope, it doesn't." ;;
+"$define")      echo "Yes, it does."   ;;
+*)              echo "No, it doesn't." ;;
 esac
 
 : see if fseeko exists
@@ -10346,8 +10348,8 @@ echo "Checking to see if your system supports struct statfs..." >&4
 set d_statfs_s statfs $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h
 eval $hasstruct
 case "$d_statfs_s" in
-"$define")      echo "Yup, it does."     ;;
-*)              echo "Nope, it doesn't." ;;
+"$define")      echo "Yes, it does."   ;;
+*)              echo "No, it doesn't." ;;
 esac
 
 
@@ -10366,8 +10368,8 @@ define)
        ;;
 esac
 case "$d_statfs_f_flags" in
-"$define")      echo "Yup, it does."     ;;
-*)              echo "Nope, it doesn't." ;;
+"$define")      echo "Yes, it does."   ;;
+*)              echo "No, it doesn't." ;;
 esac
 
 : see if _ptr and _cnt from stdio act std
@@ -11675,35 +11677,28 @@ case "$gidtype" in
 *_t) zzz="$gidtype"    ;;
 *)   zzz="gid"         ;;
 esac
-echo "Checking the sign of $zzz..." >&4 
+echo "Checking the size of $zzz..." >&4 
 cat > try.c <<EOCP
 #include <sys/types.h>
 #include <stdio.h>
 int main() {
-       $gidtype foo = -1;
-       if (foo < 0)
-               printf("-1\n");
-       else
-               printf("1\n");
+    printf("%d\n", sizeof($gidtype));
 }
 EOCP
 set try
-if eval $compile; then
+if eval $compile_ok; then
        yyy=`./try`
        case "$yyy" in
-       '')     gidsign=1
-               echo "(I can't execute the test program--guessing unsigned.)" >&4
+       '')     gidsize=4
+               echo "(I can't execute the test program--guessing $gidsize.)" >&4
                ;;
-       *)      gidsign=$yyy
-               case "$gidsign" in
-                1) echo "Your $zzz is unsigned." ;;
-               -1) echo "Your $zzz is signed."   ;;
-               esac
+       *)      gidsize=$yyy
+               echo "Your $zzz size is $gidsize bytes."
                ;;
        esac
 else
-       gidsign=1
-       echo "(I can't compile the test program--guessing unsigned.)" >&4
+       gidsize=4
+       echo "(I can't compile the test program--guessing $gidsize.)" >&4
 fi
 
 
@@ -11712,60 +11707,38 @@ case "$gidtype" in
 *_t) zzz="$gidtype"    ;;
 *)   zzz="gid"         ;;
 esac
-echo "Checking the size of $zzz..." >&4 
+echo "Checking the sign of $zzz..." >&4 
 cat > try.c <<EOCP
 #include <sys/types.h>
 #include <stdio.h>
 int main() {
-    printf("%d\n", sizeof($gidtype));
+       $gidtype foo = -1;
+       if (foo < 0)
+               printf("-1\n");
+       else
+               printf("1\n");
 }
 EOCP
 set try
-if eval $compile_ok; then
+if eval $compile; then
        yyy=`./try`
        case "$yyy" in
-       '')     gidsize=4
-               echo "(I can't execute the test program--guessing $gidsize.)" >&4
+       '')     gidsign=1
+               echo "(I can't execute the test program--guessing unsigned.)" >&4
                ;;
-       *)      gidsize=$yyy
-               echo "Your $zzz size is $gidsize bytes."
+       *)      gidsign=$yyy
+               case "$gidsign" in
+                1) echo "Your $zzz is unsigned." ;;
+               -1) echo "Your $zzz is signed."   ;;
+               esac
                ;;
        esac
 else
-       gidsize=4
-       echo "(I can't compile the test program--guessing $gidsize.)" >&4
+       gidsign=1
+       echo "(I can't compile the test program--guessing unsigned.)" >&4
 fi
 
 
-: see if getgroups exists
-set getgroups d_getgrps
-eval $inlibc
-
-: see if setgroups exists
-set setgroups d_setgrps
-eval $inlibc
-
-
-: Find type of 2nd arg to 'getgroups()' and 'setgroups()'
-echo " "
-case "$d_getgrps$d_setgrps" in
-*define*)
-       case "$groupstype" in
-       '') dflt="$gidtype" ;;
-       *)  dflt="$groupstype" ;;
-       esac
-       $cat <<EOM
-What type of pointer is the second argument to getgroups() and setgroups()?
-Usually this is the same as group ids, $gidtype, but not always.
-
-EOM
-       rp='What type pointer is the second argument to getgroups() and setgroups()?'
-       . ./myread
-       groupstype="$ans"
-       ;;
-*)  groupstype="$gidtype";;
-esac
-
 
 echo " "
 echo "Checking which 64-bit integer type to use..." >&4
@@ -11904,64 +11877,81 @@ int main() {
   uint32_t u = UINT32_MAX;
   printf("int32_t\n");
 #endif
-#ifdef INT64
-   int64_t i =  INT64_MAX;
-  uint64_t u = UINT64_MAX;
-  printf("int64_t\n");
-#endif
 }
 EOCP
-set try -DINT8
-if eval $compile; then
-       case "`./try$exe_ext`" in
-       int8_t) i8type=int8_t
-               u8type=uint8_t
-               i8size=1
-               u8size=1
+
+case "$i8type" in
+'')    case "$charsize" in
+       1)      i8type=char
+               u8type="unsigned char"
+               i8size=$charsize
+               u8size=$charsize
                ;;
        esac
-fi
+       ;;
+esac
+case "$i8type" in
+'')    set try -DINT8
+       if eval $compile; then
+               case "`./try$exe_ext`" in
+               int8_t) i8type=int8_t
+                       u8type=uint8_t
+                       i8size=1
+                       u8size=1
+                       ;;
+               esac
+       fi
+       ;;
+esac
 case "$i8type" in
-'')    i8type=char
-       u8type="unsigned char"
-       i8size=$charsize
-       u8size=$charsize
+'')    if $test $charsize -ge 1; then
+               i8type=char
+               u8type="unsigned char"
+               i8size=$charsize
+               u8size=$charsize
+       fi
        ;;
 esac
-set try -DINT16
-if eval $compile; then
-       case "`./try$exe_ext`" in
-       int16_t)
-               i16type=int16_t
-               u16type=uint16_t
-               i16size=2
-               u16size=2
+
+case "$i16type" in
+'')    case "$shortsize" in
+       2)      i16type=short
+               u16type="unsigned short"
+               i16size=$shortsize
+               u16size=$shortsize
                ;;
        esac
-fi
+       ;;
+esac
+case "$i16type" in
+'')    set try -DINT16
+       if eval $compile; then
+               case "`./try$exe_ext`" in
+               int16_t)
+                       i16type=int16_t
+                       u16type=uint16_t
+                       i16size=2
+                       u16size=2
+                       ;;
+               esac
+       fi
+       ;;
+esac
 case "$i16type" in
-'')    i16type=short
-       u16type="unsigned short"
-       i16size=$shortsize
-       u16size=$shortsize
+'')    if $test $shortsize -ge 2; then
+               i16type=short
+               u16type="unsigned short"
+               i16size=$shortsize
+               u16size=$shortsize
+       fi
        ;;
 esac
-set try -DINT32
-if eval $compile; then
-       case "`./try$exe_ext`" in
-       int32_t)
-               i32type=int32_t
-               u32type=uint32_t
-               i32size=4
-               u32size=4
-               ;;
-       esac
-fi
+
 case "$i32type" in
 '')    case "$longsize" in
        4)      i32type=long
                u32type="unsigned long"
-               i32size=longsize
+               i32size=$longsize
                u32size=$longsize
                ;;
        *)      case "$intsize" in
@@ -11975,17 +11965,30 @@ case "$i32type" in
        esac
        ;;
 esac
-set try -DINT64
-if eval $compile; then
-       case "`./try$exe_ext`" in
-       int64_t)
-               i64type=int64_t
-               u64type=uint64_t
-               i64size=8
-               u64size=8
-               ;;
-       esac
-fi
+case "$i32type" in
+'')    set try -DINT32
+       if eval $compile; then
+               case "`./try$exe_ext`" in
+               int32_t)
+                       i32type=int32_t
+                       u32type=uint32_t
+                       i32size=4
+                       u32size=4
+                       ;;
+               esac
+       fi
+       ;;
+esac
+case "$i32type" in
+'')    if $test $intsize -ge 4; then
+               i32type=int
+               u32type="unsigned int"
+               i32size=$intsize
+               u32size=$intsize
+       fi
+       ;;
+esac
+
 case "$i64type" in
 '')    case "$quadtype" in
        '')     ;;
@@ -12195,6 +12198,74 @@ case "$ivdformat" in
     ;;
 esac
 
+
+echo " "
+$echo "Checking the format string to be used for gids..." >&4
+
+case "$gidsign" in
+-1)    if $test X"$gidsize" = X"$ivsize"; then
+               gidformat="$ivdformat"
+       else
+               if $test X"$gidsize" = X"$longsize"; then
+                       gidformat='"ld"'
+               else
+                       if $test X"$gidsize" = X"$intsize"; then
+                               gidformat='"d"'
+                       else
+                               if $test X"$gidsize" = X"$shortsize"; then
+                                       gidformat='"hd"'
+                               fi
+                       fi
+               fi
+       fi
+       ;;
+*)     if $test X"$gidsize" = X"$uvsize"; then
+               gidformat="$uvuformat"
+       else
+               if $test X"$gidsize" = X"$longsize"; then
+                       gidformat='"lu"'
+               else
+                       if $test X"$gidsize" = X"$intsize"; then
+                               gidformat='"u"'
+                       else
+                               if $test X"$gidsize" = X"$shortsize"; then
+                                       gidformat='"hu"'
+                               fi
+                       fi
+               fi
+       fi
+       ;;
+esac
+
+: see if getgroups exists
+set getgroups d_getgrps
+eval $inlibc
+
+: see if setgroups exists
+set setgroups d_setgrps
+eval $inlibc
+
+
+: Find type of 2nd arg to 'getgroups()' and 'setgroups()'
+echo " "
+case "$d_getgrps$d_setgrps" in
+*define*)
+       case "$groupstype" in
+       '') dflt="$gidtype" ;;
+       *)  dflt="$groupstype" ;;
+       esac
+       $cat <<EOM
+What type of pointer is the second argument to getgroups() and setgroups()?
+Usually this is the same as group ids, $gidtype, but not always.
+
+EOM
+       rp='What type pointer is the second argument to getgroups() and setgroups()?'
+       . ./myread
+       groupstype="$ans"
+       ;;
+*)  groupstype="$gidtype";;
+esac
+
 echo " "
 echo "Checking if your $make program sets \$(MAKE)..." >&4
 case "$make_set_make" in
@@ -13006,67 +13077,106 @@ case "$uidtype" in
 *_t) zzz="$uidtype"    ;;
 *)   zzz="uid"         ;;
 esac
-echo "Checking the sign of $zzz..." >&4
+echo "Checking the size of $zzz..." >&4 
 cat > try.c <<EOCP
 #include <sys/types.h>
 #include <stdio.h>
 int main() {
-       $uidtype foo = -1;
-       if (foo < 0)
-               printf("-1\n");
-       else
-               printf("1\n");
+    printf("%d\n", sizeof($uidtype));
 }
 EOCP
 set try
-if eval $compile; then
+if eval $compile_ok; then
        yyy=`./try`
        case "$yyy" in
-       '')     uidsign=1
-               echo "(I can't execute the test program--guessing unsigned.)" >&4
+       '')     uidsize=4
+               echo "(I can't execute the test program--guessing $uidsize.)" >&4
                ;;
-       *)      uidsign=$yyy
-               case "$uidsign" in
-                1) echo "Your $zzz is unsigned." ;;
-               -1) echo "Your $zzz is signed."   ;;
-               esac
+       *)      uidsize=$yyy
+               echo "Your $zzz size is $uidsize bytes."
                ;;
        esac
 else
-       uidsign=1
-       echo "(I can't compile the test program--guessing unsigned.)" >&4
+       uidsize=4
+       echo "(I can't compile the test program--guessing $uidsize.)" >&4
 fi
 
-
 echo " "
 case "$uidtype" in
 *_t) zzz="$uidtype"    ;;
 *)   zzz="uid"         ;;
 esac
-echo "Checking the size of $zzz..." >&4 
+echo "Checking the sign of $zzz..." >&4
 cat > try.c <<EOCP
 #include <sys/types.h>
 #include <stdio.h>
 int main() {
-    printf("%d\n", sizeof($uidtype));
+       $uidtype foo = -1;
+       if (foo < 0)
+               printf("-1\n");
+       else
+               printf("1\n");
 }
 EOCP
 set try
-if eval $compile_ok; then
+if eval $compile; then
        yyy=`./try`
        case "$yyy" in
-       '')     uidsize=4
-               echo "(I can't execute the test program--guessing $uidsize.)" >&4
+       '')     uidsign=1
+               echo "(I can't execute the test program--guessing unsigned.)" >&4
                ;;
-       *)      uidsize=$yyy
-               echo "Your $zzz size is $uidsize bytes."
+       *)      uidsign=$yyy
+               case "$uidsign" in
+                1) echo "Your $zzz is unsigned." ;;
+               -1) echo "Your $zzz is signed."   ;;
+               esac
                ;;
        esac
 else
-       uidsize=4
-       echo "(I can't compile the test program--guessing $uidsize.)" >&4
+       uidsign=1
+       echo "(I can't compile the test program--guessing unsigned.)" >&4
 fi
 
+
+
+echo " "
+$echo "Checking the format string to be used for uids..." >&4
+
+case "$uidsign" in
+-1)    if $test X"$uidsize" = X"$ivsize"; then
+               uidformat="$ivdformat"
+       else
+               if $test X"$uidsize" = X"$longsize"; then
+                       uidformat='"ld"'
+               else
+                       if $test X"$uidsize" = X"$intsize"; then
+                               uidformat='"d"'
+                       else
+                               if $test X"$uidsize" = X"$shortsize"; then
+                                       uidformat='"hd"'
+                               fi
+                       fi
+               fi
+       fi
+       ;;
+*)     if $test X"$uidsize" = X"$uvsize"; then
+               uidformat="$uvuformat"
+       else
+               if $test X"$uidsize" = X"$longsize"; then
+                       uidformat='"lu"'
+               else
+                       if $test X"$uidsize" = X"$intsize"; then
+                               uidformat='"u"'
+                       else
+                               if $test X"$uidsize" = X"$shortsize"; then
+                                       uidformat='"hu"'
+                               fi
+                       fi
+               fi
+       fi
+       ;;
+esac
+
 : see if dbm.h is available
 : see if dbmclose exists
 set dbmclose d_dbmclose
@@ -14282,6 +14392,7 @@ full_ar='$full_ar'
 full_csh='$full_csh'
 full_sed='$full_sed'
 gccversion='$gccversion'
+gidformat='$gidformat'
 gidsign='$gidsign'
 gidsize='$gidsize'
 gidtype='$gidtype'
@@ -14586,6 +14697,7 @@ u64size='$u64size'
 u64type='$u64type'
 u8size='$u8size'
 u8type='$u8type'
+uidformat='$uidformat'
 uidsign='$uidsign'
 uidsize='$uidsize'
 uidtype='$uidtype'
index 3747aab..edda0cb 100644 (file)
@@ -176,6 +176,10 @@ cf_time (cf_who.U):
        Holds the output of the "date" command when the configuration file was
        produced. This is used to tag both config.sh and config_h.SH.
 
+charsize (charsize.U):
+       This variable contains the value of the CHARSIZE symbol, which
+       indicates to the C program how many bytes there are in a character.
+
 chgrp (Loc.U):
        This variable is defined but not used by Configure.
        The value is a plain '' and is not useful.
@@ -755,10 +759,6 @@ d_inetaton (d_inetaton.U):
 d_int64t (i_inttypes.U):
        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,
-       which indicates that the struct iovec is supported.
-
 d_isascii (d_isascii.U):
        This variable conditionally defines the HAS_ISASCII constant,
        which indicates to the C program that isascii() is available.
@@ -782,10 +782,6 @@ d_link (d_link.U):
        This variable conditionally defines HAS_LINK if link() is
        available to create hard links.
 
-d_llseek (io64.U):
-       This variable conditionally defines the HAS_LLSEEK symbol, which
-       indicates to the C program that the llseek() routine is available.
-
 d_locconv (d_locconv.U):
        This variable conditionally defines HAS_LOCALECONV if localeconv() is
        available for numeric and monetary formatting conventions.
@@ -1636,8 +1632,11 @@ flex (Loc.U):
        This variable is defined but not used by Configure.
        The value is a plain '' and is not useful.
 
+fpossize (fpossize.U):
+       This variable contains the size of a fpostype in bytes.
+
 fpostype (fpostype.U):
-       This variable defines Fpos_t to be something like fpost_t, long, 
+       This variable defines Fpos_t to be something like fpos_t, long, 
        uint, or whatever type is used to declare file positions in libc.
 
 freetype (mallocsrc.U):
@@ -1668,6 +1667,9 @@ gccversion (cc.U):
        indicate whether the compiler is version 1 or 2.  This is used in
        setting some of the default cflags.  It is set to '' if not gcc.
 
+gidformat (gidf.U):
+       This variable contains the format string used for printing a Gid_t.
+
 gidsign (gidsign.U):
        This variable contains the signedness of a gidtype.
        1 for unsigned, -1 for signed.
@@ -1729,6 +1731,30 @@ huge (models.U):
        huge model is not supported, contains the flag to produce large
        model programs.  It is up to the Makefile to use this.
 
+i16size (perlxv.U):
+       This variable is the size of an I16 in bytes.
+
+i16type (perlxv.U):
+       This variable contains the C type used for Perl's I16.
+
+i32size (perlxv.U):
+       This variable is the size of an I32 in bytes.
+
+i32type (perlxv.U):
+       This variable contains the C type used for Perl's I32.
+
+i64size (perlxv.U):
+       This variable is the size of an I64 in bytes.
+
+i64type (perlxv.U):
+       This variable contains the C type used for Perl's I64.
+
+i8size (perlxv.U):
+       This variable is the size of an I8 in bytes.
+
+i8type (perlxv.U):
+       This variable contains the C type used for Perl's I8.
+
 i_arpainet (i_arpainet.U):
        This variable conditionally defines the I_ARPA_INET symbol,
        and indicates whether a C program should include <arpa/inet.h>.
@@ -2144,6 +2170,16 @@ 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.
 
+ivdformat (perlxvf.U):
+       This variable contains the format string used for printing
+       a Perl IV as a signed decimal integer. 
+
+ivsize (perlxv.U):
+       This variable is the size of an IV in bytes.
+
+ivtype (perlxv.U):
+       This variable contains the C type used for Perl's IV.
+
 known_extensions (Extensions.U):
        This variable holds a list of all XS extensions included in 
        the package.
@@ -2467,6 +2503,12 @@ nroff (Loc.U):
        full pathname (if any) of the nroff program.  After Configure runs,
        the value is reset to a plain "nroff" and is not useful.
 
+nvsize (perlxv.U):
+       This variable is the size of an NV in bytes.
+
+nvtype (perlxv.U):
+       This variable contains the C type used for Perl's NV.
+
 o_nonblock (nblock_io.U):
        This variable bears the symbol value to be used during open() or fcntl()
        to turn on non-blocking I/O for a file descriptor. If you wish to switch
@@ -3077,6 +3119,33 @@ troff (Loc.U):
        This variable is defined but not used by Configure.
        The value is a plain '' and is not useful.
 
+u16size (perlxv.U):
+       This variable is the size of an U16 in bytes.
+
+u16type (perlxv.U):
+       This variable contains the C type used for Perl's U16.
+
+u32size (perlxv.U):
+       This variable is the size of an U32 in bytes.
+
+u32type (perlxv.U):
+       This variable contains the C type used for Perl's U32.
+
+u64size (perlxv.U):
+       This variable is the size of an U64 in bytes.
+
+u64type (perlxv.U):
+       This variable contains the C type used for Perl's U64.
+
+u8size (perlxv.U):
+       This variable is the size of an U8 in bytes.
+
+u8type (perlxv.U):
+       This variable contains the C type used for Perl's U8.
+
+uidformat (uidf.U):
+       This variable contains the format string used for printing a Uid_t.
+
 uidsign (uidsign.U):
        This variable contains the signedness of a uidtype.
        1 for unsigned, -1 for signed.
@@ -3200,6 +3269,24 @@ uuname (Loc.U):
        This variable is defined but not used by Configure.
        The value is a plain '' and is not useful.
 
+uvoformat (perlxvf.U):
+       This variable contains the format string used for printing
+       a Perl UV as an unsigned octal integer. 
+
+uvsize (perlxv.U):
+       This variable is the size of a UV in bytes.
+
+uvtype (perlxv.U):
+       This variable contains the C type used for Perl's UV.
+
+uvuformat (perlxvf.U):
+       This variable contains the format string used for printing
+       a Perl UV as an unsigned decimal integer. 
+
+uvxformat (perlxvf.U):
+       This variable contains the format string used for printing
+       a Perl UV as an unsigned hexadecimal integer. 
+
 vendorbin (vendorbin.U):
        This variable contains the eventual value of the VENDORBIN symbol.
        It may have a ~ on the front.
index f46a1bd..a0f6d31 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Fri Oct 29 18:38:18 EET DST 1999
+# Configuration time: Sat Oct 30 02:40:27 EET DST 1999
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -56,7 +56,8 @@ 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 Oct 29 18:38:18 EET DST 1999'
+cf_time='Sat Oct 30 02:40:27 EET DST 1999'
+charsize='1'
 chgrp=''
 chmod=''
 chown=''
@@ -192,13 +193,11 @@ d_htonl='define'
 d_index='undef'
 d_inetaton='define'
 d_int64t='undef'
-d_iovec_s='define'
 d_isascii='define'
 d_killpg='define'
 d_lchown='define'
 d_ldbl_dig='define'
 d_link='define'
-d_llseek='undef'
 d_locconv='define'
 d_lockf='define'
 d_longdbl='define'
@@ -376,12 +375,14 @@ fflushall='undef'
 find=''
 firstmakefile='makefile'
 flex=''
+fpossize='8'
 fpostype='fpos_t'
 freetype='void'
 full_ar='/usr/bin/ar'
 full_csh='/usr/bin/csh'
 full_sed='/usr/bin/sed'
 gccversion=''
+gidformat='"u"'
 gidsign='1'
 gidsize='4'
 gidtype='gid_t'
@@ -395,6 +396,14 @@ h_sysfile='true'
 hint='recommended'
 hostcat='cat /etc/hosts'
 huge=''
+i16size='2'
+i16type='short'
+i32size='4'
+i32type='int'
+i64size='8'
+i64type='long'
+i8size='1'
+i8type='char'
 i_arpainet='define'
 i_bsdioctl=''
 i_db='define'
@@ -484,6 +493,9 @@ installusrbinperl='define'
 installvendorbin=''
 installvendorlib=''
 intsize='4'
+ivdformat='"ld"'
+ivsize='8'
+ivtype='long'
 known_extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
 ksh=''
 large=''
@@ -548,6 +560,8 @@ nm_opt='-p'
 nm_so_opt=''
 nonxs_ext='Errno'
 nroff='nroff'
+nvsize='8'
+nvtype='double'
 o_nonblock='O_NONBLOCK'
 obj_ext='.o'
 old_pthread_create_joinable=''
@@ -665,6 +679,15 @@ touch='touch'
 tr='tr'
 trnl='\n'
 troff=''
+u16size='2'
+u16type='unsigned short'
+u32size='4'
+u32type='unsigned int'
+u64size='8'
+u64type='unsigned long'
+u8size='1'
+u8type='unsigned char'
+uidformat='"u"'
 uidsign='1'
 uidsize='4'
 uidtype='uid_t'
@@ -691,6 +714,11 @@ usevendorprefix='undef'
 usevfork='false'
 usrinc='/usr/include'
 uuname=''
+uvoformat='"lo"'
+uvsize='8'
+uvtype='unsigned long'
+uvuformat='"lu"'
+uvxformat='"lx"'
 vendorbin=''
 vendorbinexp=''
 vendorlib=''
index facfc25..0a961cc 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Fri Oct 29 18:38:18 EET DST 1999
+ * Configuration time: Sat Oct 30 02:40:27 EET DST 1999
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
  */
 #define STDCHAR unsigned char  /**/
 
+/* Quad_t:
+ *     This symbol holds the type used for 64-bit integers.
+ *     It can be int, long, long long, int64_t etc...
+ */
+/* QUADCASE:
+ *     This symbol, if defined, encodes the type of a quad:
+ *     1 = int, 2 = long, 3 = long long, 4 = int64_t.
+ */
+/* Uquad_t:
+ *     This symbol holds the type used for unsigned 64-bit integers.
+ *     It can be unsigned int, unsigned long, unsigned long long,
+ *     uint64_t etc...
+ */
+#define Quad_t long
+#define Uquad_t unsigned long
+#define QUADCASE 2
+
 /* HAS_ACCESSX:
  *     This symbol, if defined, indicates that the accessx routine is
  *     available to do extended access checks.
 #define PERL_PRIfldbl  "f"     /**/
 #define PERL_PRIgldbl  "g"     /**/
 
-/* PERL_PRId64:
- *     This symbol, if defined, contains the string used by stdio to
- *     format 64-bit decimal numbers (format 'd') for output.
+/* IVTYPE:
+ *     This symbol defines the C type used for Perl's IV.
  */
-/* PERL_PRIu64:
- *     This symbol, if defined, contains the string used by stdio to
- *     format 64-bit unsigned decimal numbers (format 'u') for output.
+/* UVTYPE:
+ *     This symbol defines the C type used for Perl's UV.
  */
-/* PERL_PRIo64:
- *     This symbol, if defined, contains the string used by stdio to
- *     format 64-bit octal numbers (format 'o') for output.
+/* I8TYPE:
+ *     This symbol defines the C type used for Perl's I8.
  */
-/* PERL_PRIx64:
- *     This symbol, if defined, contains the string used by stdio to
- *     format 64-bit hexadecimal numbers (format 'x') for output.
+/* U8TYPE:
+ *     This symbol defines the C type used for Perl's U8.
+ */
+/* I16TYPE:
+ *     This symbol defines the C type used for Perl's I16.
+ */
+/* U16TYPE:
+ *     This symbol defines the C type used for Perl's U16.
+ */
+/* I32TYPE:
+ *     This symbol defines the C type used for Perl's I32.
+ */
+/* U32TYPE:
+ *     This symbol defines the C type used for Perl's U32.
+ */
+/* I64TYPE:
+ *     This symbol defines the C type used for Perl's I64.
+ */
+/* U64TYPE:
+ *     This symbol defines the C type used for Perl's U64.
+ */
+/* NVTYPE:
+ *     This symbol defines the C type used for Perl's NV.
+ */
+/* IVSIZE:
+ *     This symbol contains the sizeof(IV).
+ */
+/* UVSIZE:
+ *     This symbol contains the sizeof(UV).
+ */
+/* I8SIZE:
+ *     This symbol contains the sizeof(I8).
+ */
+/* U8SIZE:
+ *     This symbol contains the sizeof(U8).
+ */
+/* I16SIZE:
+ *     This symbol contains the sizeof(I16).
+ */
+/* U16SIZE:
+ *     This symbol contains the sizeof(U16).
  */
-#define PERL_PRId64    "ld"    /**/
-#define PERL_PRIu64    "lu"    /**/
-#define PERL_PRIo64    "lo"    /**/
-#define PERL_PRIx64    "lx"    /**/
+/* I32SIZE:
+ *     This symbol contains the sizeof(I32).
+ */
+/* U32SIZE:
+ *     This symbol contains the sizeof(U32).
+ */
+/* I64SIZE:
+ *     This symbol contains the sizeof(I64).
+ */
+/* U64SIZE:
+ *     This symbol contains the sizeof(U64).
+ */
+/* NVSIZE:
+ *     This symbol contains the sizeof(NV).
+ */
+#define        IVTYPE          long            /**/
+#define        UVTYPE          unsigned long           /**/
+#define        I8TYPE          char            /**/
+#define        U8TYPE          unsigned char           /**/
+#define        I16TYPE         short   /**/
+#define        U16TYPE         unsigned short  /**/
+#define        I32TYPE         int     /**/
+#define        U32TYPE         unsigned int    /**/
+#ifdef Quad_t
+#define        I64TYPE         long    /**/
+#define        U64TYPE         unsigned long   /**/
+#endif
+#define        NVTYPE          double          /**/
+#define        IVSIZE          8               /**/
+#define        UVSIZE          8               /**/
+#define        I8SIZE          1               /**/
+#define        U8SIZE          1               /**/
+#define        I16SIZE         2       /**/
+#define        U16SIZE         2       /**/
+#define        I32SIZE         4       /**/
+#define        U32SIZE         4       /**/
+#ifdef Quad_t
+#define        I64SIZE         8       /**/
+#define        U64SIZE         8       /**/
+#endif
+#define        NVSIZE          8               /**/
+
+/* IVdf:
+ *     This symbol defines the format string used for printing a Perl IV
+ *     as a signed decimal integer.
+ */
+/* UVuf:
+ *     This symbol defines the format string used for printing a Perl UV
+ *     as an unsigned decimal integer.
+ */
+/* UVof:
+ *     This symbol defines the format string used for printing a Perl UV
+ *     as an unsigned octal integer.
+ */
+/* UVxf:
+ *     This symbol defines the format string used for printing a Perl UV
+ *     as an unsigned hexadecimal integer.
+ */
+#define        IVdf            "ld"            /**/
+#define        UVuf            "lu"            /**/
+#define        UVof            "lo"            /**/
+#define        UVxf            "lx"            /**/
 
 /* SELECT_MIN_BITS:
  *     This symbol holds the minimum number of bits operated by select.
  */
 #define Fpos_t fpos_t          /* File position type */
 
-/* Gid_t_SIGN:
- *     This symbol holds the signedess of a Gid_t.
- *     1 for unsigned, -1 for signed.
- */
-#define Gid_t_SIGN     1               /* GID sign */
-
-/* Gid_t_SIZE:
- *     This symbol holds the size of a Gid_t in bytes.
+/* Gid_t_f:
+ *     This symbol defines the format string used for printing a Gid_t.
  */
-#define Gid_t_SIZE 4           /* GID size */
+#define        Gid_t_f         "u"             /**/
 
 /* Gid_t:
  *     This symbol holds the return type of getgid() and the type of
  */
 #define Pid_t pid_t            /* PID type */
 
-/* Quad_t:
- *     This symbol holds the type used for 64-bit integers.
- *     It can be int, long, long long, int64_t etc...
- */
-/* QUADCASE:
- *     This symbol, if defined, encodes the type of a quad:
- *     1 = int, 2 = long, 3 = long long, 4 = int64_t.
- */
-/* Uquad_t:
- *     This symbol holds the type used for unsigned 64-bit integers.
- *     It can be unsigned int, unsigned long, unsigned long long,
- *     uint64_t etc...
- */
-#define Quad_t long
-#define Uquad_t unsigned long
-#define QUADCASE 2
-
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
  */
 #define Size_t size_t   /* length paramater for string functions */
 
-/* Uid_t_SIGN:
- *     This symbol holds the signedess of a Uid_t.
- *     1 for unsigned, -1 for signed.
- */
-#define Uid_t_SIGN     1               /* UID sign */
-
-/* Uid_t_SIZE:
- *     This symbol holds the size of a Uid_t in bytes.
+/* Uid_t_f:
+ *     This symbol defines the format string used for printing a Uid_t.
  */
-#define Uid_t_SIZE 4           /* UID size */
+#define        Uid_t_f         "u"             /**/
 
 /* Uid_t:
  *     This symbol holds the type used to declare user ids in the kernel.
index 65e6eb4..5355052 100644 (file)
@@ -998,6 +998,23 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define STDCHAR $stdchar       /**/
 
+/* Quad_t:
+ *     This symbol holds the type used for 64-bit integers.
+ *     It can be int, long, long long, int64_t etc...
+ */
+/* QUADCASE:
+ *     This symbol, if defined, encodes the type of a quad:
+ *     1 = int, 2 = long, 3 = long long, 4 = int64_t.
+ */
+/* Uquad_t:
+ *     This symbol holds the type used for unsigned 64-bit integers.
+ *     It can be unsigned int, unsigned long, unsigned long long,
+ *     uint64_t etc...
+ */
+#define Quad_t $quadtype
+#define Uquad_t $uquadtype
+#define QUADCASE $quadcase
+
 /* HAS_ACCESSX:
  *     This symbol, if defined, indicates that the accessx routine is
  *     available to do extended access checks.
@@ -2424,6 +2441,30 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 /* UVSIZE:
  *     This symbol contains the sizeof(UV).
  */
+/* I8SIZE:
+ *     This symbol contains the sizeof(I8).
+ */
+/* U8SIZE:
+ *     This symbol contains the sizeof(U8).
+ */
+/* I16SIZE:
+ *     This symbol contains the sizeof(I16).
+ */
+/* U16SIZE:
+ *     This symbol contains the sizeof(U16).
+ */
+/* I32SIZE:
+ *     This symbol contains the sizeof(I32).
+ */
+/* U32SIZE:
+ *     This symbol contains the sizeof(U32).
+ */
+/* I64SIZE:
+ *     This symbol contains the sizeof(I64).
+ */
+/* U64SIZE:
+ *     This symbol contains the sizeof(U64).
+ */
 /* NVSIZE:
  *     This symbol contains the sizeof(NV).
  */
@@ -2442,6 +2483,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define        NVTYPE          $nvtype         /**/
 #define        IVSIZE          $ivsize         /**/
 #define        UVSIZE          $uvsize         /**/
+#define        I8SIZE          $i8size         /**/
+#define        U8SIZE          $u8size         /**/
+#define        I16SIZE         $i16size        /**/
+#define        U16SIZE         $u16size        /**/
+#define        I32SIZE         $i32size        /**/
+#define        U32SIZE         $u32size        /**/
 #ifdef Quad_t
 #define        I64SIZE         $i64size        /**/
 #define        U64SIZE         $u64size        /**/
@@ -2752,16 +2799,10 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Fpos_t $fpostype               /* File position type */
 
-/* Gid_t_SIGN:
- *     This symbol holds the signedess of a Gid_t.
- *     1 for unsigned, -1 for signed.
- */
-#define Gid_t_SIGN     $gidsign                /* GID sign */
-
-/* Gid_t_SIZE:
- *     This symbol holds the size of a Gid_t in bytes.
+/* Gid_t_f:
+ *     This symbol defines the format string used for printing a Gid_t.
  */
-#define Gid_t_SIZE $gidsize            /* GID size */
+#define        Gid_t_f         $gidformat              /**/
 
 /* Gid_t:
  *     This symbol holds the return type of getgid() and the type of
@@ -2798,23 +2839,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Pid_t $pidtype         /* PID type */
 
-/* Quad_t:
- *     This symbol holds the type used for 64-bit integers.
- *     It can be int, long, long long, int64_t etc...
- */
-/* QUADCASE:
- *     This symbol, if defined, encodes the type of a quad:
- *     1 = int, 2 = long, 3 = long long, 4 = int64_t.
- */
-/* Uquad_t:
- *     This symbol holds the type used for unsigned 64-bit integers.
- *     It can be unsigned int, unsigned long, unsigned long long,
- *     uint64_t etc...
- */
-#define Quad_t $quadtype
-#define Uquad_t $uquadtype
-#define QUADCASE $quadcase
-
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
@@ -2823,16 +2847,10 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Size_t $sizetype        /* length paramater for string functions */
 
-/* Uid_t_SIGN:
- *     This symbol holds the signedess of a Uid_t.
- *     1 for unsigned, -1 for signed.
- */
-#define Uid_t_SIGN     $uidsign                /* UID sign */
-
-/* Uid_t_SIZE:
- *     This symbol holds the size of a Uid_t in bytes.
+/* Uid_t_f:
+ *     This symbol defines the format string used for printing a Uid_t.
  */
-#define Uid_t_SIZE $uidsize            /* UID size */
+#define        Uid_t_f         $uidformat              /**/
 
 /* Uid_t:
  *     This symbol holds the type used to declare user ids in the kernel.
diff --git a/handy.h b/handy.h
index cd94988..19f589f 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -108,13 +108,14 @@ typedef I16TYPE I16;
 typedef U16TYPE U16;
 typedef I32TYPE I32;
 typedef U32TYPE U32;
-typedef I32TYPE I32;
-typedef U32TYPE U32;
 #ifdef Quad_t
 typedef I64TYPE I64;
 typedef U64TYPE U64;
 #endif
 
+/* Mention I8SIZE, U8SIZE, I16SIZE, U16SIZE, I32SIZE, U32SIZE,
+   I64SIZE, and U64SIZE here so that metaconfig pulls them in. */
+
 #if defined(UINT8_MAX) && defined(INT16_MAX) && defined(INT32_MAX)
 
 /* I8_MAX and I8_MIN constants are not defined, as I8 is an ambiguous type.
diff --git a/perl.h b/perl.h
index 06db406..372c0a4 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -901,8 +901,8 @@ Free_t   Perl_mfree (Malloc_t where);
     --Andy Dougherty   August 1996
 */
 
-typdef IVTYPE IV;
-typdef UVTYPE UV;
+typedef IVTYPE IV;
+typedef UVTYPE UV;
 
 #ifdef USE_64_BITS
 #  if QUADCASE == 4 && defined(INT64_MAX) /* quad is int64_t */
@@ -1048,7 +1048,7 @@ typdef UVTYPE UV;
 # endif
 #endif
 
-typdef NVTYPE NV;
+typedef NVTYPE NV;
 
 #ifdef USE_LONG_DOUBLE
 #   define NV_DIG LDBL_DIG
@@ -1845,84 +1845,6 @@ typedef I32 CHECKPOINT;
 #   endif
 #endif
 
-/* The Uid_t_f and Gid_t_f definitely look like a job for metaconfig. */
-
-#if Uid_t_SIGN == -1
-#   if Uid_t_SIZE == IVSIZE
-#       define Uid_t_f IVdf
-#   else
-#       if Uid_t_SIZE == LONGSIZE
-#           define Uid_t_f "ld"
-#       else
-#           if Uid_t_SIZE == INTSIZE
-#               define Uid_t_f "d"
-#           else
-#               if Uid_t_SIZE == SHORTSIZE
-#                   define Uid_t_f "hd"
-#               else
-                   /* You tell me. */
-#               endif
-#           endif
-#       endif
-#   endif
-#else
-#   if Uid_t_SIZE == UVSIZE
-#       define Uid_t_f UVuf
-#   else
-#       if Uid_t_SIZE == LONGSIZE
-#           define Uid_t_f "lu"
-#       else
-#           if Uid_t_SIZE == INTSIZE
-#               define Uid_t_f "u"
-#           else
-#               if Uid_t_SIZE == SHORTSIZE
-#                   define Uid_t_f "hu"
-#               else
-                   /* You tell me. */
-#               endif
-#           endif
-#       endif
-#   endif
-#endif
-
-#if Gid_t_SIGN == -1
-#   if Gid_t_SIZE == IVSIZE
-#       define Gid_t_f IVdf
-#   else
-#       if Gid_t_SIZE == LONGSIZE
-#           define Gid_t_f "ld"
-#       else
-#           if Gid_t_SIZE == INTSIZE
-#               define Gid_t_f "d"
-#           else
-#               if Gid_t_SIZE == SHORTSIZE
-#                   define Gid_t_f "hd"
-#               else
-                   /* You tell me. */
-#               endif
-#           endif
-#       endif
-#   endif
-#else
-#   if Gid_t_SIZE == UVSIZE
-#       define Gid_t_f UVuf
-#   else
-#       if Gid_t_SIZE == LONGSIZE
-#           define Gid_t_f "lu"
-#       else
-#           if Gid_t_SIZE == INTSIZE
-#               define Gid_t_f "u"
-#           else
-#               if Gid_t_SIZE == SHORTSIZE
-#                   define Gid_t_f "hu"
-#               else
-                   /* You tell me. */
-#               endif
-#           endif
-#       endif
-#   endif
-#endif
-
 /* Used with UV/IV arguments: */
                                        /* XXXX: need to speed it up */
 #define CLUMP_2UV(iv)  ((iv) < 0 ? 0 : (UV)(iv))