[glib] Rework the libelf configure checks one more time



commit 27d95bd81fabd41367cf000566ee2ccf3651652c
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Apr 2 08:53:20 2012 -0400

    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 files changed, 14 insertions(+), 4 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 7c7b814..9a40961 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 ****************************************



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]