diff options
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | config.mak.uname | 5 | ||||
-rw-r--r-- | configure.ac | 23 | ||||
-rw-r--r-- | git-compat-util.h | 3 |
4 files changed, 37 insertions, 0 deletions
@@ -348,6 +348,8 @@ all:: # # Define NO_HMAC_CTX_CLEANUP if your OpenSSL is version 0.9.6b or earlier to # cleanup the HMAC context with the older HMAC_cleanup function. +# +# Define HAVE_BSD_SYSCTL if your platform has a BSD-compatible sysctl function. GIT-VERSION-FILE: FORCE @$(SHELL_PATH) ./GIT-VERSION-GEN @@ -1414,6 +1416,10 @@ ifdef HAVE_CLOCK_MONOTONIC BASIC_CFLAGS += -DHAVE_CLOCK_MONOTONIC endif +ifdef HAVE_BSD_SYSCTL + BASIC_CFLAGS += -DHAVE_BSD_SYSCTL +endif + ifeq ($(TCLTK_PATH),) NO_TCLTK = NoThanks endif diff --git a/config.mak.uname b/config.mak.uname index b64b63c34c..f4e77cb9e5 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -107,6 +107,7 @@ ifeq ($(uname_S),Darwin) COMPAT_OBJS += compat/precompose_utf8.o BASIC_CFLAGS += -DPRECOMPOSE_UNICODE BASIC_CFLAGS += -DPROTECT_HFS_DEFAULT=1 + HAVE_BSD_SYSCTL = YesPlease endif ifeq ($(uname_S),SunOS) NEEDS_SOCKET = YesPlease @@ -199,6 +200,7 @@ ifeq ($(uname_S),FreeBSD) PYTHON_PATH = /usr/local/bin/python HAVE_PATHS_H = YesPlease GMTIME_UNRELIABLE_ERRORS = UnfortunatelyYes + HAVE_BSD_SYSCTL = YesPlease endif ifeq ($(uname_S),OpenBSD) NO_STRCASESTR = YesPlease @@ -208,6 +210,7 @@ ifeq ($(uname_S),OpenBSD) BASIC_CFLAGS += -I/usr/local/include BASIC_LDFLAGS += -L/usr/local/lib HAVE_PATHS_H = YesPlease + HAVE_BSD_SYSCTL = YesPlease endif ifeq ($(uname_S),MirBSD) NO_STRCASESTR = YesPlease @@ -215,6 +218,7 @@ ifeq ($(uname_S),MirBSD) USE_ST_TIMESPEC = YesPlease NEEDS_LIBICONV = YesPlease HAVE_PATHS_H = YesPlease + HAVE_BSD_SYSCTL = YesPlease endif ifeq ($(uname_S),NetBSD) ifeq ($(shell expr "$(uname_R)" : '[01]\.'),2) @@ -225,6 +229,7 @@ ifeq ($(uname_S),NetBSD) USE_ST_TIMESPEC = YesPlease NO_MKSTEMPS = YesPlease HAVE_PATHS_H = YesPlease + HAVE_BSD_SYSCTL = YesPlease endif ifeq ($(uname_S),AIX) DEFAULT_PAGER = more diff --git a/configure.ac b/configure.ac index 55e5a9b3e6..bbdde85c3d 100644 --- a/configure.ac +++ b/configure.ac @@ -1046,6 +1046,29 @@ GIT_CONF_SUBST([NO_INITGROUPS]) # # Define NO_ICONV if your libc does not properly support iconv. +AC_DEFUN([BSD_SYSCTL_SRC], [ +AC_LANG_PROGRAM([[ +#include <stddef.h> +#include <sys/types.h> +#include <sys/sysctl.h> +]],[[ +int val, mib[2]; +size_t len; +mib[0] = CTL_HW; +mib[1] = 1; +len = sizeof(val); +return sysctl(mib, 2, &val, &len, NULL, 0) ? 1 : 0; +]])]) + +# +# Define HAVE_BSD_SYSCTL=YesPlease if a BSD-compatible sysctl function is available. +AC_MSG_CHECKING([for BSD sysctl]) +AC_COMPILE_IFELSE([BSD_SYSCTL_SRC], + [AC_MSG_RESULT([yes]) + HAVE_BSD_SYSCTL=YesPlease], + [AC_MSG_RESULT([no]) + HAVE_BSD_SYSCTL=]) +GIT_CONF_SUBST([HAVE_BSD_SYSCTL]) ## Other checks. # Define USE_PIC if you need the main git objects to be built with -fPIC diff --git a/git-compat-util.h b/git-compat-util.h index eb9b0ff328..4ead8c8fdd 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -127,6 +127,9 @@ #else #include <poll.h> #endif +#ifdef HAVE_BSD_SYSCTL +#include <sys/sysctl.h> +#endif #if defined(__MINGW32__) /* pull in Windows compatibility stuff */ |