summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/time_t_maybe_long_long.patch135
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb1
2 files changed, 136 insertions, 0 deletions
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/time_t_maybe_long_long.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/time_t_maybe_long_long.patch
new file mode 100644
index 0000000000..af99d2b7f9
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/time_t_maybe_long_long.patch
@@ -0,0 +1,135 @@
1Fix printf if time_t is long long
2
3On some platforms, time_t has recently switched from "long" to "long
4long" [1]. For these platforms it is necessary to use "%lld" as printf
5format specifier because the ABI differs between "long" and "long long".
6
7I found no way for creating something similar to PRId64 for time_t. No
8idea how to determine whether it's "long" or "long long". So I cast
9everything to "long long" instead.
10
11[1] https://git.musl-libc.org/cgit/musl/commit/?id=38143339646a4ccce8afe298c34467767c899f51
12
13Upstream-Status: Accepted [next version is after 2.0]
14Upstream-Patch: https://github.com/richardcochran/linuxptp/commit/7de73fefc378cc42b9ed1115b3afa409d0250a48
15
16Signed-off-by: Christian Eggers <ceggers@arri.de>
17---
18diff -Naur linuxptp-2.0.org/phc_ctl.c linuxptp-2.0/phc_ctl.c
19--- linuxptp-2.0.org/phc_ctl.c 2018-08-12 23:08:43.000000000 +0200
20+++ linuxptp-2.0/phc_ctl.c 2020-05-29 21:34:26.166519963 +0200
21@@ -230,8 +230,8 @@
22 strerror(errno));
23 return -1;
24 } else {
25- pr_notice("set clock time to %ld.%09ld or %s",
26- ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
27+ pr_notice("set clock time to %lld.%09ld or %s",
28+ (long long)ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
29 }
30
31 return args_to_eat;
32@@ -248,8 +248,8 @@
33
34 return -1;
35 } else {
36- pr_notice("clock time is %ld.%09lu or %s",
37- ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
38+ pr_notice("clock time is %lld.%09lu or %s",
39+ (long long)ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
40 }
41
42 /* get operation does not require any arguments */
43diff -Naur linuxptp-2.0.org/print.c linuxptp-2.0/print.c
44--- linuxptp-2.0.org/print.c 2018-08-12 23:08:43.000000000 +0200
45+++ linuxptp-2.0/print.c 2020-05-29 21:34:26.166519963 +0200
46@@ -73,16 +73,16 @@
47
48 if (verbose) {
49 f = level >= LOG_NOTICE ? stdout : stderr;
50- fprintf(f, "%s[%ld.%03ld]: %s%s%s\n",
51+ fprintf(f, "%s[%lld.%03ld]: %s%s%s\n",
52 progname ? progname : "",
53- ts.tv_sec, ts.tv_nsec / 1000000,
54+ (long long)ts.tv_sec, ts.tv_nsec / 1000000,
55 message_tag ? message_tag : "", message_tag ? " " : "",
56 buf);
57 fflush(f);
58 }
59 if (use_syslog) {
60- syslog(level, "[%ld.%03ld] %s%s%s",
61- ts.tv_sec, ts.tv_nsec / 1000000,
62+ syslog(level, "[%lld.%03ld] %s%s%s",
63+ (long long)ts.tv_sec, ts.tv_nsec / 1000000,
64 message_tag ? message_tag : "", message_tag ? " " : "",
65 buf);
66 }
67diff -Naur linuxptp-2.0.org/unicast_service.c linuxptp-2.0/unicast_service.c
68--- linuxptp-2.0.org/unicast_service.c 2018-08-12 23:08:43.000000000 +0200
69+++ linuxptp-2.0/unicast_service.c 2020-05-29 21:36:23.170497415 +0200
70@@ -209,9 +209,9 @@
71 tmo = now.tv_sec + req->durationField;
72 if (tmo > client->grant_tmo) {
73 client->grant_tmo = tmo;
74- pr_debug("%s grant of 0x%x extended to %ld",
75+ pr_debug("%s grant of 0x%x extended to %lld",
76 pid2str(&client->portIdentity),
77- client->message_types, tmo);
78+ client->message_types, (long long)tmo);
79 }
80 }
81
82@@ -226,8 +226,8 @@
83 interval = pqueue_peek(p->unicast_service->queue);
84 if (interval) {
85 tmo.it_value = interval->tmo;
86- pr_debug("arming timer tmo={%ld,%ld}",
87- interval->tmo.tv_sec, interval->tmo.tv_nsec);
88+ pr_debug("arming timer tmo={%lld,%ld}",
89+ (long long)interval->tmo.tv_sec, interval->tmo.tv_nsec);
90 } else {
91 pr_debug("stopping unicast service timer");
92 }
93@@ -499,8 +499,8 @@
94
95 while ((interval = pqueue_peek(p->unicast_service->queue)) != NULL) {
96
97- pr_debug("peek i={2^%d} tmo={%ld,%ld}", interval->log_period,
98- interval->tmo.tv_sec, interval->tmo.tv_nsec);
99+ pr_debug("peek i={2^%d} tmo={%lld,%ld}", interval->log_period,
100+ (long long)interval->tmo.tv_sec, interval->tmo.tv_nsec);
101
102 if (timespec_compare(&now, &interval->tmo) >= 0) {
103 break;
104@@ -519,8 +519,8 @@
105 }
106
107 interval_increment(interval);
108- pr_debug("next i={2^%d} tmo={%ld,%ld}", interval->log_period,
109- interval->tmo.tv_sec, interval->tmo.tv_nsec);
110+ pr_debug("next i={2^%d} tmo={%lld,%ld}", interval->log_period,
111+ (long long)interval->tmo.tv_sec, interval->tmo.tv_nsec);
112 pqueue_insert(p->unicast_service->queue, interval);
113 }
114
115diff -Naur linuxptp-2.0.org/unicast_client.c linuxptp-2.0/unicast_client.c
116--- linuxptp-2.0.org/unicast_client.c 2018-08-12 23:08:43.000000000 +0200
117+++ linuxptp-2.0/unicast_client.c 2020-06-02 11:13:06.922997844 +0200
118@@ -216,7 +216,7 @@
119 long duration)
120 {
121 struct timespec now;
122- long tmo;
123+ time_t tmo;
124
125 if (clock_gettime(CLOCK_MONOTONIC, &now)) {
126 pr_err("clock_gettime failed: %m");
127@@ -226,7 +226,7 @@
128 tmo = now.tv_sec + duration;
129 if (!master->renewal_tmo || tmo < master->renewal_tmo) {
130 master->renewal_tmo = tmo;
131- pr_debug("port %d: renewal timeout at %ld", portnum(p), tmo);
132+ pr_debug("port %d: renewal timeout at %lld", portnum(p), (long long)tmo);
133 }
134 }
135
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb
index eb262d36b2..930c6673dc 100644
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb
@@ -5,6 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
5SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \ 5SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \
6 file://build-Allow-CC-and-prefix-to-be-overriden.patch \ 6 file://build-Allow-CC-and-prefix-to-be-overriden.patch \
7 file://no-incdefs-using-host-headers.patch \ 7 file://no-incdefs-using-host-headers.patch \
8 file://time_t_maybe_long_long.patch \
8 " 9 "
9 10
10SRC_URI[md5sum] = "d8bb7374943bb747db7786ac26f17f11" 11SRC_URI[md5sum] = "d8bb7374943bb747db7786ac26f17f11"