autofs: fix build for old glibc toolchains
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Sun, 19 Jun 2016 03:25:12 +0000 (00:25 -0300)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 19 Jun 2016 08:55:00 +0000 (10:55 +0200)
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>
package/autofs/0002-autofs-build-check-for-clock_gettime-in-librt.patch [new file with mode: 0644]
package/autofs/autofs.mk

diff --git a/package/autofs/0002-autofs-build-check-for-clock_gettime-in-librt.patch b/package/autofs/0002-autofs-build-check-for-clock_gettime-in-librt.patch
new file mode 100644 (file)
index 0000000..ade6d1c
--- /dev/null
@@ -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
+
index 8206720f821c2925cfa1d05977f5a3cb5c18278a..396cf85fbe185c0430410f68f7802242ed3b9536 100644 (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.