buildroot/package/nilfs-utils/0004-autoconf-use-PKG_CHECK_MODULES-for-libmount-and-libb.patch
Kurt Van Dijck 8e918d18e4 nilfs-utils: fix build with static toolchains
This commit adds a patch to respect the dependency libmount->libblkid->libuuid
properly in autoconf. This becomes necessary for static builds.

Fixes:
 http://autobuild.buildroot.net/results/acaac513eaaa39d4000268428407a9fa6989ef03
 http://autobuild.buildroot.net/results/41af95b9ed7bbbe319565e1c20d1f6e2665d445f

[Peter: add host-pkgconf to dependencies]
Signed-off-by: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-01-27 13:15:53 +01:00

142 lines
4.4 KiB
Diff

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