#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
+/* Needed to get the macro version of errno on some OSs (eg. Solaris).
+ We must do this, because these libs are only compiled once, but
+ must work in both single-threaded and multi-threaded programs. */
+#define _REENTRANT 1
+
#include "HsFFI.h"
#include <stdio.h>
#if HAVE_WCTYPE_H
#include <wctype.h>
#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#elif HAVE_STDINT_H
+# include <stdint.h>
+#endif
#if !defined(mingw32_HOST_OS) && !defined(irix_HOST_OS)
# if HAVE_SYS_RESOURCE_H
extern char** environ;
INLINE char **__hscore_environ() { return environ; }
+/* lossless conversions between pointers and integral types */
+INLINE void * __hscore_from_uintptr(uintptr_t n) { return (void *)n; }
+INLINE void * __hscore_from_intptr (intptr_t n) { return (void *)n; }
+INLINE uintptr_t __hscore_to_uintptr (void *p) { return (uintptr_t)p; }
+INLINE intptr_t __hscore_to_intptr (void *p) { return (intptr_t)p; }
+
#endif /* __HSBASE_H__ */