From 3f00a920faec9ddbc82be77cff5738943afc6bf7 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 26 Sep 2013 15:26:43 +1000 Subject: [PATCH] 3658. [port] linux: Address platform specific compilation issue when libcap-devel is installed. [RT #34838] (cherry picked from commit 7433a204d32673e9f6747172f202272cc5bfe27c) (cherry picked from commit 9b7d05c900174f958b282429f0c4a112a08b82e2) --- CHANGES | 3 +++ bin/named/unix/os.c | 6 +++--- configure | 21 ++++++++++++++++----- configure.in | 3 ++- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/CHANGES b/CHANGES index 69c68034580..5deb7eb7bf3 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,9 @@ on some platforms. This could cause INSIST failures when serving NSEC3 signed zones. [RT #35120] +3658. [port] linux: Address platform specific compilation issue + when libcap-devel is installed. [RT #34838] + --- 9.9.4-P1 released --- 3656. [bug] Treat an all zero netmask as invalid when generating diff --git a/bin/named/unix/os.c b/bin/named/unix/os.c index 1a0d4db7859..d6c82a764ad 100644 --- a/bin/named/unix/os.c +++ b/bin/named/unix/os.c @@ -117,12 +117,12 @@ static int dfd[2] = { -1, -1 }; static isc_boolean_t non_root = ISC_FALSE; static isc_boolean_t non_root_caps = ISC_FALSE; -#ifdef HAVE_LINUX_TYPES_H -#include -#endif #ifdef HAVE_SYS_CAPABILITY_H #include #else +#ifdef HAVE_LINUX_TYPES_H +#include +#endif /*% * We define _LINUX_FS_H to prevent it from being included. We don't need * anything from it, and the files it includes cause warnings with 2.2 diff --git a/configure b/configure index 2a53adfe63b..a54c2b4a93e 100755 --- a/configure +++ b/configure @@ -17764,17 +17764,28 @@ fi done - for ac_header in linux/capability.h sys/capability.h + for ac_header in sys/capability.h do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_LINUX_TYPES_H + ac_fn_c_check_header_mongrel "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_capability_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_CAPABILITY_H 1 +_ACEOF + +fi + +done + + for ac_header in linux/capability.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/capability.h" "ac_cv_header_linux_capability_h" "#ifdef HAVE_LINUX_TYPES_H #include #endif " -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : +if test "x$ac_cv_header_linux_capability_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_LINUX_CAPABILITY_H 1 _ACEOF fi diff --git a/configure.in b/configure.in index 6f4618ca18c..0750f6f5f24 100644 --- a/configure.in +++ b/configure.in @@ -2549,7 +2549,8 @@ AC_ARG_ENABLE(linux-caps, case "$enable_linux_caps" in yes|'') AC_CHECK_HEADERS(linux/types.h) - AC_CHECK_HEADERS([linux/capability.h sys/capability.h], [], [], + AC_CHECK_HEADERS([sys/capability.h]) + AC_CHECK_HEADERS([linux/capability.h], [], [], [#ifdef HAVE_LINUX_TYPES_H #include #endif -- 2.47.3