summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorAaron Merey <amerey@redhat.com>2019-10-28 13:29:26 -0400
committerMark Wielaard <mark@klomp.org>2019-11-22 22:49:21 +0100
commit288f6b199a8b1a60d4fb1f54ca7b883cdd5afca2 (patch)
treeb7d6a0dbcc0773de051aacdef8947d4adf72c941 /configure.ac
parent4bad7d1eada6a0690ab30eed2e5ae42c6fd7dacd (diff)
debuginfod 1/2: client side
Introduce the debuginfod/ subdirectory, containing the client for a new debuginfo-over-http service, in shared-library and command-line forms. Two functions in libdwfl make calls into the client library to fetch elf/dwarf files by buildid, as a fallback. Instead of normal dynamic linking (thus pulling in a variety of curl dependencies), the libdwfl hooks use dlopen/dlsym. Server & tests coming in patch 2. Signed-off-by: Aaron Merey <amerey@redhat.com> Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac23
1 files changed, 22 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 7fc3acb6..8a3ed3af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -60,6 +60,8 @@ AC_CONFIG_FILES([m4/Makefile])
dnl The RPM spec file. We substitute a few values in the file.
AC_CONFIG_FILES([elfutils.spec:config/elfutils.spec.in])
+dnl debuginfo-server client & server parts.
+AC_CONFIG_FILES([debuginfod/Makefile])
AC_CANONICAL_HOST
@@ -86,6 +88,8 @@ AS_IF([test "$use_locks" = yes],
AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.])
AC_PROG_CC
+AC_PROG_CXX
+AX_CXX_COMPILE_STDCXX(11, noext, optional)
AC_PROG_RANLIB
AC_PROG_YACC
AM_PROG_LEX
@@ -567,7 +571,7 @@ AM_CONDITIONAL(STANDALONE, false)dnl Used in tests/Makefile.am, which see.
AC_CONFIG_FILES([tests/Makefile])
dnl pkgconfig files
-AC_CONFIG_FILES([config/libelf.pc config/libdw.pc])
+AC_CONFIG_FILES([config/libelf.pc config/libdw.pc config/libdebuginfod.pc])
# Get the definitions necessary to create the Makefiles in the po
# subdirectories. This is a small subset of the gettext rules.
@@ -670,6 +674,22 @@ if test "$HAVE_BUNZIP2" = "no"; then
AC_MSG_WARN([No bunzip2, needed to run make check])
fi
+# Look for libmicrohttpd, libcurl, libarchive, sqlite for debuginfo server
+# minimum versions as per rhel7. Single --enable-* option arranges to build
+# both client libs and server process.
+
+PKG_PROG_PKG_CONFIG
+AC_ARG_ENABLE([debuginfod], AC_HELP_STRING([--enable-debuginfod], [Build debuginfo server and client solib]))
+AS_IF([test "x$enable_debuginfod" = "xyes"], [
+ AC_DEFINE([ENABLE_DEBUGINFOD],[1],[Build debuginfo-server])
+ PKG_CHECK_MODULES([libmicrohttpd],[libmicrohttpd >= 0.9.33])
+ PKG_CHECK_MODULES([libcurl],[libcurl >= 7.29.0])
+ PKG_CHECK_MODULES([sqlite3],[sqlite3 >= 3.7.17])
+ PKG_CHECK_MODULES([libarchive],[libarchive >= 3.1.2])
+], [enable_debuginfod="no"])
+AM_CONDITIONAL([DEBUGINFOD],[test "x$enable_debuginfod" = "xyes"])
+
+
AC_OUTPUT
AC_MSG_NOTICE([
@@ -699,6 +719,7 @@ AC_MSG_NOTICE([
Deterministic archives by default : ${default_ar_deterministic}
Native language support : ${USE_NLS}
Extra Valgrind annotations : ${use_vg_annotations}
+ Debuginfo client/server support : ${enable_debuginfod}
EXTRA TEST FEATURES (used with make check)
have bunzip2 installed (required) : ${HAVE_BUNZIP2}