nilfs-utils: fix build with static toolchains
PATCH 1/1 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.
--- ...e-PKG_CHECK_MODULES-for-libmount-and-libb.patch | 140 +++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 package/nilfs-utils/0004-autoconf-use-PKG_CHECK_MODULES-for-libmount-and-libb.patch
package/nilfs-utils/0004-autoconf-use-PKG_CHECK_MODULES-for-libmount-and-libb.patch new file +140 -0
@@ -0,0 +1,140 @@ +From 9cabaa6059e7bffcdeb6aa400fb6bb8bd2863aed Mon Sep 17 00:00:00 2001 +From: Kurt Van Dijck <[email protected]> +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 <[email protected]> +--- + 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 | 2 -- + 6 files changed, 11 insertions(+), 22 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..2987f5d 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 <stdarg.h> + #include <errno.h> +-- +1.8.5.rc3 +
Signature · 1 line
1.8.5.rc3
PATCH 1/1 nilfs-utils: fix build with static toolchains
Hello,
Quoted 4 lines · Kurt Van Dijck
This commit adds a patch to respect the dependency
libmount->libblkid->libuuidproperly in autoconf. This becomes necessary for static builds.Signed-off-by Kurt Van Dijck <[email protected]>
Nit: when sending a new version of a patch, it is strongly recommended to use [PATCH v2], [PATCH v3], and include a changelog...
Quoted 1 line
---
... right here.
Quoted 8 lines
+-#if HAVE_LIBMOUNT_LIBMOUNT_H +-#include <libmount/libmount.h> +-#endif /* HAVE_LIBMOUNT_H */++#include <
libmount.h>
+
+ #include <stdarg.h>
+ #include <errno.h>package/nilfs-utils/0004-autoconf-use-PKG_CHECK_MODULES-for-libmount-and-libb.patch new file +1
-0+diff --git a/sbin/mount/umount_libmount.c b/sbin/mount/umount_libmount.c
package/nilfs-utils/0004-autoconf-use-PKG_CHECK_MODULES-for-libmount-and-libb.patch line 134
Quoted 10 lines
package/nilfs-utils/0004-autoconf-use-PKG_CHECK_MODULES-for-libmount-and-libb.patch new file +10
-0+index ae5a337..2987f5d 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 */
You still haven't fixed the <libmount/libmount.h> vs. <libmount.h> discrepancy here :-)
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/1 nilfs-utils: fix build with static toolchains
Hello,
Quoted 10 lines · Thomas Petazzoni
Hello,
Quoted 4 lines · Kurt Van Dijck
This commit adds a patch to respect the dependency
libmount->libblkid->libuuidproperly in autoconf. This becomes necessary for static builds.Signed-off-by Kurt Van Dijck <[email protected]>Nit: when sending a new version of a patch, it is strongly recommended to use [PATCH v2], [PATCH v3], and include a changelog...
Also, when you're fixing autobuilder failures, your commit log should include a reference to one such failure. Something like this:
Fixes:
http://autobuild.buildroot.org/results/<hash>/
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/1 nilfs-utils: fix build with static toolchains
Quoted 4 lines
Quoted 3 lines
Nit: when sending a new version of a patch, it is strongly recommended to use [PATCH v2], [PATCH v3], and include a changelog...
Quoted 8 lines
Also, when you're fixing autobuilder failures, your commit log should include a reference to one such failure. Something like this:
Fixes:
http://autobuild.buildroot.org/results/<hash>/
Thanks!
I see. Will I resend?
Kurt
PATCH 1/1 nilfs-utils: fix build with static toolchains
Hello,
Quoted 7 lines · Kurt Van Dijck
Quoted 7 lines
Quoted 3 lines
Nit: when sending a new version of a patch, it is strongly recommended to use [PATCH v2], [PATCH v3], and include a changelog...
Also, when you're fixing autobuilder failures, your commit log should include a reference to one such failure. Something like this:
Quoted 7 lines
Quoted 5 lines
Fixes:
http://autobuild.buildroot.org/results/<hash>/
Thanks!
I see. Will I resend?
Well, I made other comments in a different e-mail, which indeed require a resend.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/1 nilfs-utils: fix build with static toolchains
In reply to Kurt Van DijckHello Kurt,
Quoted 4 lines · Kurt Van Dijck
This commit adds a patch to respect the dependency
libmount->libblkid->libuuidproperly in autoconf. This becomes necessary for static builds.Signed-off-by Kurt Van Dijck <[email protected]>
This problem is still occurring in the autobuilders. Could you send a new version of this patch? The issues to be fixed were really minor.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/1 nilfs-utils: fix build with static toolchains
Hey Thomas,
No worries, I didn't forget, but work and sick children came in between :-( You may expect a new patch one of these days.
Kurt
--- Original message ---
Quoted 26 lines
Date: Thu, 18 Jan 2018 14:33:07 +0100
From: Thomas Petazzoni <[email protected]>
To: Kurt Van Dijck <[email protected]>
Cc: buildroot at busybox.net
Subject: Re: [Buildroot] [PATCH] nilfs-utils: fix build with static
toolchains
X-Mailer: Claws Mail 3.15.1-dirty (GTK+ 2.24.31; x86_64-redhat-linux-gnu)Hello Kurt,
Quoted 4 lines · Kurt Van Dijck
This commit adds a patch to respect the dependency
libmount->libblkid->libuuidproperly in autoconf. This becomes necessary for static builds.Signed-off-by Kurt Van Dijck <[email protected]>This problem is still occurring in the autobuilders. Could you send a new version of this patch? The issues to be fixed were really minor.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com