--- /dev/null
+From 65ce9b4817544734770e410c5c2779065152f991 Mon Sep 17 00:00:00 2001
+From: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
+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 <dev.kurt@vandijck-laurijssen.be>
+---
+ 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 <errno.h>
+
+-#if HAVE_BLKID_BLKID_H
+-#include <blkid/blkid.h>
+-#endif /* HAVE_BLKID_BLKID_H */
++#if HAVE_LIBBLKID
++#include <blkid.h>
++#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 <syslog.h>
+ #endif /* HAVE_SYSLOG_H */
+
+-#if HAVE_LIBMOUNT_LIBMOUNT_H
+-#include <libmount/libmount.h>
+-#endif /* HAVE_LIBMOUNT_H */
++#include <libmount.h>
+
+ #include <stdarg.h>
+ #include <errno.h>
+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 <syslog.h>
+ #endif /* HAVE_SYSLOG_H */
+
+-#if HAVE_LIBMOUNT_LIBMOUNT_H
+-#include <libmount/libmount.h>
+-#endif /* HAVE_LIBMOUNT_H */
++#include <libmount.h>
+
+ #include <stdarg.h>
+ #include <errno.h>
+--
+1.8.5.rc3
+