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

Giulio Benetti giulio.benetti at benettiengineering.com
Thu Jul 22 15:33:58 UTC 2021


On 7/22/21 5:32 PM, Giulio Benetti wrote:
> Add patch to fix time_t build failure on 64-bits platforms.

Forgot to add:
```
Patch is pending upstream:
https://patchwork.kernel.org/project/linux-nfs/patch/20210722152411.1156295-1-giulio.benetti@benettiengineering.com/
```
> 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
> +
> 

-- 
Giulio Benetti
Benetti Engineering sas


More information about the buildroot mailing list