e2fsprogs: fix build failure with old glibc versions

In old (< 2.17) glibc versions clock_gettime() resides in librt, however
there's no check for this, so add a patch to fix it. Fixes:
http://autobuild.buildroot.net/results/25c/25c042d2862affebf552ed24bc2a58e0c484226f/

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Gustavo Zacarias 2016-06-09 11:13:13 -03:00 committed by Thomas Petazzoni
parent 558dad2a75
commit cd48a7e572
2 changed files with 56 additions and 2 deletions

View File

@ -0,0 +1,48 @@
From 14d9e94315cd8144ac72d368c45e70869a66799c Mon Sep 17 00:00:00 2001
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
Date: Thu, 9 Jun 2016 07:47:03 -0300
Subject: [PATCH] fuse2fs: might need librt
It uses clock_gettime() which in older glibc versions is in librt.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
Patch status: sent to linux-ext4 ML
configure.ac | 5 +++++
misc/Makefile.in | 3 ++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 67d7231..a387dfd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1162,6 +1162,11 @@ if test "$ac_cv_func_dlopen" = yes ; then
fi
AC_SUBST(MAGIC_LIB)
dnl
+dnl Check to see if librt is required for clock_gettime() (glibc < 2.17)
+dnl
+AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt])
+AC_SUBST(CLOCK_GETTIME_LIB)
+dnl
dnl Check to see if the FUSE library is -lfuse or -losxfuse
dnl
FUSE_CMT=
diff --git a/misc/Makefile.in b/misc/Makefile.in
index 43e3c7e..070a6e3 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -387,7 +387,8 @@ fuse2fs: $(FUSE2FS_OBJS) $(DEPLIBS) $(DEPLIBBLKID) $(DEPLIBUUID) \
$(LIBEXT2FS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o fuse2fs $(FUSE2FS_OBJS) $(LIBS) \
- $(LIBFUSE) $(LIBBLKID) $(LIBUUID) $(LIBEXT2FS) $(LIBINTL)
+ $(LIBFUSE) $(LIBBLKID) $(LIBUUID) $(LIBEXT2FS) $(LIBINTL) \
+ $(CLOCK_GETTIME_LIB)
journal.o: $(srcdir)/../debugfs/journal.c
$(E) " CC $@"
--
2.7.3

View File

@ -12,6 +12,14 @@ E2FSPROGS_LICENSE_FILES = NOTICE lib/uuid/COPYING lib/ss/mit-sipb-copyright.h li
E2FSPROGS_INSTALL_STAGING = YES
E2FSPROGS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-libs
E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux
# we don't have a host-util-linux
HOST_E2FSPROGS_DEPENDENCIES = host-pkgconf
# For 0002-fuse2fs-might-need-librt.patch
# host-gettext for the gettext macro file needed at autoreconf time
E2FSPROGS_AUTORECONF = YES
E2FSPROGS_DEPENDENCIES += host-gettext
HOST_E2FSPROGS_DEPENDENCIES += host-gettext
# e4defrag doesn't build on older systems like RHEL5.x, and we don't
# need it on the host anyway.
@ -61,8 +69,6 @@ E2FSPROGS_MAKE_OPTS = \
define HOST_E2FSPROGS_INSTALL_CMDS
$(HOST_MAKE_ENV) $(MAKE) -C $(@D) install install-libs
endef
# we don't have a host-util-linux
HOST_E2FSPROGS_DEPENDENCIES = host-pkgconf
# binaries to keep or remove
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_BADBLOCKS) += usr/sbin/badblocks