Hi Ilyam

On Mon, Feb 06, 2023 at 11:25:03PM +0100, Ilya Leoshkevich via Elfutils-devel 
wrote:
> clang complains:
> 
>     In file included from debuginfod-client.c:38:
>     ./../debuginfod/debuginfod.h:47:34: error: redefinition of typedef 
> 'debuginfod_client' is a C11 feature [-Werror,-Wtypedef-redefinition]
>     typedef struct debuginfod_client debuginfod_client;
>                                      ^
>     ./libdwfl.h:53:34: note: previous definition is here
>     typedef struct debuginfod_client debuginfod_client;
>                                      ^
> 
> config/eu.am specifies -std=gnu99, and upgrading just for this is an
> overkill. So is #including "debuginfod.h", since we don't know if users
> even have it. So fix by using "struct debuginfod_client" instead. This
> may break the clients that use dwfl_get_debuginfod_client() without
> #including "debuginfod.h", but such cases should be rare.

This was recently reported by someone else and fixed differently:

commit 45576ab5f24cd39669a418fa8e005b4d04f8e9ca
Author: Mark Wielaard <m...@klomp.org>
Date:   Mon Feb 6 10:21:58 2023 +0100

    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 <m...@klomp.org>

Does that work for you?

Thanks,

Mark

Reply via email to