#endif /* PERL_FOR_X2P */
#define VOIDUSED 1
-#include "config.h"
+#ifdef PERL_MICRO
+# include "uconfig.h"
+#else
+# include "config.h"
+#endif
#if defined(USE_ITHREADS) && defined(USE_5005THREADS)
# include "error: USE_ITHREADS and USE_5005THREADS are incompatible"
# define aTHXo aTHX
# define aTHXo_ aTHX_
# define dTHXo dTHX
+# define dTHXoa(x) dTHXa(x)
#endif
#ifndef pTHXx
#undef METHOD
#endif
+#ifdef PERL_MICRO
+# define NO_LOCALE
+#endif
+
#ifdef I_LOCALE
# include <locale.h>
#endif
# endif
# endif
#else
+# undef memset
# define memset(d,c,l) my_memset(d,c,l)
#endif /* HAS_MEMSET */
# endif
#endif
+#ifdef PERL_MICRO
+# ifndef DIR
+# define DIR void
+# endif
+#endif
+
#ifdef FPUTS_BOTCH
/* work around botch in SunOS 4.0.1 and 4.0.2 */
# ifndef fputs
# include <sunmath.h>
# endif
# define NV_DIG LDBL_DIG
+# ifdef LDBL_MANT_DIG
+# define NV_MANT_DIG LDBL_MANT_DIG
+# endif
# ifdef HAS_SQRTL
- /* libsunmath doesn't have modfl and frexpl as of mid-March 2000 */
- /* XXX Configure probe for modfl and frexpl needed XXX */
-# if defined(__sun) && defined(__svr4)
-# define Perl_modf(x,y) ((long double)modf((double)(x),(double*)(y)))
-# define Perl_frexp(x) ((long double)frexp((double)(x)))
-# else
-# define Perl_modf modfl
-# define Perl_frexp frexpl
-# endif
# define Perl_cos cosl
# define Perl_sin sinl
# define Perl_sqrt sqrtl
# define Perl_floor floorl
# define Perl_fmod fmodl
# endif
+/* e.g. libsunmath doesn't have modfl and frexpl as of mid-March 2000 */
+# ifdef HAS_MODFL
+# define Perl_modf(x,y) modfl(x,y)
+# else
+# define Perl_modf(x,y) ((long double)modf((double)(x),(double*)(y)))
+# endif
+# ifdef HAS_FREXPL
+# define Perl_frexp(x,y) frexpl(x,y)
+# else
+# define Perl_frexp(x,y) ((long double)frexp((double)(x),y))
+# endif
+# ifdef HAS_ISNANL
+# define Perl_isnan(x) isnanl(x)
+# else
+# ifdef HAS_ISNAN
+# define Perl_isnan(x) isnan((double)(x))
+# else
+# define Perl_isnan(x) ((x)!=(x))
+# endif
+# endif
#else
# define NV_DIG DBL_DIG
-# define Perl_modf modf
-# define Perl_frexp frexp
+# ifdef DBL_MANT_DIG
+# define NV_MANT_DIG DBL_MANT_DIG
+# endif
# define Perl_cos cos
# define Perl_sin sin
# define Perl_sqrt sqrt
# define Perl_pow pow
# define Perl_floor floor
# define Perl_fmod fmod
+# define Perl_modf(x,y) modf(x,y)
+# define Perl_frexp(x,y) frexp(x,y)
+# ifdef HAS_ISNAN
+# define Perl_isnan(x) isnan(x)
+# else
+# define Perl_isnan(x) ((x)!=(x))
+# endif
#endif
#if !defined(Perl_atof) && defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
0, MEMBER_TO_FPTR(Perl_magic_clearenv),
0};
EXT MGVTBL PL_vtbl_sig = {0, 0, 0, 0, 0};
+#ifdef PERL_MICRO
+EXT MGVTBL PL_vtbl_sigelem = {0, 0, 0, 0, 0};
+#else
EXT MGVTBL PL_vtbl_sigelem = {MEMBER_TO_FPTR(Perl_magic_getsig),
MEMBER_TO_FPTR(Perl_magic_setsig),
0, MEMBER_TO_FPTR(Perl_magic_clearsig),
0};
+#endif
EXT MGVTBL PL_vtbl_pack = {0, 0, MEMBER_TO_FPTR(Perl_magic_sizepack), MEMBER_TO_FPTR(Perl_magic_wipepack),
0};
EXT MGVTBL PL_vtbl_packelem = {MEMBER_TO_FPTR(Perl_magic_getpack),