# LC_FID2PATH_UNION
#
AC_DEFUN([LC_FID2PATH_ANON_UNION], [
-AC_MSG_CHECKING([if 'struct getinfo_fid2path' has anony•mous union])
+saved_flags="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
+AC_MSG_CHECKING([if 'struct getinfo_fid2path' has anonymous union])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#include <linux/lustre/lustre_idl.h>
}
])],[
AC_DEFINE(HAVE_FID2PATH_ANON_UNIONS, 1, [union is unnamed])
- AC_MSG_RESULT("yes")
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
])
+CFLAGS="$saved_flags"
]) # LC_FID2PATH_ANON_UNION
#
# LC_IOC_REMOVE_ENTRY
#
AC_DEFUN([LC_IOC_REMOVE_ENTRY], [
+saved_flags="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
AC_MSG_CHECKING([if ioctl IOC_REMOVE_ENTRY' is supported])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#include <sys/ioctl.h>
])],[
AC_DEFINE(HAVE_IOC_REMOVE_ENTRY, 1,
[IOC_REMOVE_ENTRY ioctl exists])
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
])
+CFLAGS="$saved_flags"
]) # LC_IOC_REMOVE_ENTRY
#
])
]) # LC_CONFIG_GSS
-# LC_OPENSSL_SSK
+# LC_OPENSSL_HMAC
#
# OpenSSL 1.0+ return int for HMAC functions but older SLES11 versions do not
-AC_DEFUN([LC_OPENSSL_SSK], [
-AC_MSG_CHECKING([whether OpenSSL has functions needed for SSK])
+AC_DEFUN([LC_OPENSSL_HMAC], [
+has_hmac_functions="no"
+saved_flags="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
+AC_MSG_CHECKING([whether OpenSSL has HMAC_Init_ex])
AS_IF([test "x$enable_ssk" != xno], [
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#include <openssl/hmac.h>
int rc;
rc = HMAC_Init_ex(NULL, "test", 4, EVP_md_null(), NULL);
}
-])],[AC_DEFINE(HAVE_OPENSSL_SSK, 1,
- [OpenSSL HMAC functions needed for SSK])],
- [enable_ssk="no"])
+])],[
+ has_hmac_functions="yes"
+])
+])
+AC_MSG_RESULT([$has_hmac_functions])
+CFLAGS="$saved_flags"
+]) # LC_OPENSSL_HMAC
+
+# LC_OPENSSL_EVP_PKEY
+#
+# OpenSSL 3.0 introduces EVP_PKEY_get_params
+AC_DEFUN([LC_OPENSSL_EVP_PKEY], [
+has_evp_pkey="no"
+saved_flags="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
+AC_MSG_CHECKING([whether OpenSSL has EVP_PKEY_get_params])
+AS_IF([test "x$enable_ssk" != xno], [
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <openssl/evp.h>
+
+ int main(void) {
+ OSSL_PARAM *params;
+
+ int rc = EVP_PKEY_get_params(NULL, params);
+ }
+])],[
+ AC_DEFINE(HAVE_OPENSSL_EVP_PKEY, 1, [OpenSSL EVP_PKEY_get_params])
+ has_evp_pkey="yes"
+])
+])
+CFLAGS="$saved_flags"
+AC_MSG_RESULT([$has_evp_pkey])
+]) # LC_OPENSSL_EVP_PKEY
+
+#
+# LC_OPENSSL_SSK
+#
+# Check whether to enable Lustre client crypto
+#
+AC_DEFUN([LC_OPENSSL_SSK], [
+AC_MSG_CHECKING([whether OpenSSL has functions needed for SSK])
+AS_IF([test "x$enable_ssk" != xno], [
+ AC_MSG_RESULT(
+ )
+ LC_OPENSSL_HMAC
+ LC_OPENSSL_EVP_PKEY
+])
+AS_IF([test "x$has_hmac_functions" = xyes -o "x$has_evp_pkey" = xyes], [
+ AC_DEFINE(HAVE_OPENSSL_SSK, 1, [OpenSSL HMAC functions needed for SSK])
+], [
+ enable_ssk="no"
])
AC_MSG_RESULT([$enable_ssk])
]) # LC_OPENSSL_SSK
#
# OpenSSL is needed for l_getsepol
AC_DEFUN([LC_OPENSSL_GETSEPOL], [
+saved_flags="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
AC_MSG_CHECKING([whether openssl-devel is present])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#include <openssl/evp.h>
])
])
AC_MSG_RESULT([$enable_getsepol])
+CFLAGS="$saved_flags"
]) # LC_OPENSSL_GETSEPOL
# LC_HAVE_LIBAIO