Skip to content

Commit

Permalink
pcsc-lite: fix formats under musl
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
neheb authored and LudovicRousseau committed Jun 30, 2024
1 parent 16ae2be commit 2c82451
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 3 additions & 3 deletions src/debuglog.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,10 +262,10 @@ static void log_line(const int priority, const char *DebugBuffer,
break;
}

#ifdef __APPLE__
#define THREAD_FORMAT "%p"
#else
#ifdef __GLIBC__
#define THREAD_FORMAT "%lu"
#else
#define THREAD_FORMAT "%p"
#endif
if (rv_text)
{
Expand Down
4 changes: 2 additions & 2 deletions src/spy/libpcscspy.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 2c82451

Please sign in to comment.