Re: [PATCH] nfs-utils: fix time_t build error on 64-bits platforms

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

On 7/22/21 11:24 AM, Giulio Benetti wrote:
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.
Just an FYI... I will be using Petr's patches [1] and [2]
since they used the inittypes defines which seem a
bit more portable and they do the same thing.

steved.

[1] https://marc.info/?l=linux-nfs&m=162697054816925&w=2
[2] https://marc.info/?l=linux-nfs&m=162697054816926&w=2

Signed-off-by: Giulio Benetti <giulio.benetti@xxxxxxxxxxxxxxxxxxxxxx>
---
  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)) {





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux