X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=8f1cad367ef8c6e388023f7a70766b846fe63125;hb=40b7a5f5e789eb31046d021a15e48b502ad8e1e9;hp=a0405d1f797eeab180d08242ea36391eb9860627;hpb=ccf874816b57b9b91848a81cf43371bf7b3f17c8;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index a0405d1..8f1cad3 100644 --- a/perl.h +++ b/perl.h @@ -1082,16 +1082,6 @@ int sockatmark(int); typedef IVTYPE IV; typedef UVTYPE UV; -#ifdef INT32_MIN_BROKEN -# undef INT32_MIN -# define INT32_MIN (-2147483647-1) -#endif - -#ifdef INT64_MIN_BROKEN -# undef INT64_MIN -# define INT64_MIN (-9223372036854775807LL-1) -#endif - #if defined(USE_64_BIT_INT) && defined(HAS_QUAD) # if QUADKIND == QUAD_IS_INT64_T && defined(INT64_MAX) # define IV_MAX INT64_MAX @@ -1141,23 +1131,9 @@ typedef UVTYPE UV; # endif #endif -/* - I've tracked down a weird bug in Perl5.6.1 to the UTS compiler's - mishandling of MY_UV_MAX in util.c. It is defined as - #ifndef MY_UV_MAX - # define MY_UV_MAX ((UV)IV_MAX * (UV)2 + (UV)1) - #endif - The compiler handles {double floating point value} >= MY_UV_MAX as if - MY_UV_MAX were the signed integer -1. In fact it will do the same - thing with (UV)(0xffffffff), in place of MY_UV_MAX, though 0xffffffff - *without* the typecast to UV works fine. - - hom00@utsglobal.com (Hal Morris) 2001-05-02 - - */ - -#ifdef UTS -# define MY_UV_MAX 0xffffffff +#if defined(uts) || defined(UTS) +# undef UV_MAX +# define UV_MAX (4294967295u) #endif #define IV_DIG (BIT_DIGITS(IVSIZE * 8)) @@ -1762,6 +1738,22 @@ typedef struct ptr_tbl PTR_TBL_t; # define NEED_ENVIRON_DUP_FOR_MODIFY #endif +/* + * initialise to avoid floating-point exceptions from overflow, etc + */ +#ifndef PERL_FPU_INIT +# ifdef HAS_FPSETMASK +# if HAS_FLOATINGPOINT_H +# include +# endif +# define PERL_FPU_INIT fpsetmask(0); +# elif PERL_IGNORE_FPUSIG +# define PERL_FPU_INIT signal(PERL_IGNORE_FPUSIG, SIG_IGN); +# else +# define PERL_FPU_INIT +# endif +#endif + #ifndef PERL_SYS_INIT3 # define PERL_SYS_INIT3(argvp,argcp,envp) PERL_SYS_INIT(argvp,argcp) #endif @@ -3518,6 +3510,7 @@ typedef struct am_table_short AMTS; #define RESTORE_NUMERIC_LOCAL() /**/ #define RESTORE_NUMERIC_STANDARD() /**/ #define Atof Perl_atof +#define IN_LOCALE_RUNTIME 0 #endif /* !USE_LOCALE_NUMERIC */ @@ -3834,6 +3827,8 @@ extern void moncontrol(int); USE_REENTRANT_API + HAS_NL_LANGINFO + so that Configure picks them up. */ #endif /* Include guard */