X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=8f1cad367ef8c6e388023f7a70766b846fe63125;hb=40b7a5f5e789eb31046d021a15e48b502ad8e1e9;hp=ba0c5c74faf3fa64b90d276880ddbedd700acc45;hpb=9514c62b63b7afca8bfb22c2e26cd3413f1fa007;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index ba0c5c7..8f1cad3 100644 --- a/perl.h +++ b/perl.h @@ -360,15 +360,15 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER)); */ /* define this once if either system, instead of cluttering up the src */ -#if defined(MSDOS) || defined(atarist) || defined(WIN32) +#if defined(MSDOS) || defined(atarist) || defined(WIN32) || defined(NETWARE) #define DOSISH 1 #endif -#if defined(__STDC__) || defined(vax11c) || defined(_AIX) || defined(__stdc__) || defined(__cplusplus) || defined( EPOC) +#if defined(__STDC__) || defined(vax11c) || defined(_AIX) || defined(__stdc__) || defined(__cplusplus) || defined( EPOC) || defined(NETWARE) # define STANDARD_C 1 #endif -#if defined(__cplusplus) || defined(WIN32) || defined(__sgi) || defined(OS2) || defined(__DGUX) || defined( EPOC) || defined(__QNX__) +#if defined(__cplusplus) || defined(WIN32) || defined(__sgi) || defined(OS2) || defined(__DGUX) || defined( EPOC) || defined(__QNX__) || defined(NETWARE) # define DONT_DECLARE_STD 1 #endif @@ -777,6 +777,9 @@ typedef struct perl_mstats perl_mstats_t; # endif # endif # ifdef I_NETDB +# ifdef NETWARE +# include +# endif # include # endif # ifndef ENOTSOCK @@ -1128,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)) @@ -1749,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 @@ -1788,6 +1793,9 @@ typedef struct ptr_tbl PTR_TBL_t; * atomic.h everywhere */ # define EMULATE_ATOMIC_REFCOUNTS # endif +# ifdef NETWARE +# include +# else # ifdef FAKE_THREADS # include "fakethr.h" # else @@ -1818,12 +1826,17 @@ typedef pthread_key_t perl_key; # endif /* OS2 */ # endif /* WIN32 */ # endif /* FAKE_THREADS */ +#endif /* NETWARE */ #endif /* USE_THREADS || USE_ITHREADS */ #ifdef WIN32 # include "win32.h" #endif +#ifdef NETWARE +# include "netware.h" +#endif + #ifdef VMS # define STATUS_NATIVE PL_statusvalue_vms # define STATUS_NATIVE_EXPORT \ @@ -3497,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 */ @@ -3596,7 +3610,9 @@ typedef struct am_table_short AMTS; #ifndef PERL_MICRO # ifndef PERL_OLD_SIGNALS -# define PERL_ASYNC_CHECK() if (PL_sig_pending) despatch_signals() +# ifndef PERL_ASYNC_CHECK +# define PERL_ASYNC_CHECK() if (PL_sig_pending) despatch_signals() +# endif # endif #endif @@ -3811,6 +3827,8 @@ extern void moncontrol(int); USE_REENTRANT_API + HAS_NL_LANGINFO + so that Configure picks them up. */ #endif /* Include guard */