[Buildroot] [PATCH] package/nfs-utils: fix time_t on 64-bits platforms build

Giulio Benetti giulio.benetti at benettiengineering.com
Thu Jul 22 15:32:52 UTC 2021


Add patch to fix time_t build failure on 64-bits platforms.

Fixes:
http://autobuild.buildroot.net/results/9bc1d43a588338b7395af7bc97535ee16a6ea2d9/

Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
---
 ...me_t-build-error-on-64-bits-platform.patch | 52 +++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 package/nfs-utils/0001-nfs-utils-fix-time_t-build-error-on-64-bits-platform.patch

diff --git a/package/nfs-utils/0001-nfs-utils-fix-time_t-build-error-on-64-bits-platform.patch b/package/nfs-utils/0001-nfs-utils-fix-time_t-build-error-on-64-bits-platform.patch
new file mode 100644
index 0000000000..1dec494f26
--- /dev/null
+++ b/package/nfs-utils/0001-nfs-utils-fix-time_t-build-error-on-64-bits-platform.patch
@@ -0,0 +1,52 @@
+From 9d25faae1216258b617dd2db134bc1d9fa0fd73d Mon Sep 17 00:00:00 2001
+From: Giulio Benetti <giulio.benetti at benettiengineering.com>
+Date: Thu, 22 Jul 2021 16:13:14 +0200
+Subject: [PATCH] nfs-utils: fix time_t build error on 64-bits platforms
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When passing time_t type to "%ld" on 64-bits platforms where time_t is a
+'long long' we encouter this build failure:
+error: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘time_t’ {aka ‘long long int’} [-Werror=format=]
+
+So let's change "%ld" markers to "%lld" assuming it to be a 64-bits and
+cast variables to '(long long)' if the type is a time_t.
+
+Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
+---
+ utils/nfsdcltrack/nfsdcltrack.c | 2 +-
+ utils/nfsdcltrack/sqlite.c      | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c
+index e926f1c0..437477bb 100644
+--- a/utils/nfsdcltrack/nfsdcltrack.c
++++ b/utils/nfsdcltrack/nfsdcltrack.c
+@@ -525,7 +525,7 @@ cltrack_gracedone(const char *timestr)
+ 	if (*tail)
+ 		return -EINVAL;
+ 
+-	xlog(D_GENERAL, "%s: grace done. gracetime=%ld", __func__, gracetime);
++	xlog(D_GENERAL, "%s: grace done. gracetime=%lld", __func__, (long long)gracetime);
+ 
+ 	ret = sqlite_remove_unreclaimed(gracetime);
+ 
+diff --git a/utils/nfsdcltrack/sqlite.c b/utils/nfsdcltrack/sqlite.c
+index f79aebb3..6e603087 100644
+--- a/utils/nfsdcltrack/sqlite.c
++++ b/utils/nfsdcltrack/sqlite.c
+@@ -544,8 +544,8 @@ sqlite_remove_unreclaimed(time_t grace_start)
+ 	int ret;
+ 	char *err = NULL;
+ 
+-	ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %ld",
+-			grace_start);
++	ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %lld",
++			(long long)grace_start);
+ 	if (ret < 0) {
+ 		return ret;
+ 	} else if ((size_t)ret >= sizeof(buf)) {
+-- 
+2.25.1
+
-- 
2.25.1



More information about the buildroot mailing list