From 11bcdf780e164659b89a66e24edc27e89da7619a Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Fri, 16 Nov 2007 00:45:44 +0100 Subject: [PATCH] Fix the build on RHEL5, when libcap-devel is installed. The /usr/include/sys/capability.h defines _LINUX_TYPES_H which prevents /usr/include/linux/types.h from being parsed (when included afterwards). Thus certain types are undefined that are for instance needed in /usr/include/linux/dqblk_xfs.h. This breaks the build of lib/sysquotas_xfs.c. This commit adds a configure check and a workaround for this. Michael --- source/configure.in | 12 ++++++++++++ source/lib/replace/system/capability.h | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/source/configure.in b/source/configure.in index be2b2628d9b..d37e3925aa9 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3242,6 +3242,18 @@ AC_TRY_COMPILE([ if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files]) fi + +AC_CACHE_CHECK([for broken RHEL5 sys/capability.h],samba_cv_BROKEN_RHEL5_SYS_CAP_HEADER,[ +AC_TRY_COMPILE([ +#ifdef HAVE_SYS_CAPABILITY_H +#include +#endif +#include +],[__s8 i;], + samba_cv_BROKEN_RHEL5_SYS_CAP_HEADER=no,samba_cv_BROKEN_RHEL5_SYS_CAP_HEADER=yes)]) +if test x"$samba_cv_BROKEN_RHEL5_SYS_CAP_HEADER" = x"yes"; then + AC_DEFINE(BROKEN_RHEL5_SYS_CAP_HEADER,1,[Broken RHEL5 sys/capability.h]) +fi ;; esac diff --git a/source/lib/replace/system/capability.h b/source/lib/replace/system/capability.h index 4fe7c8d51be..b3142371f92 100644 --- a/source/lib/replace/system/capability.h +++ b/source/lib/replace/system/capability.h @@ -32,8 +32,17 @@ #define BROKEN_REDHAT_7_STATFS_WORKAROUND #endif +#if defined(BROKEN_RHEL5_SYS_CAP_HEADER) && !defined(_LINUX_TYPES_H) +#define BROKEN_RHEL5_SYS_CAP_HEADER_WORKAROUND +#endif + #include +#ifdef BROKEN_RHEL5_SYS_CAP_HEADER_WORKAROUND +#undef _LINUX_TYPES_H +#undef BROKEN_RHEL5_SYS_CAP_HEADER_WORKAROUND +#endif + #ifdef BROKEN_REDHAT_7_STATFS_WORKAROUND #undef _I386_STATFS_H #undef BROKEN_REDHAT_7_STATFS_WORKAROUND -- 2.34.1