diff --git a/m4/tuklib_integer.m4 b/m4/tuklib_integer.m4
index 7c6653df864d2ddae65e1ee9337a5872e4c427a5_bTQvdHVrbGliX2ludGVnZXIubTQ=..ddb6913fa8fd96d9673f183dbaab4d41b864f1d9_bTQvdHVrbGliX2ludGVnZXIubTQ= 100644
--- a/m4/tuklib_integer.m4
+++ b/m4/tuklib_integer.m4
@@ -7,7 +7,7 @@
 #
 #   Checks for tuklib_integer.h:
 #     - Endianness
-#     - Does operating system provide byte swapping macros
+#     - Does the compiler or the operating system provide byte swapping macros
 #     - Does the hardware support fast unaligned access to 16-bit
 #       and 32-bit integers
 #
@@ -22,5 +22,4 @@
 AC_DEFUN_ONCE([TUKLIB_INTEGER], [
 AC_REQUIRE([TUKLIB_COMMON])
 AC_REQUIRE([AC_C_BIGENDIAN])
-AC_CHECK_HEADERS([byteswap.h sys/endian.h sys/byteorder.h], [break])
 
@@ -26,9 +25,25 @@
 
-# Even if we have byteswap.h, we may lack the specific macros/functions.
-if test x$ac_cv_header_byteswap_h = xyes ; then
-	m4_foreach([FUNC], [bswap_16,bswap_32,bswap_64], [
-		AC_MSG_CHECKING([if FUNC is available])
-		AC_LINK_IFELSE([AC_LANG_SOURCE([
+AC_MSG_CHECKING([if __builtin_bswap16/32/64 are supported])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
+			[[__builtin_bswap16(1);
+			__builtin_bswap32(1);
+			__builtin_bswap64(1);]])],
+[
+	AC_DEFINE([HAVE___BUILTIN_BSWAPXX], [1],
+		[Define to 1 if the GNU C extensions
+		__builtin_bswap16/32/64 are supported.])
+	AC_MSG_RESULT([yes])
+], [
+	AC_MSG_RESULT([no])
+
+	# Look for other byteswapping methods.
+	AC_CHECK_HEADERS([byteswap.h sys/endian.h sys/byteorder.h], [break])
+
+	# Even if we have byteswap.h we may lack the specific macros/functions.
+	if test x$ac_cv_header_byteswap_h = xyes ; then
+		m4_foreach([FUNC], [bswap_16,bswap_32,bswap_64], [
+			AC_MSG_CHECKING([if FUNC is available])
+			AC_LINK_IFELSE([AC_LANG_SOURCE([
 #include <byteswap.h>
 int
 main(void)
@@ -36,6 +51,6 @@
 	FUNC[](42);
 	return 0;
 }
-		])], [
-			AC_DEFINE(HAVE_[]m4_toupper(FUNC), [1],
+			])], [
+				AC_DEFINE(HAVE_[]m4_toupper(FUNC), [1],
 					[Define to 1 if] FUNC [is available.])
@@ -41,7 +56,4 @@
 					[Define to 1 if] FUNC [is available.])
-			AC_MSG_RESULT([yes])
-		], [AC_MSG_RESULT([no])])
-
-	])dnl
-fi
+				AC_MSG_RESULT([yes])
+			], [AC_MSG_RESULT([no])])
 
@@ -47,17 +59,7 @@
 
-AC_MSG_CHECKING([if __builtin_bswap16/32/64 are supported])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
-			[[__builtin_bswap16(1);
-			__builtin_bswap32(1);
-			__builtin_bswap64(1);]])],
-	[
-		AC_DEFINE([HAVE___BUILTIN_BSWAPXX], [1],
-			[Define to 1 if the GNU C extensions
-			__builtin_bswap16/32/64 are supported.])
-		AC_MSG_RESULT([yes])
-	], [
-		AC_MSG_RESULT([no])
-	])
+		])dnl
+	fi
+])
 
 AC_MSG_CHECKING([if unaligned memory access should be used])
 AC_ARG_ENABLE([unaligned-access], AS_HELP_STRING([--enable-unaligned-access],