From 11987989859520541d785c0b3129b562b6672d4c Mon Sep 17 00:00:00 2001 From: David Seifert Date: Sat, 29 Jan 2022 20:31:07 +0100 Subject: [PATCH] Find fts-standalone on musl When using the musl C library fts is optional. So we need to detect its presence by looking at the fts-standalone pkgconfig module. This patch does that. This comes from Gentoo bug https://bugs.gentoo.org/831571 * configure.ac: Invoke AC_CANONICAL_HOST to compute the host_cpu, host_vendor, host_os parts of the 'host" variable. Then if the host_os ends up with "musl" then, check for the fts-standalone pkgconfig module and record the fts library into FTS_{LIBS,CFLAGS}. * src/Makefile.am: Link to $FTS_LIBS and use $FTS_CFLAGS for compilation. * tools/Makefile.am: Likewise. * tools/abisym.cc: Include libgen.h * tools/kmidiff.cc: Remove useless fts.h header file. Signed-off-by: David Seifert Signed-off-by: Dodji Seketeli --- configure.ac | 7 +++++++ src/Makefile.am | 4 ++-- tools/Makefile.am | 3 ++- tools/kmidiff.cc | 1 - 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 29130175..019bdbac 100644 --- a/configure.ac +++ b/configure.ac @@ -161,6 +161,7 @@ dnl check for dependencies dnl ************************************************* AC_PROG_CXX +AC_CANONICAL_HOST AC_USE_SYSTEM_EXTENSIONS AC_PROG_INSTALL @@ -219,6 +220,12 @@ AS_IF([test "x$ac_cv_bad_fts" = "xyes"], [CFLAGS="$CFLAGS -DBAD_FTS=1", CXXFLAGS="$CXXFLAGS -DBAD_FTS=1"]) +dnl On musl, we need to find fts-standalone +AS_CASE( + [${host_os}], [*-musl*], [ + PKG_CHECK_MODULES([FTS], [fts-standalone]) +]) + dnl Check for dependency: libelf, libdw, libebl (elfutils) dnl Note that we need to use at least elfutils 0.159 but dnl at that time elfutils didnt have pkgconfig capabilities diff --git a/src/Makefile.am b/src/Makefile.am index 29da1ecf..1591224f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -46,12 +46,12 @@ if CTF_READER libabigail_la_SOURCES += abg-ctf-reader.cc endif -libabigail_la_LIBADD = $(DEPS_LIBS) +libabigail_la_LIBADD = $(DEPS_LIBS) $(FTS_LIBS) libabigail_la_LDFLAGS = -lpthread -Wl,--as-needed -no-undefined CUSTOM_MACROS = -DABIGAIL_ROOT_SYSTEM_LIBDIR=\"${libdir}\" AM_CPPFLAGS=\ -$(CUSTOM_MACROS) $(DEPS_CPPFLAGS) \ +$(CUSTOM_MACROS) $(DEPS_CPPFLAGS) $(FTS_CFLAGS) \ -Wall -I$(abs_top_srcdir) -I$(abs_top_srcdir)/include \ -I$(abs_top_builddir)/include -I$(abs_top_builddir) diff --git a/tools/Makefile.am b/tools/Makefile.am index 648a71b5..f7592b60 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -37,7 +37,8 @@ abicompat_LDADD = $(abs_top_builddir)/src/libabigail.la abipkgdiff_SOURCES = abipkgdiff.cc abipkgdiffdir = $(bindir) -abipkgdiff_LDADD = $(abs_top_builddir)/src/libabigail.la +abipkgdiff_CPPFLAGS = $(FTS_CFLAGS) +abipkgdiff_LDADD = $(abs_top_builddir)/src/libabigail.la $(FTS_LIBS) abipkgdiff_LDFLAGS = -pthread kmidiff_SOURCES = kmidiff.cc diff --git a/tools/kmidiff.cc b/tools/kmidiff.cc index b802348f..2e88baa7 100644 --- a/tools/kmidiff.cc +++ b/tools/kmidiff.cc @@ -11,7 +11,6 @@ #include #include -#include #include #include #include