From 27d95bd81fabd41367cf000566ee2ccf3651652c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 2 Apr 2012 08:53:20 -0400 Subject: [PATCH] Rework the libelf configure checks one more time It seems that there is quite a bit of variation out there, in terms of libelf versions and API. Make the checks more thorough, by not only checking for elf_begin, but also some of the shdr function that we need. Also, explicitly check for libelf.h. This should address bug 673132 and 673253. --- configure.ac | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 7c7b814f7..9a40961fc 100644 --- a/configure.ac +++ b/configure.ac @@ -1799,12 +1799,22 @@ dnl ************************ dnl *** check for libelf *** dnl ************************ -PKG_CHECK_MODULES([LIBELF], [libelf], [have_libelf=yes], [ - AC_CHECK_LIB([elf], [elf_begin], have_libelf=yes, have_libelf=no) - ]) +PKG_CHECK_MODULES([LIBELF], [libelf], [have_libelf=yes], [have_libelf=maybe]) + +if test $have_libelf = maybe; then + AC_CHECK_LIB([elf], [elf_begin], , [have_libelf=no]) + AC_CHECK_LIB([elf], [elf_getshdrstrndx], , [have_libelf=no]) + AC_CHECK_LIB([elf], [elf_getshdrnum], , [have_libelf=no]) + AC_CHECK_HEADER([libelf.h], , [have_libelf=no]) + + if test $have_libelf != no; then + LIBELF_LIBS=-lelf + have_libelf = yes + fi +fi + if test $have_libelf = yes; then AC_DEFINE(HAVE_LIBELF, 1, [Define if libelf is available]) - LIBELF_LIBS=-lelf fi dnl ****************************************