Fixed #1638: %zd configure test fails on Linux
diff --git a/Misc/NEWS b/Misc/NEWS
index 3c95ca5..a45ac11 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@
 Core and builtins
 -----------------
 
+- Issue #1638: %zd configure test fails on Linux
+
 - Issue #1620: New property decorator syntax was modifying the decorator
   in place instead of creating a new decorator object.
 
diff --git a/configure b/configure
index 4aa1730..f31069e 100755
--- a/configure
+++ b/configure
@@ -23176,9 +23176,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;
@@ -23188,6 +23188,10 @@
 typedef int Py_ssize_t;
 #endif
 
+int main()
+{
+    char buffer[256];
+
     if(sprintf(buffer, "%zd", (size_t)123) < 0)
        	return 1;
 
diff --git a/configure.in b/configure.in
index 4964954..799499b 100644
--- a/configure.in
+++ b/configure.in
@@ -3459,9 +3459,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;
@@ -3471,6 +3471,10 @@
 typedef int Py_ssize_t;
 #endif
 
+int main()
+{
+    char buffer[256];
+
     if(sprintf(buffer, "%zd", (size_t)123) < 0)
        	return 1;