[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