# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Fri Jun 8 02:03:31 EET DST 2001 [metaconfig 3.0 PL70]
+# Generated on Fri Jun 8 18:06:31 EET DST 2001 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
d_mmap=''
mmaptype=''
d_modfl=''
+d_modfl_pow32_bug=''
d_mprotect=''
d_msg=''
d_msgctl=''
set modfl d_modfl
eval $inlibc
+d_modfl_pow32_bug="$undef"
+
case "$d_longdbl$d_modfl" in
$define$define)
$cat <<EOM
case "$foo" in
*" 4294967303.150000 1.150000 4294967302.000000")
echo >&4 "Your modfl() is broken for large values."
- d_modfl="$undef"
+ d_modfl_pow32_bug="$define"
case "$foo" in
glibc) echo >&4 "You should upgrade your glibc to at least 2.2.2 to get a fixed modfl()."
;;
d_mktime='$d_mktime'
d_mmap='$d_mmap'
d_modfl='$d_modfl'
+d_modfl_pow32_bug='$d_modfl_pow32_bug'
d_mprotect='$d_mprotect'
d_msg='$d_msg'
d_msg_ctrunc='$d_msg_ctrunc'
This variable conditionally defines the HAS_MODFL symbol, which
indicates to the C program that the modfl() routine is available.
+d_modfl_pow32_bug (d_modfl.U):
+ This variable conditionally defines the HAS_MODFL_POW32_BUG symbol,
+ which indicates that modfl() is broken for long doubles >= pow(2, 32).
+ For example from 4294967303.150000 one would get 4294967302.000000
+ and 1.150000. The bug has been seen in certain versions of glibc,
+ release 2.2.2 is known to be okay.
+
d_mprotect (d_mprotect.U):
This variable conditionally defines HAS_MPROTECT if mprotect() is
available to modify the access protection of a memory mapped file.
# Package name : perl5
# Source directory : .
-# Configuration time: Fri Jun 8 04:49:05 EET DST 2001
+# Configuration time: Fri Jun 8 18:08:58 EET DST 2001
# Configured by : jhi
# Target system : osf1 alpha.hut.fi v4.0 878 alpha
ccversion='V5.6-082'
cf_by='jhi'
cf_email='yourname@yourhost.yourplace.com'
-cf_time='Fri Jun 8 04:49:05 EET DST 2001'
+cf_time='Fri Jun 8 18:08:58 EET DST 2001'
charsize='1'
chgrp=''
chmod=''
d_mktime='define'
d_mmap='define'
d_modfl='undef'
+d_modfl_pow32_bug='undef'
d_mprotect='define'
d_msg='define'
d_msg_ctrunc='define'
path_sep=':'
perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl'
perl=''
-perl_patchlevel='10438'
+perl_patchlevel='10475'
perladmin='yourname@yourhost.yourplace.com'
perllibs='-lm -liconv -lutil -lpthread -lexc'
perlpath='/opt/perl/bin/perl'
PERL_API_REVISION=5
PERL_API_VERSION=5
PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=10438
+PERL_PATCHLEVEL=10475
PERL_CONFIG_SH=true
# Variables propagated from previous config.sh file.
pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Fri Jun 8 04:49:05 EET DST 2001
+ * Configuration time: Fri Jun 8 18:08:58 EET DST 2001
* Configured by : jhi
* Target system : osf1 alpha.hut.fi v4.0 878 alpha
*/
* available to split a long double x into a fractional part f and
* an integer part i such that |f| < 1.0 and (f + i) = x.
*/
+/* HAS_MODFL_POW32_BUG:
+ * This symbol, if defined, indicates that the modfl routine is
+ * broken for long doubles >= pow(2, 32).
+ * For example from 4294967303.150000 one would get 4294967302.000000
+ * and 1.150000. The bug has been seen in certain versions of glibc,
+ * release 2.2.2 is known to be okay.
+ */
/*#define HAS_MODFL / **/
+/*#define HAS_MODFL_POW32_BUG / **/
/* HAS_MPROTECT:
* This symbol, if defined, indicates that the mprotect system call is
* available to split a long double x into a fractional part f and
* an integer part i such that |f| < 1.0 and (f + i) = x.
*/
+/* HAS_MODFL_POW32_BUG:
+ * This symbol, if defined, indicates that the modfl routine is
+ * broken for long doubles >= pow(2, 32).
+ * For example from 4294967303.150000 one would get 4294967302.000000
+ * and 1.150000. The bug has been seen in certain versions of glibc,
+ * release 2.2.2 is known to be okay.
+ */
#$d_modfl HAS_MODFL /**/
+#$d_modfl_pow32_bug HAS_MODFL_POW32_BUG /**/
/* HAS_MPROTECT:
* This symbol, if defined, indicates that the mprotect system call is
$ WC "d_mktime='" + d_mktime + "'"
$ WC "d_mmap='undef'"
$ WC "d_modfl='" + d_modfl + "'"
+$ WC "d_modfl_pow32_bug = "undef"'
$ WC "d_mprotect='undef'"
$ WC "d_msg='undef'"
$ WC "d_msg_ctrunc='undef'"
d_mktime='define'
d_mmap='undef'
d_modfl='undef'
+d_modfl_pow32_bug='undef'
d_mprotect='undef'
d_msg='undef'
d_msg_ctrunc='undef'
SETu(U_V(value));
} else {
#if defined(HAS_MODFL) || defined(LONG_DOUBLE_EQUALS_DOUBLE)
+# ifdef HAS_MODFL_POW32_BUG
+/* some versions of glibc split (i + d) into (i-1, d+1) for 2^32 <= i < 2^64 */
+ {
+ NV offset = Perl_modf(value, &value);
+ (void)Perl_modf(offset, &offset);
+ value += offset;
+ }
+# else
(void)Perl_modf(value, &value);
+# endif
#else
double tmp = (double)value;
(void)Perl_modf(tmp, &tmp);
SETi(I_V(value));
} else {
#if defined(HAS_MODFL) || defined(LONG_DOUBLE_EQUALS_DOUBLE)
+# ifdef HAS_MODFL_POW32_BUG
+/* some versions of glibc split (i + d) into (i-1, d+1) for 2^32 <= i < 2^64 */
+ {
+ NV offset = Perl_modf(-value, &value);
+ (void)Perl_modf(offset, &offset);
+ value += offset;
+ }
+# else
(void)Perl_modf(-value, &value);
+# endif
value = -value;
#else
double tmp = (double)value;
* This symbol contains the value of sizeof(short) so that the C
* preprocessor can make decisions based on it.
*/
-#define INTSIZE 1 /**/
+#define INTSIZE 4 /**/
#define LONGSIZE 4 /**/
-#define SHORTSIZE 1 /**/
+#define SHORTSIZE 2 /**/
/* MULTIARCH:
* This symbol, if defined, signifies that the build
*/
/*#define HAS_LONG_DOUBLE / **/
#ifdef HAS_LONG_DOUBLE
-#define LONG_DOUBLESIZE 1 /**/
+#define LONG_DOUBLESIZE 8 /**/
#endif
/* HAS_LONG_LONG:
*/
/*#define HAS_LONG_LONG / **/
#ifdef HAS_LONG_LONG
-#define LONGLONGSIZE 1 /**/
+#define LONGLONGSIZE 8 /**/
#endif
/* HAS_LSEEK_PROTO:
* available to split a long double x into a fractional part f and
* an integer part i such that |f| < 1.0 and (f + i) = x.
*/
+/* HAS_MODFL_POW32_BUG:
+ * This symbol, if defined, indicates that the modfl routine is
+ * broken for long doubles >= pow(2, 32).
+ * For example from 4294967303.150000 one would get 4294967302.000000
+ * and 1.150000. The bug has been seen in certain versions of glibc,
+ * release 2.2.2 is known to be okay.
+ */
/*#define HAS_MODFL / **/
+/*#define HAS_MODFL_POW32_BUG / **/
/* HAS_MPROTECT:
* This symbol, if defined, indicates that the mprotect system call is
* This symbol holds the number of bytes used by the Off_t.
*/
#define Off_t int /* <offset> type */
-#define LSEEKSIZE 1 /* <offset> size */
-#define Off_t_size 1 /* <offset> size */
+#define LSEEKSIZE 4 /* <offset> size */
+#define Off_t_size 4 /* <offset> size */
/* Free_t:
* This variable contains the return type of free(). It is usually
/* Size_t_size:
* This symbol holds the size of a Size_t in bytes.
*/
-#define Size_t_size 1 /* */
+#define Size_t_size 4 /* */
/* Size_t:
* This symbol holds the type used to declare length parameters
d_mktime='undef'
d_mmap='undef'
d_modfl='undef'
+d_modfl_pow32_bug='undef'
d_mprotect='undef'
d_msg='undef'
d_msg_ctrunc='undef'
installstyle='lib/perl5'
installusrbinperl='undef'
intsize='4'
-intsize=1
ivdformat='"ld"'
ivsize='4'
ivtype='long'
lib_ext='.a'
-longdblsize=1
-longlongsize=1
+longdblsize=8
+longlongsize=8
longsize='4'
-lseeksize=1
+lseeksize=4
lseektype=int
malloctype='int*'
malloctype='void *'
selectminbits='32'
selecttype=int
shmattype='void *'
-shortsize=1
+shortsize=2
sig_name_init='0'
sig_num_init='0'
sig_size='1'
signal_t=int
-sizesize=1
+sizesize=4
sizetype=int
socksizetype='int'
ssizetype=int
$d_mktime='define'
$d_mmap='undef'
$d_modfl='undef'
+$d_modfl_pow32_bug='undef'
$d_mprotect='undef'
$d_msg='undef'
$d_msg_ctrunc='undef'
$d_mktime='define'
$d_mmap='define'
$d_modfl='undef'
+$d_modfl_pow32_bug='undef'
$d_mprotect='undef'
$d_msg='undef'
$d_msg_ctrunc='undef'
d_mktime='define'
d_mmap='undef'
d_modfl='undef'
+d_modfl_pow32_bug='undef'
d_mprotect='undef'
d_msg='undef'
d_msg_ctrunc='undef'
d_mktime='define'
d_mmap='undef'
d_modfl='undef'
+d_modfl_pow32_bug='undef'
d_mprotect='undef'
d_msg='undef'
d_msg_ctrunc='undef'
d_mktime='define'
d_mmap='undef'
d_modfl='undef'
+d_modfl_pow32_bug='undef'
d_mprotect='undef'
d_msg='undef'
d_msg_ctrunc='undef'