diff mbox series

nfs-utils: fix time_t build error on 64-bits platforms

Message ID 20210722152411.1156295-1-giulio.benetti@benettiengineering.com (mailing list archive)
State New, archived
Headers show
Series nfs-utils: fix time_t build error on 64-bits platforms | expand

Commit Message

Giulio Benetti July 22, 2021, 3:24 p.m. UTC
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@benettiengineering.com>
---
 utils/nfsdcltrack/nfsdcltrack.c | 2 +-
 utils/nfsdcltrack/sqlite.c      | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Steve Dickson July 25, 2021, 5:09 p.m. UTC | #1
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@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)) {
>
Giulio Benetti July 25, 2021, 5:14 p.m. UTC | #2
Hello Steve,

> Il giorno 25 lug 2021, alle ore 19:05, Steve Dickson <steved@redhat.com> ha scritto:
> 
> 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.

Sure, I’ve missed those patches, thank you for pointing so I can use them in Buildroot instead of this one.

Best regards
Giulio Benetti

> 
> 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@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)) {
>
diff mbox series

Patch

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)) {