diff --git a/configure.ac b/configure.ac
index d70bbdf79e9c827ee5a56102af84cb1d27be1afb..9aef1ccb38572da79e3e8fb30c27ab9c95cb8de1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3683,9 +3683,11 @@ AC_ARG_ENABLE([sndio],
 ])
 have_sndio="no"
 AS_IF([test "$enable_sndio" != "no"], [
-  AC_CHECK_HEADER([sndio.h], [
-    AC_CHECK_LIB([sndio], [sio_open], [
-      have_sndio="yes"
+  PKG_CHECK_MODULES([SNDIO], [sndio], [
+    have_sndio="yes"
+  ], [
+    AS_IF([test -n "$enable_sndio"], [
+      AC_MSG_ERROR([${SNDIO_PKG_ERRORS}.)])
     ])
   ])
 ])