diff --git a/configure.ac b/configure.ac
index 6ff81ad3da4c7f4fa9493e5e6410752892735a82..d03337f69c81da1a78189586ef044845f315f7ac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -34,5 +34,14 @@ PKG_CHECK_MODULES([XCB2], [xcb-dri2])
 PKG_CHECK_MODULES([XCB3], [xcb-dri3])
 dnl ////////////////////////////////////////////////////////////////
 
+dnl make sure we've got the _right_ libelf (doesn't ship a .pc)
+AC_CHECK_TYPE([Elf_Cmd], [], [], [#include <libelf.h>])
+AC_MSG_CHECKING([Elf_Cmd ELF_C_READ_MMAP])
+AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <libelf.h>],
+                               [Elf_Cmd x = ELF_C_READ_MMAP;])],
+              [AC_MSG_RESULT([yes])],
+              [AC_MSG_RESULT([no])]
+              [AC_MSG_ERROR([ELF_C_READ_MMAP missing: libelfg vs libelf0?])])
+
 AC_SEARCH_LIBS([dlmopen], [dl])
 AC_OUTPUT([Makefile])