Backport of #1638: %zd configure test fails on Linux
diff --git a/configure b/configure
index 88e2b9d..aa63cf7 100755
--- a/configure
+++ b/configure
@@ -22505,9 +22505,9 @@
 #include <stddef.h>
 #include <string.h>
 
-int main()
-{
-    char buffer[256];
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
 
 #ifdef HAVE_SSIZE_T
 typedef ssize_t Py_ssize_t;
@@ -22517,6 +22517,10 @@
 typedef int Py_ssize_t;
 #endif
 
+int main()
+{
+    char buffer[256];
+
     if(sprintf(buffer, "%zd", (size_t)123) < 0)
        	return 1;