/* XSUB.h
*
* Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999,
- * 2000, 2001, 2002, 2003, by Larry Wall and others
+ * 2000, 2001, 2002, 2003, 2004, 2005 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
#define ST(off) PL_stack_base[ax + (off)]
+#undef XS
#if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
# define XS(name) __declspec(dllexport) void name(pTHX_ CV* cv)
-#else
-# define XS(name) void name(pTHX_ CV* cv)
+#endif
+#if defined(SYMBIAN)
+# define XS(name) EXPORT_C void name(pTHX_ CV* cv)
+#endif
+#ifndef XS
+# if defined(HASATTRIBUTE)
+# define XS(name) void name(pTHX_ CV* cv __attribute__((unused)))
+# else
+# define XS(name) void name(pTHX_ CV* cv)
+# endif
#endif
#define dAX I32 ax = MARK - PL_stack_base + 1
# define XS_VERSION_BOOTCHECK \
STMT_START { \
SV *_sv; STRLEN n_a; \
- char *vn = Nullch, *module = SvPV(ST(0),n_a); \
+ const char *vn = Nullch, *module = SvPV(ST(0),n_a); \
if (items >= 2) /* version supplied as bootstrap arg */ \
_sv = ST(1); \
else { \