summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfigure400
-rw-r--r--Porting/Glossary105
-rw-r--r--Porting/config.sh36
-rw-r--r--Porting/config_H185
-rw-r--r--config_h.SH88
-rw-r--r--handy.h5
-rw-r--r--perl.h84
7 files changed, 576 insertions, 327 deletions
diff --git a/Configure b/Configure
index 3bd3a060bf..559eb24df1 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on 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'
diff --git a/Porting/Glossary b/Porting/Glossary
index 3747aabc28..edda0cb845 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -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.
diff --git a/Porting/config.sh b/Porting/config.sh
index f46a1bd554..a0f6d31212 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -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=''
diff --git a/Porting/config_H b/Porting/config_H
index facfc259b7..0a961cc9b7 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -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
*/
@@ -984,6 +984,23 @@
*/
#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.
@@ -2371,26 +2388,119 @@
#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.
@@ -2675,16 +2785,10 @@
*/
#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
@@ -2721,23 +2825,6 @@
*/
#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
@@ -2746,16 +2833,10 @@
*/
#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.
diff --git a/config_h.SH b/config_h.SH
index 65e6eb459f..5355052c8f 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -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 cd94988535..19f589f6c5 100644
--- 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 06db4065cf..372c0a4bd2 100644
--- 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))