From 2bf8d3246aba9009042c293bb0154c7738e47ae3 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Fri, 12 Nov 2021 15:37:17 -0500 Subject: [PATCH] fix: don't add libelf and libdw to global LIBS MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The default behavior, for AC_CHECK_LIB when the `action-if-found` is NOT defined, is to prepend the library to LIBS. [1] " If action-if-found is not specified, the default action prepends -llibrary to LIBS and defines ‘HAVE_LIBlibrary’ (in all capitals). " It is important to note that the LIBS variable is used for ALL linking. This is normally not a problem for most distribution since they force the use of `--as-needed` at the toolchain level (gcc specs) (for example debian [2]). One could also pass the `--as-needed` flag manually but libtool reorganize flags in the case of shared object creation [3]. In our case, we always explicitly state the dependencies via the *_LIBADD automake clause. We do not rely on the LIBS variable. [1] https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Libraries.html [2] https://salsa.debian.org/toolchain-team/gcc/-/blob/master/debian/patches/gcc-as-needed.diff [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347650 Change-Id: Iea7812ccabb17e976362f9ea9412e0834ce946f4 Signed-off-by: Michael Jeanson Reviewed-on: https://review.lttng.org/c/babeltrace/+/6745 Tested-by: jenkins Reviewed-by: Simon Marchi Reviewed-by: Jonathan Rajotte Julien --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index ca24ee79..d6428ccd 100644 --- a/configure.ac +++ b/configure.ac @@ -564,8 +564,8 @@ AE_IF_FEATURE_ENABLED([debug-info], [ # Turns out SLES12 doesn't bother shipping .pc file for libelf AC_MSG_WARN([Finding libelf without pkg-config.]) - AC_CHECK_LIB([elf], [elf_version], [], [AC_MSG_ERROR(Missing libelf (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)]) - AC_CHECK_LIB([dw], [dwarf_begin], [], [AC_MSG_ERROR(Missing libdw (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)]) + AC_CHECK_LIB([elf], [elf_version], [:], [AC_MSG_ERROR(Missing libelf (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)]) + AC_CHECK_LIB([dw], [dwarf_begin], [:], [AC_MSG_ERROR(Missing libdw (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)]) AE_LIB_ELFUTILS([0], [154], [], [AC_MSG_ERROR(elfutils >= 0.154 is required to use the debug info feature. You can disable this feature using --disable-debug-info.)]) ELFUTILS_LIBS="-lelf -ldw" ]) -- 2.34.1