From d594df9803a6c8954c0b6e1173b6429c64a0a3bc Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Thu, 24 Dec 2020 20:45:28 +0000 Subject: [PATCH] Fix build failure on Intel Macs. sysctlbyname() turns out to be a new library function, so we can't assume it's present just because defined __APPLE__. Add an autoconf check to see if it's really there, before trying to call it. --- configure.ac | 2 +- unix/uxutils.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 7ae3ab43..72874f32 100644 --- a/configure.ac +++ b/configure.ac @@ -169,7 +169,7 @@ AC_CHECK_LIB(X11, XOpenDisplay, [GTK_LIBS="-lX11 $GTK_LIBS" AC_DEFINE([HAVE_LIBX11],[],[Define if libX11.a is available])]) -AC_CHECK_FUNCS([getaddrinfo posix_openpt ptsname setresuid strsignal updwtmpx fstatat dirfd futimes setpwent endpwent getauxval elf_aux_info]) +AC_CHECK_FUNCS([getaddrinfo posix_openpt ptsname setresuid strsignal updwtmpx fstatat dirfd futimes setpwent endpwent getauxval elf_aux_info sysctlbyname]) AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include ]]) AC_CHECK_HEADERS([sys/auxv.h asm/hwcap.h sys/sysctl.h sys/types.h glob.h]) AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME],[],[Define if clock_gettime() is available])]) diff --git a/unix/uxutils.h b/unix/uxutils.h index 05e0b9e2..178b3751 100644 --- a/unix/uxutils.h +++ b/unix/uxutils.h @@ -49,10 +49,14 @@ static inline u_long getauxval(int which) { return 0; } #if defined __APPLE__ static inline bool test_sysctl_flag(const char *flagname) { +#ifdef HAVE_SYSCTLBYNAME int value; size_t size = sizeof(value); return (sysctlbyname(flagname, &value, &size, NULL, 0) == 0 && size == sizeof(value) && value != 0); +#else /* HAVE_SYSCTLBYNAME */ + return false; +#endif /* HAVE_SYSCTLBYNAME */ } #endif /* defined __APPLE__ */