diff --git a/configure.ac b/configure.ac
index 7b601204998083dfb96f5b45b34147adf233bbf5..4935e1f85a9de7da179b4e2787f4232b7dd16b11 100644
--- a/configure.ac
+++ b/configure.ac
@@ -129,41 +129,7 @@ AC_C_BIGENDIAN
 
 AC_REPLACE_FUNCS(memxor)
 
-# Check for gcc's __attribute__ construction
-AC_CACHE_CHECK(for __attribute__,
-	       lsh_cv_c_attribute,
-[ AC_TRY_COMPILE([
-#include <stdlib.h>
-],
-[
-static void foo(void) __attribute__ ((noreturn));
-
-static void __attribute__ ((noreturn))
-foo(void)
-{
-  exit(1);
-}
-],
-lsh_cv_c_attribute=yes,
-lsh_cv_c_attribute=no)])
-
-AH_TEMPLATE([HAVE_GCC_ATTRIBUTE],
-	    [Define if the compiler understands __attribute__])
-if test "x$lsh_cv_c_attribute" = "xyes"; then
-  AC_DEFINE(HAVE_GCC_ATTRIBUTE)
-fi
-
-AH_BOTTOM(
-[#if __GNUC__ && HAVE_GCC_ATTRIBUTE
-# define NORETURN __attribute__ ((__noreturn__))
-# define PRINTF_STYLE(f, a) __attribute__ ((__format__ (__printf__, f, a)))
-# define UNUSED __attribute__ ((__unused__))
-#else
-# define NORETURN
-# define PRINTF_STYLE(f, a)
-# define UNUSED
-#endif
-])
+LSH_GCC_ATTRIBUTES
 
 # Checks for libraries
 AC_CHECK_LIB(gmp, __gmpz_getlimbn,,