This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Changes in elfutils in Debian


Hello,

Here is the patch for $build_elfutils = no case.

4 ÑÑÐÐÐÑ 2009 Ð 10:28 -0700 Roland McGrath ÐÐÐÐÑÐÐ(-ÐÐ):
> stap does not use libebl itself (any more).  
> So it only needs "libdw that works".
> 
> The patch below removes the unnecessary -lebl from the "building elfutils
> ourselves" case.  Can you offer a patch to the "if test $build_elfutils = no"
> code that succeeds on both old and new Debian installations?
diff --git a/configure.ac b/configure.ac
index 129583e..2c77ce2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -283,15 +283,30 @@ AC_SUBST(elfutils_abs_srcdir, `AS_IF([test $build_elfutils = yes],
 
 if test $build_elfutils = no; then
   # Need libdwfl-capable recent elfutils http://elfutils.fedorahosted.org/
+  # First check does not use AC_CHECK_LIB to avoid result caching
   save_LIBS="$LIBS"
-  AC_CHECK_LIB(dw, dwfl_module_getsym,[],[
-    AC_MSG_ERROR([missing elfutils development headers/libraries (install elfutils-devel, libebl-dev, libdw-dev and/or libebl-devel)])],
-    [-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf])
-  AC_CHECK_LIB(dw, dwarf_getelf,[],[
-    AC_MSG_ERROR([elfutils, libdw too old, need 0.126+])],
-    [-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf])
-  stap_LIBS="-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf"
+  LIBS="-ldw -lelf $save_LIBS"
+  AC_MSG_CHECKING([for dwfl_module_getsym in -ldw (without -lebl)])
+  AC_LINK_IFELSE(AC_LANG_CALL([],[dwfl_module_getsym]),[in_slib=yes; AC_MSG_RESULT([yes])],[in_slib=no; AC_MSG_RESULT([no])])
+  if test "$in_slib" = yes
+  then
+    AC_MSG_CHECKING([for dwarf_getelf in -ldw (without -lebl)])
+    AC_LINK_IFELSE(AC_LANG_CALL([],[dwfl_module_getsym]),[in_slib=yes; AC_MSG_RESULT([yes])],[in_slib=no; AC_MSG_RESULT([no])])
+  fi
   LIBS="$save_LIBS"
+  if test "$in_slib" = yes
+  then
+    stap_LIBS="-ldw -lelf"
+  else
+    AC_CHECK_LIB(dw, dwfl_module_getsym,[
+      AC_MSG_ERROR([missing elfutils development headers/libraries (install elfutils-devel, libebl-dev, libdw-dev and/or libebl-devel)])],
+      [-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf])
+    AC_CHECK_LIB(dw, dwarf_getelf,[],[
+    AC_MSG_ERROR([elfutils, libdw too old, need 0.126+])],
+      [-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf])
+    stap_LIBS="-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf"
+    LIBS="$save_LIBS"
+  fi
 else
   # We built our own and stap_LDFLAGS points at the install.
   stap_LIBS="-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf"

Attachment: signature.asc
Description: Digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]