| 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); |
| } |
| } |
| |