diff --git a/configure b/configure
index 1be0aa9d2174187b751fb34cf0f9cdbbb19c86da..e8c1cb9e3a8533d716fb97170ba034a0380044f5 100755
--- a/configure
+++ b/configure
@@ -18068,6 +18068,7 @@ for ac_func in \
 	setprogname \
 	sigprocmask \
 	symlink \
+	sysinfo \
 	tcdrain \
 	thr_kill2
 
diff --git a/configure.ac b/configure.ac
index 69e27147088357827b2e7a0032c6ed5385a14c82..065b3f231bfa8557e747b1cd8b9d30d14bed621e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2205,6 +2205,7 @@ AC_CHECK_FUNCS(\
 	setprogname \
 	sigprocmask \
 	symlink \
+	sysinfo \
 	tcdrain \
 	thr_kill2
 )
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index a252e25fbc61223d66f5c9cee6b80dce1104816c..2cca90ac952bbabd211b1bb55f4f6cded6cba354 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -2737,7 +2737,8 @@ ULONG_PTR get_system_affinity_mask(void)
  */
 void virtual_get_system_info( SYSTEM_BASIC_INFORMATION *info, BOOL wow64 )
 {
-#if defined(HAVE_STRUCT_SYSINFO_TOTALRAM) && defined(HAVE_STRUCT_SYSINFO_MEM_UNIT)
+#if defined(HAVE_SYSINFO) \
+    && defined(HAVE_STRUCT_SYSINFO_TOTALRAM) && defined(HAVE_STRUCT_SYSINFO_MEM_UNIT)
     struct sysinfo sinfo;
 
     if (!sysinfo(&sinfo))
diff --git a/include/config.h.in b/include/config.h.in
index ad77028147110eaa11a0f7cd1f54650bfe48b50d..24f7b64ffd36ecb04a1f0f2bba9e13079da92cd5 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -744,6 +744,9 @@
 /* Define to 1 if you have the <syscall.h> header file. */
 #undef HAVE_SYSCALL_H
 
+/* Define to 1 if you have the `sysinfo' function. */
+#undef HAVE_SYSINFO
+
 /* Define to 1 if you have the
    <SystemConfiguration/SCDynamicStoreCopyDHCPInfo.h> header file. */
 #undef HAVE_SYSTEMCONFIGURATION_SCDYNAMICSTORECOPYDHCPINFO_H