| 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 |
| |