Files
openwrt-packages/utils/pcsc-lite/patches/010-format.patch
Rosen Penev 7eef6920c5 pcsc-lite: fix bad formats
Fixes compilation with -Werror=format

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-07-14 21:08:27 +01:00

78 lines
3.3 KiB
Diff

From 2c82451650e0fe781cee6728c3ceef4cb3161562 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Sat, 29 Jun 2024 17:05:33 -0700
Subject: [PATCH] pcsc-lite: fix formats under musl
pthread_t is a pointer on musl libc.
../src/debuglog.c: In function 'log_line':
../src/debuglog.c:279:40: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'pthread_t' {aka 'struct __pthread *'} [-Werror=format=]
279 | printf("%s%.8d%s [" THREAD_FORMAT "] %s%s%s, %s%s%s\n",
| ^~~~~~~~~~~~
280 | time_pfx, delta, time_sfx, thread_id,
| ~~~~~~~~~
| |
| pthread_t {aka struct __pthread *}
../src/debuglog.c:268:26: note: format string is defined here
268 | #define THREAD_FORMAT "%lu"
| ~~^
| |
| long unsigned int
../src/debuglog.c:285:40: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'pthread_t' {aka 'struct __pthread *'} [-Werror=format=]
285 | printf("%s%.8d%s [" THREAD_FORMAT "] %s%s%s\n",
| ^~~~~~~~~~~~
286 | time_pfx, delta, time_sfx, thread_id,
| ~~~~~~~~~
| |
| pthread_t {aka struct __pthread *}
../src/debuglog.c:268:26: note: format string is defined here
268 | #define THREAD_FORMAT "%lu"
| ~~^
| |
| long unsigned int
cc1: some warnings being treated as errors
ninja: build stopped: subcommand failed.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
src/debuglog.c | 6 +++---
src/spy/libpcscspy.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
--- a/src/debuglog.c
+++ b/src/debuglog.c
@@ -262,10 +262,10 @@ static void log_line(const int priority,
break;
}
-#ifdef __APPLE__
-#define THREAD_FORMAT "%p"
-#else
+#ifdef __GLIBC__
#define THREAD_FORMAT "%lu"
+#else
+#define THREAD_FORMAT "%p"
#endif
if (rv_text)
{
--- a/src/spy/libpcscspy.c
+++ b/src/spy/libpcscspy.c
@@ -121,7 +121,7 @@ static void spy_line_direct(char *line)
if (Log_fd < 0)
return;
- snprintf(threadid, sizeof threadid, "%lX@", pthread_self());
+ snprintf(threadid, sizeof threadid, "%lX@", (unsigned long)pthread_self());
pthread_mutex_lock(&Log_fd_mutex);
r = write(Log_fd, threadid, strlen(threadid));
r = write(Log_fd, line, strlen(line));
@@ -150,7 +150,7 @@ static void spy_line(const char *fmt, ..
printf("libpcsc-spy: Buffer is too small!\n");
return;
}
- snprintf(threadid, sizeof threadid, "%lX@", pthread_self());
+ snprintf(threadid, sizeof threadid, "%lX@", (unsigned long)pthread_self());
pthread_mutex_lock(&Log_fd_mutex);
r = write(Log_fd, threadid, strlen(threadid));
r = write(Log_fd, line, size);