-#if __GNUC__ >= 3
-# define inline inline __attribute__ ((always_inline))
-# define __noreturn __attribute__ ((noreturn))
-# define __malloc __attribute__ ((malloc))
-# define __used __attribute__ ((used))
-# define __a_unused __attribute__ ((unused))
-# define __packed __attribute__ ((packed))
-# define likely(x) __builtin_expect (!!(x), 1)
-# define unlikely(x) __builtin_expect (!!(x), 0)
-/*
- * p is the number of the "format string" parameter, and q is
- * the number of the first variadic parameter
+#define inline inline __attribute__ ((always_inline))
+#define __noreturn __attribute__ ((noreturn))
+#define __malloc __attribute__ ((malloc))
+#define __a_unused __attribute__ ((unused))
+#define __a_aligned(alignment) __attribute__((__aligned__(alignment)))
+
+/*
+ * p is the number of the "format string" parameter, and q is
+ * the number of the first variadic parameter.
*/
# define __printf(p,q) __attribute__ ((format (printf, p, q)))
/*
#define __printf_1_2 __printf(1,2)
#define __printf_2_3 __printf(2,3)
-#else
-
-# define inline /* no inline */
-# define __noreturn /* no noreturn */
-# define __malloc /* no malloc */
-# define __used /* no used */
-# define __a_unused /* no unused */
-# define __packed /* no packed */
-# define likely(x) (x)
-# define unlikely(x) (x)
-# define __printf(p,q) /* no format */
-#define __printf_1_2
-#define __printf_2_3
-#endif
-
-# if __GNUC__ >=3 && __GNUC_MINOR__ > 3
+# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3)
# define __must_check __attribute__ ((warn_unused_result))
# else
# define __must_check /* no warn_unused_result */