Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] nilfs-utils: fix build with static toolchains
@ 2018-01-03 20:15 Kurt Van Dijck
  2018-01-03 20:33 ` Thomas Petazzoni
  0 siblings, 1 reply; 10+ messages in thread
From: Kurt Van Dijck @ 2018-01-03 20:15 UTC (permalink / raw)
  To: buildroot

This commit adds a patch to respect the dependency libmount->libblkid->libuuid
properly in autoconf. This becomes necessary for static builds.

Signed-off-by: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
---
 ...nt-libblkid-fix-order-of-autoconf-probing.patch | 62 ++++++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 package/nilfs-utils/0004-libmount-libblkid-fix-order-of-autoconf-probing.patch

diff --git a/package/nilfs-utils/0004-libmount-libblkid-fix-order-of-autoconf-probing.patch b/package/nilfs-utils/0004-libmount-libblkid-fix-order-of-autoconf-probing.patch
new file mode 100644
index 0000000..78b6902
--- /dev/null
+++ b/package/nilfs-utils/0004-libmount-libblkid-fix-order-of-autoconf-probing.patch
@@ -0,0 +1,62 @@
+From 94732d03c5361a9f8f9d0f018e0fd9850a2c7d29 Mon Sep 17 00:00:00 2001
+From: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
+Date: Wed, 3 Jan 2018 20:38:15 +0100
+Subject: [PATCH] libmount, libblkid: fix order of autoconf probing
+
+make sure that libuuid is linked during probes.
+Since libmount depends on libblkid, probe libblkid first.
+This fixes autoprobing on systems that use static libraries exclusively
+
+Signed-off-by: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
+---
+ configure.ac | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6fa8c41..50250d9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -103,9 +103,20 @@ AC_CHECK_HEADERS([ctype.h err.h fcntl.h grp.h libintl.h limits.h \
+ 		  time.h unistd.h])
+ 
+ # Check for conditional libraries and headers.
++if test "${with_blkid}" = "yes"; then
++   AC_CHECK_LIB(blkid, blkid_new_probe_from_filename,
++   		[AC_DEFINE(HAVE_LIBBLKID, 1,
++		    [Define to 1 if you have the 'blkid' library (-lblkid).])
++		 LIB_BLKID="-lblkid -luuid"
++		],
++		AC_MSG_ERROR([BLKID library not found]), [-luuid])
++   AC_CHECK_HEADERS([blkid/blkid.h])
++fi
++AC_SUBST(LIB_BLKID)
++
+ 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_LIB(mount, mnt_context_do_mount, [LIB_MOUNT="-lmount $LIB_BLKID"],
++   	AC_MSG_ERROR([Mount library is enabled but libmount not found]), [$LIB_BLKID])
+    AC_CHECK_HEADERS([libmount/libmount.h])
+    with_selinux=no
+ fi
+@@ -124,17 +135,6 @@ if test "${with_selinux}" = "yes"; then
+ fi
+ AC_SUBST([LIB_SELINUX])
+ 
+-if test "${with_blkid}" = "yes"; then
+-   AC_CHECK_LIB(blkid, blkid_new_probe_from_filename,
+-   		[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
+ AC_C_INLINE
+-- 
+1.8.5.rc3
+
-- 
1.8.5.rc3

^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [Buildroot] [PATCH] nilfs-utils: fix build with static toolchains
@ 2018-01-07 20:39 Kurt Van Dijck
  2018-01-07 22:29 ` Thomas Petazzoni
  2018-01-18 13:33 ` Thomas Petazzoni
  0 siblings, 2 replies; 10+ messages in thread
From: Kurt Van Dijck @ 2018-01-07 20:39 UTC (permalink / raw)
  To: buildroot

This commit adds a patch to respect the dependency libmount->libblkid->libuuid
properly in autoconf. This becomes necessary for static builds.

Signed-off-by: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
---
 ...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

diff --git a/package/nilfs-utils/0004-autoconf-use-PKG_CHECK_MODULES-for-libmount-and-libb.patch b/package/nilfs-utils/0004-autoconf-use-PKG_CHECK_MODULES-for-libmount-and-libb.patch
new file mode 100644
index 0000000..c2e0d55
--- /dev/null
+++ b/package/nilfs-utils/0004-autoconf-use-PKG_CHECK_MODULES-for-libmount-and-libb.patch
@@ -0,0 +1,140 @@
+From 9cabaa6059e7bffcdeb6aa400fb6bb8bd2863aed 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 |  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
+
-- 
1.8.5.rc3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-01-18 19:54 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-03 20:15 [Buildroot] [PATCH] nilfs-utils: fix build with static toolchains Kurt Van Dijck
2018-01-03 20:33 ` Thomas Petazzoni
2018-01-04  8:14   ` Kurt Van Dijck
  -- strict thread matches above, loose matches on Subject: below --
2018-01-07 20:39 Kurt Van Dijck
2018-01-07 22:29 ` Thomas Petazzoni
2018-01-07 22:42   ` Thomas Petazzoni
2018-01-08  8:35     ` Kurt Van Dijck
2018-01-08  8:57       ` Thomas Petazzoni
2018-01-18 13:33 ` Thomas Petazzoni
2018-01-18 19:54   ` Kurt Van Dijck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox