From 65ce9b4817544734770e410c5c2779065152f991 Mon Sep 17 00:00:00 2001 From: Kurt Van Dijck Date: Thu, 4 Jan 2018 09:47:45 +0100 Subject: [PATCH] autoconf: use PKG_CHECK_MODULES for libmount and libblkid The dependencies of libmount to libblkid and libblkid to libuuid were not handled correctly, and only work for the shared object scenario. This commit switches the autoconfiguration to use PKG_CHECK_MODULES which handles the static vs. dynamic case. This commit has been compile-tested using buildroot on different compilers, including static & dynamic ones Signed-off-by: Kurt Van Dijck --- configure.ac | 13 +++---------- sbin/mkfs/Makefile.am | 4 ++-- sbin/mkfs/mkfs.c | 6 +++--- sbin/mount/Makefile.am | 4 ++-- sbin/mount/mount_libmount.c | 4 +--- sbin/mount/umount_libmount.c | 4 +--- 6 files changed, 12 insertions(+), 23 deletions(-) diff --git a/configure.ac b/configure.ac index 6fa8c41..3e31e55 100644 --- a/configure.ac +++ b/configure.ac @@ -104,13 +104,10 @@ AC_CHECK_HEADERS([ctype.h err.h fcntl.h grp.h libintl.h limits.h \ # Check for conditional libraries and headers. if test "${with_libmount}" = "yes"; then - AC_CHECK_LIB(mount, mnt_context_do_mount, [LIB_MOUNT="-lmount"], - AC_MSG_ERROR([Mount library is enabled but libmount not found])) - AC_CHECK_HEADERS([libmount/libmount.h]) + PKG_CHECK_MODULES([MOUNT], [mount]) with_selinux=no fi AM_CONDITIONAL(CONFIG_LIBMOUNT, [test "$with_libmount" = "yes"]) -AC_SUBST(LIB_MOUNT) if test "${with_selinux}" = "yes"; then AC_CHECK_LIB(selinux, getprevcon, @@ -125,15 +122,11 @@ fi AC_SUBST([LIB_SELINUX]) if test "${with_blkid}" = "yes"; then - AC_CHECK_LIB(blkid, blkid_new_probe_from_filename, + PKG_CHECK_MODULES([BLKID], [blkid], [AC_DEFINE(HAVE_LIBBLKID, 1, [Define to 1 if you have the 'blkid' library (-lblkid).]) - LIB_BLKID="-lblkid" - ], - AC_MSG_ERROR([BLKID library not found])) - AC_CHECK_HEADERS([blkid/blkid.h]) + ]) fi -AC_SUBST(LIB_BLKID) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST diff --git a/sbin/mkfs/Makefile.am b/sbin/mkfs/Makefile.am index 28f5128..408c976 100644 --- a/sbin/mkfs/Makefile.am +++ b/sbin/mkfs/Makefile.am @@ -1,8 +1,8 @@ ## Makefile.am -AM_CFLAGS = -Wall +AM_CFLAGS = -Wall $(BLKID_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/include -LDADD = -luuid $(LIB_BLKID) $(top_builddir)/lib/libnilfsfeature.la \ +LDADD = -luuid $(BLKID_LIBS) $(top_builddir)/lib/libnilfsfeature.la \ $(top_builddir)/lib/libmountchk.la \ $(top_builddir)/lib/libcrc32.la diff --git a/sbin/mkfs/mkfs.c b/sbin/mkfs/mkfs.c index d7f161e..0c45d6a 100644 --- a/sbin/mkfs/mkfs.c +++ b/sbin/mkfs/mkfs.c @@ -66,9 +66,9 @@ #include -#if HAVE_BLKID_BLKID_H -#include -#endif /* HAVE_BLKID_BLKID_H */ +#if HAVE_LIBBLKID +#include +#endif /* HAVE_LIBBLKID */ #include "nilfs.h" #include "util.h" diff --git a/sbin/mount/Makefile.am b/sbin/mount/Makefile.am index f5d3c27..9554aa5 100644 --- a/sbin/mount/Makefile.am +++ b/sbin/mount/Makefile.am @@ -6,10 +6,10 @@ COMMONHEADERS = mount.nilfs2.h sundries.h xmalloc.h LEGACYSOURCES = fstab.c mount_mntent.c mount_opts.c LEGACYHEADERS = fstab.h mount_constants.h mount_mntent.h mount_opts.h -AM_CFLAGS = -Wall +AM_CFLAGS = -Wall $(MOUNT_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/include LDADD = $(top_builddir)/lib/librealpath.la \ - $(top_builddir)/lib/libcleanerexec.la $(LIB_MOUNT) $(LIB_SELINUX) \ + $(top_builddir)/lib/libcleanerexec.la $(MOUNT_LIBS) $(LIB_SELINUX) \ $(LIB_POSIX_TIMER) root_sbin_PROGRAMS = mount.nilfs2 umount.nilfs2 diff --git a/sbin/mount/mount_libmount.c b/sbin/mount/mount_libmount.c index ef40e68..a7fec00 100644 --- a/sbin/mount/mount_libmount.c +++ b/sbin/mount/mount_libmount.c @@ -67,9 +67,7 @@ #include #endif /* HAVE_SYSLOG_H */ -#if HAVE_LIBMOUNT_LIBMOUNT_H -#include -#endif /* HAVE_LIBMOUNT_H */ +#include #include #include diff --git a/sbin/mount/umount_libmount.c b/sbin/mount/umount_libmount.c index ae5a337..b678f54 100644 --- a/sbin/mount/umount_libmount.c +++ b/sbin/mount/umount_libmount.c @@ -59,9 +59,7 @@ #include #endif /* HAVE_SYSLOG_H */ -#if HAVE_LIBMOUNT_LIBMOUNT_H -#include -#endif /* HAVE_LIBMOUNT_H */ +#include #include #include -- 1.8.5.rc3