blob: af99d2b7f985b89ed208e5aae41046933aafef95 [file] [log] [blame]
Fix printf if time_t is long long
On some platforms, time_t has recently switched from "long" to "long
long" [1]. For these platforms it is necessary to use "%lld" as printf
format specifier because the ABI differs between "long" and "long long".
I found no way for creating something similar to PRId64 for time_t. No
idea how to determine whether it's "long" or "long long". So I cast
everything to "long long" instead.
[1] https://git.musl-libc.org/cgit/musl/commit/?id=38143339646a4ccce8afe298c34467767c899f51
Upstream-Status: Accepted [next version is after 2.0]
Upstream-Patch: https://github.com/richardcochran/linuxptp/commit/7de73fefc378cc42b9ed1115b3afa409d0250a48
Signed-off-by: Christian Eggers <ceggers@arri.de>
---
diff -Naur linuxptp-2.0.org/phc_ctl.c linuxptp-2.0/phc_ctl.c
--- linuxptp-2.0.org/phc_ctl.c 2018-08-12 23:08:43.000000000 +0200
+++ linuxptp-2.0/phc_ctl.c 2020-05-29 21:34:26.166519963 +0200
@@ -230,8 +230,8 @@
strerror(errno));
return -1;
} else {
- pr_notice("set clock time to %ld.%09ld or %s",
- ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
+ pr_notice("set clock time to %lld.%09ld or %s",
+ (long long)ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
}
return args_to_eat;
@@ -248,8 +248,8 @@
return -1;
} else {
- pr_notice("clock time is %ld.%09lu or %s",
- ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
+ pr_notice("clock time is %lld.%09lu or %s",
+ (long long)ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
}
/* get operation does not require any arguments */
diff -Naur linuxptp-2.0.org/print.c linuxptp-2.0/print.c
--- linuxptp-2.0.org/print.c 2018-08-12 23:08:43.000000000 +0200
+++ linuxptp-2.0/print.c 2020-05-29 21:34:26.166519963 +0200
@@ -73,16 +73,16 @@
if (verbose) {
f = level >= LOG_NOTICE ? stdout : stderr;
- fprintf(f, "%s[%ld.%03ld]: %s%s%s\n",
+ fprintf(f, "%s[%lld.%03ld]: %s%s%s\n",
progname ? progname : "",
- ts.tv_sec, ts.tv_nsec / 1000000,
+ (long long)ts.tv_sec, ts.tv_nsec / 1000000,
message_tag ? message_tag : "", message_tag ? " " : "",
buf);
fflush(f);
}
if (use_syslog) {
- syslog(level, "[%ld.%03ld] %s%s%s",
- ts.tv_sec, ts.tv_nsec / 1000000,
+ syslog(level, "[%lld.%03ld] %s%s%s",
+ (long long)ts.tv_sec, ts.tv_nsec / 1000000,
message_tag ? message_tag : "", message_tag ? " " : "",
buf);
}
diff -Naur linuxptp-2.0.org/unicast_service.c linuxptp-2.0/unicast_service.c
--- linuxptp-2.0.org/unicast_service.c 2018-08-12 23:08:43.000000000 +0200
+++ linuxptp-2.0/unicast_service.c 2020-05-29 21:36:23.170497415 +0200
@@ -209,9 +209,9 @@
tmo = now.tv_sec + req->durationField;
if (tmo > client->grant_tmo) {
client->grant_tmo = tmo;
- pr_debug("%s grant of 0x%x extended to %ld",
+ pr_debug("%s grant of 0x%x extended to %lld",
pid2str(&client->portIdentity),
- client->message_types, tmo);
+ client->message_types, (long long)tmo);
}
}
@@ -226,8 +226,8 @@
interval = pqueue_peek(p->unicast_service->queue);
if (interval) {
tmo.it_value = interval->tmo;
- pr_debug("arming timer tmo={%ld,%ld}",
- interval->tmo.tv_sec, interval->tmo.tv_nsec);
+ pr_debug("arming timer tmo={%lld,%ld}",
+ (long long)interval->tmo.tv_sec, interval->tmo.tv_nsec);
} else {
pr_debug("stopping unicast service timer");
}
@@ -499,8 +499,8 @@
while ((interval = pqueue_peek(p->unicast_service->queue)) != NULL) {
- pr_debug("peek i={2^%d} tmo={%ld,%ld}", interval->log_period,
- interval->tmo.tv_sec, interval->tmo.tv_nsec);
+ pr_debug("peek i={2^%d} tmo={%lld,%ld}", interval->log_period,
+ (long long)interval->tmo.tv_sec, interval->tmo.tv_nsec);
if (timespec_compare(&now, &interval->tmo) >= 0) {
break;
@@ -519,8 +519,8 @@
}
interval_increment(interval);
- pr_debug("next i={2^%d} tmo={%ld,%ld}", interval->log_period,
- interval->tmo.tv_sec, interval->tmo.tv_nsec);
+ pr_debug("next i={2^%d} tmo={%lld,%ld}", interval->log_period,
+ (long long)interval->tmo.tv_sec, interval->tmo.tv_nsec);
pqueue_insert(p->unicast_service->queue, interval);
}
diff -Naur linuxptp-2.0.org/unicast_client.c linuxptp-2.0/unicast_client.c
--- linuxptp-2.0.org/unicast_client.c 2018-08-12 23:08:43.000000000 +0200
+++ linuxptp-2.0/unicast_client.c 2020-06-02 11:13:06.922997844 +0200
@@ -216,7 +216,7 @@
long duration)
{
struct timespec now;
- long tmo;
+ time_t tmo;
if (clock_gettime(CLOCK_MONOTONIC, &now)) {
pr_err("clock_gettime failed: %m");
@@ -226,7 +226,7 @@
tmo = now.tv_sec + duration;
if (!master->renewal_tmo || tmo < master->renewal_tmo) {
master->renewal_tmo = tmo;
- pr_debug("port %d: renewal timeout at %ld", portnum(p), tmo);
+ pr_debug("port %d: renewal timeout at %lld", portnum(p), (long long)tmo);
}
}