From b1e4dce671f0ccd684a76706ea8272f216de4e40 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Wed, 10 Nov 2010 18:26:21 +0100 Subject: curl-functions: provide xattr function tests that also check number of arguments --- m4/curl-functions.m4 | 1086 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 989 insertions(+), 97 deletions(-) (limited to 'm4') diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4 index 7f7cb8610..6067abf96 100644 --- a/m4/curl-functions.m4 +++ b/m4/curl-functions.m4 @@ -1250,6 +1250,250 @@ AC_DEFUN([CURL_CHECK_FUNC_FDOPEN], [ ]) +dnl CURL_CHECK_FUNC_FGETXATTR +dnl ------------------------------------------------- +dnl Verify if fgetxattr is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable curl_disallow_fgetxattr, then +dnl HAVE_FGETXATTR will be defined. + +AC_DEFUN([CURL_CHECK_FUNC_FGETXATTR], [ + AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl + # + tst_links_fgetxattr="unknown" + tst_proto_fgetxattr="unknown" + tst_compi_fgetxattr="unknown" + tst_allow_fgetxattr="unknown" + tst_nargs_fgetxattr="unknown" + # + AC_MSG_CHECKING([if fgetxattr can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([fgetxattr]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_fgetxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_fgetxattr="no" + ]) + # + if test "$tst_links_fgetxattr" = "yes"; then + AC_MSG_CHECKING([if fgetxattr is prototyped]) + AC_EGREP_CPP([fgetxattr],[ + $curl_includes_sys_xattr + ],[ + AC_MSG_RESULT([yes]) + tst_proto_fgetxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_fgetxattr="no" + ]) + fi + # + if test "$tst_proto_fgetxattr" = "yes"; then + if test "$tst_nargs_fgetxattr" = "unknown"; then + AC_MSG_CHECKING([if fgetxattr takes 4 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != fgetxattr(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_fgetxattr="yes" + tst_nargs_fgetxattr="4" + ],[ + AC_MSG_RESULT([no]) + tst_compi_fgetxattr="no" + ]) + fi + if test "$tst_nargs_fgetxattr" = "unknown"; then + AC_MSG_CHECKING([if fgetxattr takes 6 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != fgetxattr(0, 0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_fgetxattr="yes" + tst_nargs_fgetxattr="6" + ],[ + AC_MSG_RESULT([no]) + tst_compi_fgetxattr="no" + ]) + fi + AC_MSG_CHECKING([if fgetxattr is compilable]) + if test "$tst_compi_fgetxattr" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + if test "$tst_compi_fgetxattr" = "yes"; then + AC_MSG_CHECKING([if fgetxattr usage allowed]) + if test "x$curl_disallow_fgetxattr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_fgetxattr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_fgetxattr="no" + fi + fi + # + AC_MSG_CHECKING([if fgetxattr might be used]) + if test "$tst_links_fgetxattr" = "yes" && + test "$tst_proto_fgetxattr" = "yes" && + test "$tst_compi_fgetxattr" = "yes" && + test "$tst_allow_fgetxattr" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_FGETXATTR, 1, + [Define to 1 if you have the fgetxattr function.]) + dnl AC_DEFINE_UNQUOTED(FGETXATTR_ARGS, $tst_nargs_fgetxattr, + dnl [Specifies the number of arguments to fgetxattr]) + # + if test "$tst_nargs_fgetxattr" -eq "4"; then + AC_DEFINE(HAVE_FGETXATTR_4, 1, [fgetxattr() takes 4 args]) + elif test "$tst_nargs_fgetxattr" -eq "6"; then + AC_DEFINE(HAVE_FGETXATTR_6, 1, [fgetxattr() takes 6 args]) + fi + # + ac_cv_func_fgetxattr="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_fgetxattr="no" + fi +]) + + +dnl CURL_CHECK_FUNC_FLISTXATTR +dnl ------------------------------------------------- +dnl Verify if flistxattr is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable curl_disallow_flistxattr, then +dnl HAVE_FLISTXATTR will be defined. + +AC_DEFUN([CURL_CHECK_FUNC_FLISTXATTR], [ + AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl + # + tst_links_flistxattr="unknown" + tst_proto_flistxattr="unknown" + tst_compi_flistxattr="unknown" + tst_allow_flistxattr="unknown" + tst_nargs_flistxattr="unknown" + # + AC_MSG_CHECKING([if flistxattr can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([flistxattr]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_flistxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_flistxattr="no" + ]) + # + if test "$tst_links_flistxattr" = "yes"; then + AC_MSG_CHECKING([if flistxattr is prototyped]) + AC_EGREP_CPP([flistxattr],[ + $curl_includes_sys_xattr + ],[ + AC_MSG_RESULT([yes]) + tst_proto_flistxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_flistxattr="no" + ]) + fi + # + if test "$tst_proto_flistxattr" = "yes"; then + if test "$tst_nargs_flistxattr" = "unknown"; then + AC_MSG_CHECKING([if flistxattr takes 3 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != flistxattr(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_flistxattr="yes" + tst_nargs_flistxattr="3" + ],[ + AC_MSG_RESULT([no]) + tst_compi_flistxattr="no" + ]) + fi + if test "$tst_nargs_flistxattr" = "unknown"; then + AC_MSG_CHECKING([if flistxattr takes 4 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != flistxattr(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_flistxattr="yes" + tst_nargs_flistxattr="4" + ],[ + AC_MSG_RESULT([no]) + tst_compi_flistxattr="no" + ]) + fi + AC_MSG_CHECKING([if flistxattr is compilable]) + if test "$tst_compi_flistxattr" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + if test "$tst_compi_flistxattr" = "yes"; then + AC_MSG_CHECKING([if flistxattr usage allowed]) + if test "x$curl_disallow_flistxattr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_flistxattr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_flistxattr="no" + fi + fi + # + AC_MSG_CHECKING([if flistxattr might be used]) + if test "$tst_links_flistxattr" = "yes" && + test "$tst_proto_flistxattr" = "yes" && + test "$tst_compi_flistxattr" = "yes" && + test "$tst_allow_flistxattr" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_FLISTXATTR, 1, + [Define to 1 if you have the flistxattr function.]) + dnl AC_DEFINE_UNQUOTED(FLISTXATTR_ARGS, $tst_nargs_flistxattr, + dnl [Specifies the number of arguments to flistxattr]) + # + if test "$tst_nargs_flistxattr" -eq "3"; then + AC_DEFINE(HAVE_FLISTXATTR_3, 1, [flistxattr() takes 3 args]) + elif test "$tst_nargs_flistxattr" -eq "4"; then + AC_DEFINE(HAVE_FLISTXATTR_4, 1, [flistxattr() takes 4 args]) + fi + # + ac_cv_func_flistxattr="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_flistxattr="no" + fi +]) + + dnl CURL_CHECK_FUNC_FREEADDRINFO dnl ------------------------------------------------- dnl Verify if freeaddrinfo is available, prototyped, @@ -1430,6 +1674,250 @@ AC_DEFUN([CURL_CHECK_FUNC_FREEIFADDRS], [ ]) +dnl CURL_CHECK_FUNC_FREMOVEXATTR +dnl ------------------------------------------------- +dnl Verify if fremovexattr is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable curl_disallow_fremovexattr, then +dnl HAVE_FREMOVEXATTR will be defined. + +AC_DEFUN([CURL_CHECK_FUNC_FREMOVEXATTR], [ + AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl + # + tst_links_fremovexattr="unknown" + tst_proto_fremovexattr="unknown" + tst_compi_fremovexattr="unknown" + tst_allow_fremovexattr="unknown" + tst_nargs_fremovexattr="unknown" + # + AC_MSG_CHECKING([if fremovexattr can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([fremovexattr]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_fremovexattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_fremovexattr="no" + ]) + # + if test "$tst_links_fremovexattr" = "yes"; then + AC_MSG_CHECKING([if fremovexattr is prototyped]) + AC_EGREP_CPP([fremovexattr],[ + $curl_includes_sys_xattr + ],[ + AC_MSG_RESULT([yes]) + tst_proto_fremovexattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_fremovexattr="no" + ]) + fi + # + if test "$tst_proto_fremovexattr" = "yes"; then + if test "$tst_nargs_fremovexattr" = "unknown"; then + AC_MSG_CHECKING([if fremovexattr takes 2 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != fremovexattr(0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_fremovexattr="yes" + tst_nargs_fremovexattr="2" + ],[ + AC_MSG_RESULT([no]) + tst_compi_fremovexattr="no" + ]) + fi + if test "$tst_nargs_fremovexattr" = "unknown"; then + AC_MSG_CHECKING([if fremovexattr takes 3 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != fremovexattr(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_fremovexattr="yes" + tst_nargs_fremovexattr="3" + ],[ + AC_MSG_RESULT([no]) + tst_compi_fremovexattr="no" + ]) + fi + AC_MSG_CHECKING([if fremovexattr is compilable]) + if test "$tst_compi_fremovexattr" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + if test "$tst_compi_fremovexattr" = "yes"; then + AC_MSG_CHECKING([if fremovexattr usage allowed]) + if test "x$curl_disallow_fremovexattr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_fremovexattr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_fremovexattr="no" + fi + fi + # + AC_MSG_CHECKING([if fremovexattr might be used]) + if test "$tst_links_fremovexattr" = "yes" && + test "$tst_proto_fremovexattr" = "yes" && + test "$tst_compi_fremovexattr" = "yes" && + test "$tst_allow_fremovexattr" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_FREMOVEXATTR, 1, + [Define to 1 if you have the fremovexattr function.]) + dnl AC_DEFINE_UNQUOTED(FREMOVEXATTR_ARGS, $tst_nargs_fremovexattr, + dnl [Specifies the number of arguments to fremovexattr]) + # + if test "$tst_nargs_fremovexattr" -eq "2"; then + AC_DEFINE(HAVE_FREMOVEXATTR_2, 1, [fremovexattr() takes 2 args]) + elif test "$tst_nargs_fremovexattr" -eq "3"; then + AC_DEFINE(HAVE_FREMOVEXATTR_3, 1, [fremovexattr() takes 3 args]) + fi + # + ac_cv_func_fremovexattr="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_fremovexattr="no" + fi +]) + + +dnl CURL_CHECK_FUNC_FSETXATTR +dnl ------------------------------------------------- +dnl Verify if fsetxattr is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable curl_disallow_fsetxattr, then +dnl HAVE_FSETXATTR will be defined. + +AC_DEFUN([CURL_CHECK_FUNC_FSETXATTR], [ + AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl + # + tst_links_fsetxattr="unknown" + tst_proto_fsetxattr="unknown" + tst_compi_fsetxattr="unknown" + tst_allow_fsetxattr="unknown" + tst_nargs_fsetxattr="unknown" + # + AC_MSG_CHECKING([if fsetxattr can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([fsetxattr]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_fsetxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_fsetxattr="no" + ]) + # + if test "$tst_links_fsetxattr" = "yes"; then + AC_MSG_CHECKING([if fsetxattr is prototyped]) + AC_EGREP_CPP([fsetxattr],[ + $curl_includes_sys_xattr + ],[ + AC_MSG_RESULT([yes]) + tst_proto_fsetxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_fsetxattr="no" + ]) + fi + # + if test "$tst_proto_fsetxattr" = "yes"; then + if test "$tst_nargs_fsetxattr" = "unknown"; then + AC_MSG_CHECKING([if fsetxattr takes 5 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != fsetxattr(0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_fsetxattr="yes" + tst_nargs_fsetxattr="5" + ],[ + AC_MSG_RESULT([no]) + tst_compi_fsetxattr="no" + ]) + fi + if test "$tst_nargs_fsetxattr" = "unknown"; then + AC_MSG_CHECKING([if fsetxattr takes 6 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != fsetxattr(0, 0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_fsetxattr="yes" + tst_nargs_fsetxattr="6" + ],[ + AC_MSG_RESULT([no]) + tst_compi_fsetxattr="no" + ]) + fi + AC_MSG_CHECKING([if fsetxattr is compilable]) + if test "$tst_compi_fsetxattr" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + if test "$tst_compi_fsetxattr" = "yes"; then + AC_MSG_CHECKING([if fsetxattr usage allowed]) + if test "x$curl_disallow_fsetxattr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_fsetxattr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_fsetxattr="no" + fi + fi + # + AC_MSG_CHECKING([if fsetxattr might be used]) + if test "$tst_links_fsetxattr" = "yes" && + test "$tst_proto_fsetxattr" = "yes" && + test "$tst_compi_fsetxattr" = "yes" && + test "$tst_allow_fsetxattr" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_FSETXATTR, 1, + [Define to 1 if you have the fsetxattr function.]) + dnl AC_DEFINE_UNQUOTED(FSETXATTR_ARGS, $tst_nargs_fsetxattr, + dnl [Specifies the number of arguments to fsetxattr]) + # + if test "$tst_nargs_fsetxattr" -eq "5"; then + AC_DEFINE(HAVE_FSETXATTR_5, 1, [fsetxattr() takes 5 args]) + elif test "$tst_nargs_fsetxattr" -eq "6"; then + AC_DEFINE(HAVE_FSETXATTR_6, 1, [fsetxattr() takes 6 args]) + fi + # + ac_cv_func_fsetxattr="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_fsetxattr="no" + fi +]) + + dnl CURL_CHECK_FUNC_FTRUNCATE dnl ------------------------------------------------- dnl Verify if ftruncate is available, prototyped, and @@ -2555,6 +3043,128 @@ AC_DEFUN([CURL_CHECK_FUNC_GETSERVBYPORT_R], [ ]) +dnl CURL_CHECK_FUNC_GETXATTR +dnl ------------------------------------------------- +dnl Verify if getxattr is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable curl_disallow_getxattr, then +dnl HAVE_GETXATTR will be defined. + +AC_DEFUN([CURL_CHECK_FUNC_GETXATTR], [ + AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl + # + tst_links_getxattr="unknown" + tst_proto_getxattr="unknown" + tst_compi_getxattr="unknown" + tst_allow_getxattr="unknown" + tst_nargs_getxattr="unknown" + # + AC_MSG_CHECKING([if getxattr can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([getxattr]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_getxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_getxattr="no" + ]) + # + if test "$tst_links_getxattr" = "yes"; then + AC_MSG_CHECKING([if getxattr is prototyped]) + AC_EGREP_CPP([getxattr],[ + $curl_includes_sys_xattr + ],[ + AC_MSG_RESULT([yes]) + tst_proto_getxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_getxattr="no" + ]) + fi + # + if test "$tst_proto_getxattr" = "yes"; then + if test "$tst_nargs_getxattr" = "unknown"; then + AC_MSG_CHECKING([if getxattr takes 4 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != getxattr(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getxattr="yes" + tst_nargs_getxattr="4" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getxattr="no" + ]) + fi + if test "$tst_nargs_getxattr" = "unknown"; then + AC_MSG_CHECKING([if getxattr takes 6 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != getxattr(0, 0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getxattr="yes" + tst_nargs_getxattr="6" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getxattr="no" + ]) + fi + AC_MSG_CHECKING([if getxattr is compilable]) + if test "$tst_compi_getxattr" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + if test "$tst_compi_getxattr" = "yes"; then + AC_MSG_CHECKING([if getxattr usage allowed]) + if test "x$curl_disallow_getxattr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_getxattr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_getxattr="no" + fi + fi + # + AC_MSG_CHECKING([if getxattr might be used]) + if test "$tst_links_getxattr" = "yes" && + test "$tst_proto_getxattr" = "yes" && + test "$tst_compi_getxattr" = "yes" && + test "$tst_allow_getxattr" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_GETXATTR, 1, + [Define to 1 if you have the getxattr function.]) + dnl AC_DEFINE_UNQUOTED(GETXATTR_ARGS, $tst_nargs_getxattr, + dnl [Specifies the number of arguments to getxattr]) + # + if test "$tst_nargs_getxattr" -eq "4"; then + AC_DEFINE(HAVE_GETXATTR_4, 1, [getxattr() takes 4 args]) + elif test "$tst_nargs_getxattr" -eq "6"; then + AC_DEFINE(HAVE_GETXATTR_6, 1, [getxattr() takes 6 args]) + fi + # + ac_cv_func_getxattr="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_getxattr="no" + fi +]) + + dnl CURL_CHECK_FUNC_GMTIME_R dnl ------------------------------------------------- dnl Verify if gmtime_r is available, prototyped, can @@ -3565,31 +4175,153 @@ AC_DEFUN([CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO], [ tst_compi_ioctlsocket_camel_fionbio="yes" ],[ AC_MSG_RESULT([no]) - tst_compi_ioctlsocket_camel_fionbio="no" + tst_compi_ioctlsocket_camel_fionbio="no" + ]) + fi + # + if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes"; then + AC_MSG_CHECKING([if IoctlSocket FIONBIO usage allowed]) + if test "x$curl_disallow_ioctlsocket_camel_fionbio" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_ioctlsocket_camel_fionbio="yes" + else + AC_MSG_RESULT([no]) + tst_allow_ioctlsocket_camel_fionbio="no" + fi + fi + # + AC_MSG_CHECKING([if IoctlSocket FIONBIO might be used]) + if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes" && + test "$tst_allow_ioctlsocket_camel_fionbio" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_CAMEL_FIONBIO, 1, + [Define to 1 if you have a working IoctlSocket camel case FIONBIO function.]) + ac_cv_func_ioctlsocket_camel_fionbio="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_ioctlsocket_camel_fionbio="no" + fi +]) + + +dnl CURL_CHECK_FUNC_LISTXATTR +dnl ------------------------------------------------- +dnl Verify if listxattr is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable curl_disallow_listxattr, then +dnl HAVE_LISTXATTR will be defined. + +AC_DEFUN([CURL_CHECK_FUNC_LISTXATTR], [ + AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl + # + tst_links_listxattr="unknown" + tst_proto_listxattr="unknown" + tst_compi_listxattr="unknown" + tst_allow_listxattr="unknown" + tst_nargs_listxattr="unknown" + # + AC_MSG_CHECKING([if listxattr can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([listxattr]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_listxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_listxattr="no" + ]) + # + if test "$tst_links_listxattr" = "yes"; then + AC_MSG_CHECKING([if listxattr is prototyped]) + AC_EGREP_CPP([listxattr],[ + $curl_includes_sys_xattr + ],[ + AC_MSG_RESULT([yes]) + tst_proto_listxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_listxattr="no" ]) fi # - if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes"; then - AC_MSG_CHECKING([if IoctlSocket FIONBIO usage allowed]) - if test "x$curl_disallow_ioctlsocket_camel_fionbio" != "xyes"; then + if test "$tst_proto_listxattr" = "yes"; then + if test "$tst_nargs_listxattr" = "unknown"; then + AC_MSG_CHECKING([if listxattr takes 3 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != listxattr(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_listxattr="yes" + tst_nargs_listxattr="3" + ],[ + AC_MSG_RESULT([no]) + tst_compi_listxattr="no" + ]) + fi + if test "$tst_nargs_listxattr" = "unknown"; then + AC_MSG_CHECKING([if listxattr takes 4 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != listxattr(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_listxattr="yes" + tst_nargs_listxattr="4" + ],[ + AC_MSG_RESULT([no]) + tst_compi_listxattr="no" + ]) + fi + AC_MSG_CHECKING([if listxattr is compilable]) + if test "$tst_compi_listxattr" = "yes"; then AC_MSG_RESULT([yes]) - tst_allow_ioctlsocket_camel_fionbio="yes" else AC_MSG_RESULT([no]) - tst_allow_ioctlsocket_camel_fionbio="no" fi fi # - AC_MSG_CHECKING([if IoctlSocket FIONBIO might be used]) - if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes" && - test "$tst_allow_ioctlsocket_camel_fionbio" = "yes"; then + if test "$tst_compi_listxattr" = "yes"; then + AC_MSG_CHECKING([if listxattr usage allowed]) + if test "x$curl_disallow_listxattr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_listxattr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_listxattr="no" + fi + fi + # + AC_MSG_CHECKING([if listxattr might be used]) + if test "$tst_links_listxattr" = "yes" && + test "$tst_proto_listxattr" = "yes" && + test "$tst_compi_listxattr" = "yes" && + test "$tst_allow_listxattr" = "yes"; then AC_MSG_RESULT([yes]) - AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_CAMEL_FIONBIO, 1, - [Define to 1 if you have a working IoctlSocket camel case FIONBIO function.]) - ac_cv_func_ioctlsocket_camel_fionbio="yes" + AC_DEFINE_UNQUOTED(HAVE_LISTXATTR, 1, + [Define to 1 if you have the listxattr function.]) + dnl AC_DEFINE_UNQUOTED(LISTXATTR_ARGS, $tst_nargs_listxattr, + dnl [Specifies the number of arguments to listxattr]) + # + if test "$tst_nargs_listxattr" -eq "3"; then + AC_DEFINE(HAVE_LISTXATTR_3, 1, [listxattr() takes 3 args]) + elif test "$tst_nargs_listxattr" -eq "4"; then + AC_DEFINE(HAVE_LISTXATTR_4, 1, [listxattr() takes 4 args]) + fi + # + ac_cv_func_listxattr="yes" else AC_MSG_RESULT([no]) - ac_cv_func_ioctlsocket_camel_fionbio="no" + ac_cv_func_listxattr="no" fi ]) @@ -3944,6 +4676,128 @@ AC_DEFUN([CURL_CHECK_FUNC_POLL], [ ]) +dnl CURL_CHECK_FUNC_REMOVEXATTR +dnl ------------------------------------------------- +dnl Verify if removexattr is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable curl_disallow_removexattr, then +dnl HAVE_REMOVEXATTR will be defined. + +AC_DEFUN([CURL_CHECK_FUNC_REMOVEXATTR], [ + AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl + # + tst_links_removexattr="unknown" + tst_proto_removexattr="unknown" + tst_compi_removexattr="unknown" + tst_allow_removexattr="unknown" + tst_nargs_removexattr="unknown" + # + AC_MSG_CHECKING([if removexattr can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([removexattr]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_removexattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_removexattr="no" + ]) + # + if test "$tst_links_removexattr" = "yes"; then + AC_MSG_CHECKING([if removexattr is prototyped]) + AC_EGREP_CPP([removexattr],[ + $curl_includes_sys_xattr + ],[ + AC_MSG_RESULT([yes]) + tst_proto_removexattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_removexattr="no" + ]) + fi + # + if test "$tst_proto_removexattr" = "yes"; then + if test "$tst_nargs_removexattr" = "unknown"; then + AC_MSG_CHECKING([if removexattr takes 2 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != removexattr(0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_removexattr="yes" + tst_nargs_removexattr="2" + ],[ + AC_MSG_RESULT([no]) + tst_compi_removexattr="no" + ]) + fi + if test "$tst_nargs_removexattr" = "unknown"; then + AC_MSG_CHECKING([if removexattr takes 3 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != removexattr(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_removexattr="yes" + tst_nargs_removexattr="3" + ],[ + AC_MSG_RESULT([no]) + tst_compi_removexattr="no" + ]) + fi + AC_MSG_CHECKING([if removexattr is compilable]) + if test "$tst_compi_removexattr" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + if test "$tst_compi_removexattr" = "yes"; then + AC_MSG_CHECKING([if removexattr usage allowed]) + if test "x$curl_disallow_removexattr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_removexattr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_removexattr="no" + fi + fi + # + AC_MSG_CHECKING([if removexattr might be used]) + if test "$tst_links_removexattr" = "yes" && + test "$tst_proto_removexattr" = "yes" && + test "$tst_compi_removexattr" = "yes" && + test "$tst_allow_removexattr" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_REMOVEXATTR, 1, + [Define to 1 if you have the removexattr function.]) + dnl AC_DEFINE_UNQUOTED(REMOVEXATTR_ARGS, $tst_nargs_removexattr, + dnl [Specifies the number of arguments to removexattr]) + # + if test "$tst_nargs_removexattr" -eq "2"; then + AC_DEFINE(HAVE_REMOVEXATTR_2, 1, [removexattr() takes 2 args]) + elif test "$tst_nargs_removexattr" -eq "3"; then + AC_DEFINE(HAVE_REMOVEXATTR_3, 1, [removexattr() takes 3 args]) + fi + # + ac_cv_func_removexattr="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_removexattr="no" + fi +]) + + dnl CURL_CHECK_FUNC_SETSOCKOPT dnl ------------------------------------------------- dnl Verify if setsockopt is available, prototyped, and @@ -4095,6 +4949,128 @@ AC_DEFUN([CURL_CHECK_FUNC_SETSOCKOPT_SO_NONBLOCK], [ ]) +dnl CURL_CHECK_FUNC_SETXATTR +dnl ------------------------------------------------- +dnl Verify if setxattr is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable curl_disallow_setxattr, then +dnl HAVE_SETXATTR will be defined. + +AC_DEFUN([CURL_CHECK_FUNC_SETXATTR], [ + AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl + # + tst_links_setxattr="unknown" + tst_proto_setxattr="unknown" + tst_compi_setxattr="unknown" + tst_allow_setxattr="unknown" + tst_nargs_setxattr="unknown" + # + AC_MSG_CHECKING([if setxattr can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([setxattr]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_setxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_setxattr="no" + ]) + # + if test "$tst_links_setxattr" = "yes"; then + AC_MSG_CHECKING([if setxattr is prototyped]) + AC_EGREP_CPP([setxattr],[ + $curl_includes_sys_xattr + ],[ + AC_MSG_RESULT([yes]) + tst_proto_setxattr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_setxattr="no" + ]) + fi + # + if test "$tst_proto_setxattr" = "yes"; then + if test "$tst_nargs_setxattr" = "unknown"; then + AC_MSG_CHECKING([if setxattr takes 5 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != setxattr(0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_setxattr="yes" + tst_nargs_setxattr="5" + ],[ + AC_MSG_RESULT([no]) + tst_compi_setxattr="no" + ]) + fi + if test "$tst_nargs_setxattr" = "unknown"; then + AC_MSG_CHECKING([if setxattr takes 6 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_sys_xattr + ]],[[ + if(0 != setxattr(0, 0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_setxattr="yes" + tst_nargs_setxattr="6" + ],[ + AC_MSG_RESULT([no]) + tst_compi_setxattr="no" + ]) + fi + AC_MSG_CHECKING([if setxattr is compilable]) + if test "$tst_compi_setxattr" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + if test "$tst_compi_setxattr" = "yes"; then + AC_MSG_CHECKING([if setxattr usage allowed]) + if test "x$curl_disallow_setxattr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_setxattr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_setxattr="no" + fi + fi + # + AC_MSG_CHECKING([if setxattr might be used]) + if test "$tst_links_setxattr" = "yes" && + test "$tst_proto_setxattr" = "yes" && + test "$tst_compi_setxattr" = "yes" && + test "$tst_allow_setxattr" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_SETXATTR, 1, + [Define to 1 if you have the setxattr function.]) + dnl AC_DEFINE_UNQUOTED(SETXATTR_ARGS, $tst_nargs_setxattr, + dnl [Specifies the number of arguments to setxattr]) + # + if test "$tst_nargs_setxattr" -eq "5"; then + AC_DEFINE(HAVE_SETXATTR_5, 1, [setxattr() takes 5 args]) + elif test "$tst_nargs_setxattr" -eq "6"; then + AC_DEFINE(HAVE_SETXATTR_6, 1, [setxattr() takes 6 args]) + fi + # + ac_cv_func_setxattr="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_setxattr="no" + fi +]) + + dnl CURL_CHECK_FUNC_SIGACTION dnl ------------------------------------------------- dnl Verify if sigaction is available, prototyped, and @@ -5923,87 +6899,3 @@ AC_DEFUN([CURL_CHECK_FUNC_WRITEV], [ ac_cv_func_writev="no" fi ]) - -dnl CURL_CHECK_FUNC_FSETXATTR -dnl ------------------------------------------------- -dnl Verify if fsetxattr is available, prototyped, and -dnl can be compiled. If all of these are true, and -dnl usage has not been previously disallowed with -dnl shell variable curl_disallow_fsetxattr, then -dnl HAVE_FSETXATTR will be defined. - -AC_DEFUN([CURL_CHECK_FUNC_FSETXATTR], [ - AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl - # - tst_links_fsetxattr="unknown" - tst_proto_fsetxattr="unknown" - tst_compi_fsetxattr="unknown" - tst_allow_fsetxattr="unknown" - # - AC_MSG_CHECKING([if fsetxattr can be linked]) - AC_LINK_IFELSE([ - AC_LANG_FUNC_LINK_TRY([fsetxattr]) - ],[ - AC_MSG_RESULT([yes]) - tst_links_fsetxattr="yes" - ],[ - AC_MSG_RESULT([no]) - tst_links_fsetxattr="no" - ]) - # - if test "$tst_links_fsetxattr" = "yes"; then - AC_MSG_CHECKING([if fsetxattr is prototyped]) - AC_EGREP_CPP([fsetxattr],[ - $curl_includes_sys_xattr - ],[ - AC_MSG_RESULT([yes]) - tst_proto_fsetxattr="yes" - ],[ - AC_MSG_RESULT([no]) - tst_proto_fsetxattr="no" - ]) - fi - # - if test "$tst_proto_fsetxattr" = "yes"; then - AC_MSG_CHECKING([if fsetxattr is compilable]) - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - $curl_includes_sys_xattr - ]],[[ - if(0 != fsetxattr("", "", "", 0, 0)) - return 1; - ]]) - ],[ - AC_MSG_RESULT([yes]) - tst_compi_fsetxattr="yes" - ],[ - AC_MSG_RESULT([no]) - tst_compi_fsetxattr="no" - ]) - fi - # - if test "$tst_compi_fsetxattr" = "yes"; then - AC_MSG_CHECKING([if fsetxattr usage allowed]) - if test "x$curl_disallow_fsetxattr" != "xyes"; then - AC_MSG_RESULT([yes]) - tst_allow_fsetxattr="yes" - else - AC_MSG_RESULT([no]) - tst_allow_fsetxattr="no" - fi - fi - # - AC_MSG_CHECKING([if fsetxattr might be used]) - if test "$tst_links_fsetxattr" = "yes" && - test "$tst_proto_fsetxattr" = "yes" && - test "$tst_compi_fsetxattr" = "yes" && - test "$tst_allow_fsetxattr" = "yes"; then - AC_MSG_RESULT([yes]) - AC_DEFINE_UNQUOTED(HAVE_FSETXATTR, 1, - [Define to 1 if you have the fsetxattr function.]) - ac_cv_func_fsetxattr="yes" - else - AC_MSG_RESULT([no]) - ac_cv_func_fsetxattr="no" - fi -]) -- cgit v1.2.3