# define CALLPROTECT CALL_FPTR(PL_protect)
#endif
+#ifdef HASATTRIBUTE
+# define PERL_UNUSED_DECL __attribute__((unused))
+#else
+# define PERL_UNUSED_DECL
+#endif
+
+/* gcc -Wall:
+ * for silencing unused variables that are actually used most of the time,
+ * but we cannot quite get rid of, such `ax' in PPCODE+noargs xsubs
+ */
+#define PERL_UNUSED_VAR(var) if (0) var = var
+
#define NOOP (void)0
-#define dNOOP extern int Perl___notused __attribute__ ((unused))
+#define dNOOP extern int Perl___notused PERL_UNUSED_DECL
#ifndef pTHX
# define pTHX void
# define dTHXx dTHX
#endif
+/* Under PERL_IMPLICIT_SYS (used in Windows for fork emulation)
+ * PerlIO_foo() expands to PL_StdIO->pFOO(PL_StdIO, ...).
+ * dTHXs is therefore needed for all functions using PerlIO_foo(). */
+#ifdef PERL_IMPLICIT_SYS
+# define dTHXs dTHX
+#else
+# define dTHXs dNOOP
+#endif
+
#undef START_EXTERN_C
#undef END_EXTERN_C
#undef EXTERN_C
*/
/* 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
# endif
# endif
# ifdef I_NETDB
+# ifdef NETWARE
+# include<stdio.h>
+# endif
# include <netdb.h>
# endif
# ifndef ENOTSOCK
* atomic.h everywhere */
# define EMULATE_ATOMIC_REFCOUNTS
# endif
+# ifdef NETWARE
+# include <nw5thread.h>
+# else
# ifdef FAKE_THREADS
# include "fakethr.h"
# else
# 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 \
#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
#define GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(sp, send)
+/* to let user control profiling */
+#ifdef PERL_GPROF_CONTROL
+extern void moncontrol(int);
+#define PERL_GPROF_MONCONTROL(x) moncontrol(x)
+#else
+#define PERL_GPROF_MONCONTROL(x)
+#endif
+
/* and finally... */
#define PERL_PATCHLEVEL_H_IMPLICIT
#include "patchlevel.h"
HAS_STRUCT_MSGHDR
HAS_STRUCT_CMSGHDR
+ USE_REENTRANT_API
+
so that Configure picks them up. */
#endif /* Include guard */