From b363adda0512e7c9781f6e7be1b83dd870c36f6e Mon Sep 17 00:00:00 2001 From: Gerald Pfeifer Date: Tue, 10 Aug 2021 22:36:27 +0200 Subject: [PATCH] ntdll: Only use sysinfo function when present. On some systems may be present while the sysinfo function may not, or at least not as part of standard libraries, so check whether the function is actually available before using it. This fixes builds on FreeBSD with the devel/libsysinfo present. Signed-off-by: Gerald Pfeifer Signed-off-by: Alexandre Julliard (cherry picked from commit 59da79021a6e441e3b21b933c744aba922208ec1) Signed-off-by: Michael Stefaniuc --- configure | 1 + configure.ac | 1 + dlls/ntdll/unix/virtual.c | 3 ++- include/config.h.in | 3 +++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 0ac783d7479..780e32d9ca8 100755 --- a/configure +++ b/configure @@ -17760,6 +17760,7 @@ for ac_func in \ setprogname \ sigprocmask \ symlink \ + sysinfo \ tcdrain \ thr_kill2 diff --git a/configure.ac b/configure.ac index ed5116b17c9..9cf059e1edc 100644 --- a/configure.ac +++ b/configure.ac @@ -2160,6 +2160,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 e2956c1ac97..e8ccf54791d 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c @@ -2451,7 +2451,8 @@ ULONG_PTR get_system_affinity_mask(void) */ void virtual_get_system_info( SYSTEM_BASIC_INFORMATION *info ) { -#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 c131f8f22bc..2dcf318e4ec 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -891,6 +891,9 @@ /* Define to 1 if you have the 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 header file. */ #undef HAVE_SYSTEMCONFIGURATION_SCDYNAMICSTORECOPYDHCPINFO_H