Picked from 
https://github.com/tpm2-software/tpm2-tools/commit/b50562865b56337bad5f87b6b36e3487af39b817

diff --git a/configure.ac b/configure.ac
index fcafc921..3a0262f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,10 +82,24 @@ AC_CHECK_LIB(crypto, [EVP_sm3], [
 AC_CHECK_LIB(crypto, [EVP_sm4_cfb128], [
         AC_DEFINE([HAVE_EVP_SM4_CFB], [1], [Support EVP_sm4_cfb in openssl])],
         [])
-AC_CHECK_LIB(tss2-fapi, [Fapi_DigestAndSign], [
-        AC_DEFINE([HAVE_FAPI_DIGEST_AND_SIGN], [1], [Support signing with restricted keys])],
-        [])
-LIBS="${LIBS_save}"
+save_CPPFLAGS="$CPPFLAGS"
+save_LIBS="$LIBS"
+
+save_LIBS="$LIBS"
+
+LIBS="$TSS2_FAPI_LIBS $LIBS"
+
+AC_CHECK_FUNC(
+    [Fapi_DigestAndSign],
+    [AC_DEFINE(
+        [HAVE_FAPI_DIGEST_AND_SIGN],
+        [1],
+        [Define if Fapi_DigestAndSign is available]
+    )]
+)
+
+LIBS="$save_LIBS"
+
 PKG_CHECK_MODULES([CURL], [libcurl])
 
 # pretty print of devicepath if efivar library is present
diff --git a/test/integration/fapi/fapi-sign-verify.sh b/test/integration/fapi/fapi-sign-verify.sh
index 24635ed1..5181dd00 100644
--- a/test/integration/fapi/fapi-sign-verify.sh
+++ b/test/integration/fapi/fapi-sign-verify.sh
@@ -337,19 +337,23 @@ dd if=/dev/zero of=$DATA_FILE bs=1 count=1024
 if [ "$CRYPTO_PROFILE" = "RSA" ]; then
     PADDING="--padding=RSA_PSS"
 fi
-if nm -D $(ldconfig -p | grep "libtss2-fapi" | head -n1 | awk '{print $NF}') | \
-        grep "Fapi_DigestAndSign";
+
+if printf '%s\n' \
+    'extern void Fapi_DigestAndSign(void);' \
+    'int main(void) { Fapi_DigestAndSign(); return 0; }' |
+   "${CC:-cc}" -x c - -L/usr/local/lib -ltss2-fapi -o /tmp/check-fapi
 then
     tss2 sign --data=$DATA_FILE --keyPath=$KEY_PATH $PADDING \
          --signature=$SIGNATURE_FILE --publicKey=$PUBLIC_KEY_FILE -f
-
-    shasum -a 256 $DATA_FILE | awk '{ $1 }' | xxd -r -p > $DIGEST_FILE
+    shasum -a 256 $DATA_FILE | awk '{ print $1 }' | xxd -r -p > $DIGEST_FILE
     tss2 verifysignature --keyPath=$PUB_KEY_DIR/$IMPORTED_KEY_NAME \
          --digest=$DIGEST_FILE --signature=$SIGNATURE_FILE
 else
     # The sign should fail because Fapi_DigestAndSign is not available
-    ! tss2 sign --data=$DATA_FILE --keyPath=$KEY_PATH $PADDING \
-      --signature=$SIGNATURE_FILE --publicKey=$PUBLIC_KEY_FILE
+    if tss2 sign --data=$DATA_FILE --keyPath=$KEY_PATH $PADDING \
+            --signature=$SIGNATURE_FILE --publicKey=$PUBLIC_KEY_FILE ; then
+        echo "ERROR: tss2_sign unexpectedly succeeded"
+        exit 1;
+    fi
 fi
-
 exit 0
