autofs: fix build for old glibc toolchains

Autofs 5.1.2 switched to clock_gettime() unconditionally but didn't
check for the need of librt (glibc < 2.17) for it. Fixes:
http://autobuild.buildroot.net/results/0ab/0abd5476b39a6bd192b5e610006ed585ffb2e139/

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-19 00:25:12 -03:00 committed by Thomas Petazzoni
parent a5ea4d3d06
commit 1916084f2a
2 changed files with 64 additions and 0 deletions

View File

@ -0,0 +1,62 @@
From a38ab6c0f2790e047fc64867865eb2a073135618 Mon Sep 17 00:00:00 2001
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
Date: Sun, 19 Jun 2016 00:17:41 -0300
Subject: [PATCH] autofs: build: check for clock_gettime in librt
Glibc versions older than 2.17 define clock_gettime() in librt, so add a
check for this.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
Patch status: sent to autofs@ mailing list
Makefile.conf.in | 3 +++
Makefile.rules | 2 ++
configure.in | 4 ++++
3 files changed, 9 insertions(+)
diff --git a/Makefile.conf.in b/Makefile.conf.in
index cb53e66..2bc3202 100644
--- a/Makefile.conf.in
+++ b/Makefile.conf.in
@@ -11,6 +11,9 @@
DAEMON_CFLAGS = @DAEMON_CFLAGS@
DAEMON_LDFLAGS = @DAEMON_LDFLAGS@
+# Glibc < 2.17 requires librt for clock_gettime()
+LIBCLOCK_GETTIME = @LIBCLOCK_GETTIME@
+
# Special parameters for glibc (libc 6)
LIBNSL = @LIBNSL@
LIBRESOLV = @LIBRESOLV@
diff --git a/Makefile.rules b/Makefile.rules
index 6fa3e02..7d1af2e 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -56,6 +56,8 @@ endif
LIBS += $(LIBNSL)
+LIBS += $(LIBCLOCK_GETTIME)
+
# Standard rules
.SUFFIXES: .c .o .s .so
diff --git a/configure.in b/configure.in
index 25d7c4e..a4318e8 100644
--- a/configure.in
+++ b/configure.in
@@ -177,6 +177,10 @@ if test "$ac_cv_search_versionsort" = "no"; then
[Define if your C library does not provide versionsort])
fi
+# glibc < 2.17 needs librt for clock_gettime()
+AC_CHECK_LIB(rt, clock_gettime, LIBCLOCK_GETTIME="-lrt")
+AC_SUBST(LIBCLOCK_GETTIME)
+
#
# glibc/libc 6 new libraries
#
--
2.7.3

View File

@ -10,6 +10,8 @@ AUTOFS_SITE = $(BR2_KERNEL_MIRROR)/linux/daemons/autofs/v5
AUTOFS_LICENSE = GPLv2+
AUTOFS_LICENSE_FILES = COPYING COPYRIGHT
AUTOFS_DEPENDENCIES = host-flex host-bison
# For 0002-autofs-configure-check-for-clock_gettime-in-librt.patch
AUTOFS_AUTORECONF = YES
# autofs looks on the build machine for the path of modprobe, so tell
# it explicitly where it will be located on the target.