From 45576ab5f24cd39669a418fa8e005b4d04f8e9ca Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 6 Feb 2023 10:21:58 +0100 Subject: debuginfod: Make sure there is only one typedef for debuginfod_client Both debuginfod.h and libdwfl.h have a simple typedef for struct debuginfod_client. Some compilers pedantically warn when including both headers that such typedefs are only officially supported in C11. So guard them with _ELFUTILS_DEBUGINFOD_CLIENT_TYPEDEF to make them happy. https://sourceware.org/bugzilla/show_bug.cgi?id=30077 Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 5 +++++ debuginfod/debuginfod.h.in | 3 +++ libdwfl/ChangeLog | 5 +++++ libdwfl/libdwfl.h | 3 +++ 4 files changed, 16 insertions(+) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index fc44e039..fe368c48 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2023-02-06 Mark Wielaard + + * debuginfod.h.in: Guard debuginfod_client typedef with + _ELFUTILS_DEBUGINFOD_CLIENT_TYPEDEF. + 2023-01-10 Mark Wielaard * debuginfod-client.c (debuginfod_query_server): Use diff --git a/debuginfod/debuginfod.h.in b/debuginfod/debuginfod.h.in index 69c9efd2..4a256ba9 100644 --- a/debuginfod/debuginfod.h.in +++ b/debuginfod/debuginfod.h.in @@ -44,7 +44,10 @@ #define DEBUGINFOD_SONAME "@LIBDEBUGINFOD_SONAME@" /* Handle for debuginfod-client connection. */ +#ifndef _ELFUTILS_DEBUGINFOD_CLIENT_TYPEDEF typedef struct debuginfod_client debuginfod_client; +#define _ELFUTILS_DEBUGINFOD_CLIENT_TYPEDEF 1 +#endif #ifdef __cplusplus extern "C" { diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 9cd2f03c..daef2828 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,8 @@ +2023-02-06 Mark Wielaard + + * libdwfl.h: Guard debuginfod_client typedef with + _ELFUTILS_DEBUGINFOD_CLIENT_TYPEDEF. + 2022-12-21 Mark Wielaard * core-file.c: Don't undef _. diff --git a/libdwfl/libdwfl.h b/libdwfl/libdwfl.h index 9114f7f0..49ad6664 100644 --- a/libdwfl/libdwfl.h +++ b/libdwfl/libdwfl.h @@ -50,7 +50,10 @@ typedef struct Dwfl_Thread Dwfl_Thread; typedef struct Dwfl_Frame Dwfl_Frame; /* Handle for debuginfod-client connection. */ +#ifndef _ELFUTILS_DEBUGINFOD_CLIENT_TYPEDEF typedef struct debuginfod_client debuginfod_client; +#define _ELFUTILS_DEBUGINFOD_CLIENT_TYPEDEF 1 +#endif /* Callbacks. */ typedef struct -- cgit v1.2.3