1From 6faed0a3b41fba4619fe4598a2834dfb4d2be7e4 Mon Sep 17 00:00:00 2001
2From: Matt Merhar <mattmerhar@protonmail.com>
3Date: Fri, 10 Nov 2023 17:21:51 -0500
4Subject: [PATCH] Use %lld in printf for 64-bit time_t
5
6musl 1.2.0 switched to use 64-bit time_t everywhere, including 32-bit
7architectures, causing garbage values to be printed from ppswatch and
8ppstest.
9
10Use the correct format string for the affected printf statements and
11explicitly cast to long long to avoid potential compatibility issues
12with 32-bit glibc.
13
14Upstream-Status: Backport [https://github.com/redlab-i/pps-tools/commit/6faed0a3b41fba4619fe4598a2834dfb4d2be7e4]
15
16Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
17---
18 ppstest.c  | 8 ++++----
19 ppswatch.c | 2 +-
20 2 files changed, 5 insertions(+), 5 deletions(-)
21
22diff --git a/ppstest.c b/ppstest.c
23index 0370794..c375a09 100644
24--- a/ppstest.c
25+++ b/ppstest.c
26@@ -110,13 +110,13 @@ retry:
27 	}
28
29 	printf("source %d - "
30-	       "assert %ld.%09ld, sequence: %ld - "
31-	       "clear  %ld.%09ld, sequence: %ld\n",
32+	       "assert %lld.%09ld, sequence: %ld - "
33+	       "clear  %lld.%09ld, sequence: %ld\n",
34 	       i,
35-	       infobuf.assert_timestamp.tv_sec,
36+	       (long long)infobuf.assert_timestamp.tv_sec,
37 	       infobuf.assert_timestamp.tv_nsec,
38 	       infobuf.assert_sequence,
39-	       infobuf.clear_timestamp.tv_sec,
40+	       (long long)infobuf.clear_timestamp.tv_sec,
41 	       infobuf.clear_timestamp.tv_nsec, infobuf.clear_sequence);
42 	fflush(stdout);
43
44diff --git a/ppswatch.c b/ppswatch.c
45index 5c6202b..15d7a77 100644
46--- a/ppswatch.c
47+++ b/ppswatch.c
48@@ -148,7 +148,7 @@ int fetch_source(pps_handle_t handle, int avail_mode)
49 	if (max_divergence < div)
50 		max_divergence = div;
51 	if (div >= margin) {
52-		printf("timestamp: %ld, sequence: %ld, offset: % 6ld\n", ts.tv_sec, seq, ts.tv_nsec);
53+		printf("timestamp: %lld, sequence: %ld, offset: % 6ld\n", (long long)ts.tv_sec, seq, ts.tv_nsec);
54 		fflush(stdout);
55 		overflows++;
56 		curr_unsync++;
57--
582.47.1
59
60