pps-tools: backport a patch to fix prints

Patch reported issue observed on ARM32 based HW during bump
from Langdale to Scarthgap

Signed-off-by: Martin Siegumfeldt <mns@gomspace.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Martin Siegumfeldt
2024-12-11 07:42:18 +01:00
committed by Khem Raj
parent 1f4b413ebe
commit 28ba66a2a4
2 changed files with 62 additions and 1 deletions
@@ -0,0 +1,59 @@
From 6faed0a3b41fba4619fe4598a2834dfb4d2be7e4 Mon Sep 17 00:00:00 2001
From: Matt Merhar <mattmerhar@protonmail.com>
Date: Fri, 10 Nov 2023 17:21:51 -0500
Subject: [PATCH] Use %lld in printf for 64-bit time_t
musl 1.2.0 switched to use 64-bit time_t everywhere, including 32-bit
architectures, causing garbage values to be printed from ppswatch and
ppstest.
Use the correct format string for the affected printf statements and
explicitly cast to long long to avoid potential compatibility issues
with 32-bit glibc.
Upstream-Status: Backport [https://github.com/redlab-i/pps-tools/commit/6faed0a3b41fba4619fe4598a2834dfb4d2be7e4]
Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
---
ppstest.c | 8 ++++----
ppswatch.c | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/ppstest.c b/ppstest.c
index 0370794..c375a09 100644
--- a/ppstest.c
+++ b/ppstest.c
@@ -110,13 +110,13 @@ retry:
}
printf("source %d - "
- "assert %ld.%09ld, sequence: %ld - "
- "clear %ld.%09ld, sequence: %ld\n",
+ "assert %lld.%09ld, sequence: %ld - "
+ "clear %lld.%09ld, sequence: %ld\n",
i,
- infobuf.assert_timestamp.tv_sec,
+ (long long)infobuf.assert_timestamp.tv_sec,
infobuf.assert_timestamp.tv_nsec,
infobuf.assert_sequence,
- infobuf.clear_timestamp.tv_sec,
+ (long long)infobuf.clear_timestamp.tv_sec,
infobuf.clear_timestamp.tv_nsec, infobuf.clear_sequence);
fflush(stdout);
diff --git a/ppswatch.c b/ppswatch.c
index 5c6202b..15d7a77 100644
--- a/ppswatch.c
+++ b/ppswatch.c
@@ -148,7 +148,7 @@ int fetch_source(pps_handle_t handle, int avail_mode)
if (max_divergence < div)
max_divergence = div;
if (div >= margin) {
- printf("timestamp: %ld, sequence: %ld, offset: % 6ld\n", ts.tv_sec, seq, ts.tv_nsec);
+ printf("timestamp: %lld, sequence: %ld, offset: % 6ld\n", (long long)ts.tv_sec, seq, ts.tv_nsec);
fflush(stdout);
overflows++;
curr_unsync++;
--
2.47.1
@@ -5,7 +5,9 @@ LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
SRCREV = "c50cb7183e252b47308fa22f420e0a877277aa29"
SRC_URI = "git://github.com/ago/pps-tools.git;branch=master;protocol=https"
SRC_URI = "git://github.com/ago/pps-tools.git;branch=master;protocol=https \
file://0001-Use-lld-in-printf-for-64-bit-time_t.patch \
"
S = "${WORKDIR}/git"