changeset 5822:251acc686ca4 v7.4.254

updated for version 7.4.254 Problem: Smack support detection is incomplete. Solution: Check for attr/xattr.h and specific macro.
author Bram Moolenaar <bram@vim.org>
date Thu, 10 Apr 2014 11:09:17 +0200
parents dd44a527c2bd
children c876b0d76b7c
files src/auto/configure src/configure.in src/version.c
diffstat 3 files changed, 61 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -4611,13 +4611,41 @@ fi
 
 
 else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 fi
 if test "$enable_smack" = "yes"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for llistxattr in -lattr" >&5
-$as_echo_n "checking for llistxattr in -lattr... " >&6; }
-if ${ac_cv_lib_attr_llistxattr+:} false; then :
+  ac_fn_c_check_header_mongrel "$LINENO" "attr/xattr.h" "ac_cv_header_attr_xattr_h" "$ac_includes_default"
+if test "x$ac_cv_header_attr_xattr_h" = xyes; then :
+  true
+else
+  enable_smack="no"
+fi
+
+
+fi
+if test "$enable_smack" = "yes"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XATTR_NAME_SMACKEXEC in linux/xattr.h" >&5
+$as_echo_n "checking for XATTR_NAME_SMACKEXEC in linux/xattr.h... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <linux/xattr.h>
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "XATTR_NAME_SMACKEXEC" >/dev/null 2>&1; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }; enable_smack = "no"
+fi
+rm -f conftest*
+
+fi
+if test "$enable_smack" = "yes"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setxattr in -lattr" >&5
+$as_echo_n "checking for setxattr in -lattr... " >&6; }
+if ${ac_cv_lib_attr_setxattr+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -4631,27 +4659,27 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
 #ifdef __cplusplus
 extern "C"
 #endif
-char llistxattr ();
-int
-main ()
-{
-return llistxattr ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_attr_llistxattr=yes
-else
-  ac_cv_lib_attr_llistxattr=no
+char setxattr ();
+int
+main ()
+{
+return setxattr ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_attr_setxattr=yes
+else
+  ac_cv_lib_attr_setxattr=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_attr_llistxattr" >&5
-$as_echo "$ac_cv_lib_attr_llistxattr" >&6; }
-if test "x$ac_cv_lib_attr_llistxattr" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_attr_setxattr" >&5
+$as_echo "$ac_cv_lib_attr_setxattr" >&6; }
+if test "x$ac_cv_lib_attr_setxattr" = xyes; then :
   LIBS="$LIBS -lattr"
 	   found_smack="yes"
 	   $as_echo "#define HAVE_SMACK 1" >>confdefs.h
--- a/src/configure.in
+++ b/src/configure.in
@@ -396,10 +396,19 @@ if test "$enable_smack" = "yes"; then
   AC_MSG_RESULT(no)
   AC_CHECK_HEADER([linux/xattr.h], true, enable_smack="no")
 else
-   AC_MSG_RESULT(yes)
+  AC_MSG_RESULT(yes)
+fi
+if test "$enable_smack" = "yes"; then
+  AC_CHECK_HEADER([attr/xattr.h], true, enable_smack="no")
 fi
 if test "$enable_smack" = "yes"; then
-  AC_CHECK_LIB(attr, llistxattr,
+  AC_MSG_CHECKING(for XATTR_NAME_SMACKEXEC in linux/xattr.h)
+  AC_EGREP_CPP(XATTR_NAME_SMACKEXEC, [#include <linux/xattr.h>],
+	       AC_MSG_RESULT(yes),
+	       AC_MSG_RESULT(no); enable_smack = "no")
+fi
+if test "$enable_smack" = "yes"; then
+  AC_CHECK_LIB(attr, setxattr,
 	  [LIBS="$LIBS -lattr"
 	   found_smack="yes"
 	   AC_DEFINE(HAVE_SMACK)])
--- a/src/version.c
+++ b/src/version.c
@@ -735,6 +735,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    254,
+/**/
     253,
 /**/
     252,