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: [RFC] [PATCH] Fix configure scripts for Debian systems


David Smith wrote:
> I was thinking (which I didn't explain) that a situation might exist
> where a user needed to compile his own elfutils and so grabbed a
> newer Ubuntu source package (that had the hardcoded static libdw).
> At that point, he'd want to use both '--with-elfutils' and
> '--enable-staticdw'.

OK, makes sense.  I've updated the patch below, and I tested that it does work with Ubuntu's elfutils sources.

If there are no other objections, I'll commit this.

Thanks,

Josh


(my mutt just broke, so my apologies if Outlook mangles this...)

diff --git a/configure.ac b/configure.ac
index b561cf3..ed09970 100644
--- a/configure.ac
+++ b/configure.ac
@@ -180,19 +180,36 @@ AM_CONDITIONAL(BUILD_ELFUTILS, test $build_elfutils = yes)
 AC_SUBST(elfutils_abs_srcdir, `AS_IF([test $build_elfutils = yes],
                                     [cd $with_elfutils && pwd])`)

+AC_ARG_ENABLE([staticdw],
+  [AS_HELP_STRING([--enable-staticdw], [support distributions with static libdw])])
+
 if test $build_elfutils = no; then
   # Need libdwfl-capable recent elfutils from Fedora
   save_LIBS="$LIBS"
-  AC_CHECK_LIB(dw, dwfl_module_getsym,,[
-    AC_MSG_ERROR([missing elfutils development headers/libraries (dw 0.123+)])])
-  AC_CHECK_LIB(ebl, ebl_openbackend,,[
-    AC_MSG_ERROR([missing elfutils development headers/libraries (ebl 0.123+)])])
+  AS_IF([test "x$enable_staticdw" != xyes],[
+    AC_CHECK_LIB(dw, dwfl_module_getsym,,[
+      AC_MSG_ERROR([missing elfutils development headers/libraries (dw 0.123+)])])
+    AC_CHECK_LIB(ebl, ebl_openbackend,,[
+      AC_MSG_ERROR([missing elfutils development headers/libraries (ebl 0.123+)])])
+
+    stap_LIBS="$LIBS"
+  ],[
+    # Debian ships with a static libdw, which has a circular dependency on libebl
+    AC_CHECK_LIB(dw, dwfl_module_getsym,[],[
+      AC_MSG_ERROR([missing elfutils development headers/libraries (dw 0.123+)])],
+      [-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf])
+    dnl  XXX Do we need the ebl check, since it was referenced above?
+    AC_CHECK_LIB(ebl, ebl_openbackend,[],[
+      AC_MSG_ERROR([missing elfutils development headers/libraries (ebl 0.123+)])],
+      [-lelf])

-  stap_LIBS="$LIBS"
+    stap_LIBS="-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf"
+  ])
   LIBS="$save_LIBS"
 else
   # We built our own and stap_LDFLAGS points at the install.
-  stap_LIBS="-ldw -lebl"
+  AS_IF([test "x$enable_staticdw" != xyes],[stap_LIBS="-ldw -lebl"],
+       [stap_LIBS="-Wl,--start-group -ldw -lebl -Wl,--end-group -lelf"])
 fi

 AC_SUBST(stap_LIBS)


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