+
+#if defined __GNUC__ && defined __GNUC_MINOR__
+ #define GNUC_PREREQ(maj, min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+ #define GNUC_PREREQ(maj, min) 0
+#endif
+
+/* A few defaults for missing compiler features. */
+#define INLINE static inline
+#define NORETURN /* nothing */
+#define FORMAT(type,fmt,first) /* nothing */
+#define DEPRECATED /* nothing */
+#define UNUSED(type,arg) type arg
+#define REGISTER /* nothing */
+#define INTERRUPT(x) ERROR_NOT_IMPLEMENTED
+
+/* Support for harvard architectures */
+#define PGM_READ_CHAR(s) (*(s))
+#define PGM_FUNC(x) x
+#define PGM_ATTR /* nothing */
+