wiz> Are these headers expected to conflict, and the bug is in the program wiz> including both? In this case, which header should it include?
The <gelf.h> and <libelf.h> headers should suffice in themselves - they don't need OS-specific #includes. Perhaps the sense of the check needs to be reversed? --- pkg_elf.c-- 2025-02-10 11:20:10.073896326 +0000 +++ pkg_elf.c 2025-02-10 11:20:04.688882272 +0000 @@ -48,7 +48,7 @@ #include <fcntl.h> #include <gelf.h> #include <libgen.h> -#if defined(HAVE_LINK_H) && !defined(__DragonFly__) && defined(HAVE_LIBELF_H) +#if defined(HAVE_LINK_H) && !defined(__DragonFly__) && !defined(HAVE_LIBELF_H) #include <link.h> #endif #include <paths.h> In fact <gelf.h> brings in <libelf.h>, so the independent inclusion of <libelf.h> isn't needed either. So the following patch would be even better. --- pkg_elf.c-- 2025-02-10 11:20:10.073896326 +0000 +++ pkg_elf.c 2025-02-10 11:37:08.706097879 +0000 @@ -48,16 +48,13 @@ #include <fcntl.h> #include <gelf.h> #include <libgen.h> -#if defined(HAVE_LINK_H) && !defined(__DragonFly__) && defined(HAVE_LIBELF_H) +#if defined(HAVE_LINK_H) && !defined(__DragonFly__) && !defined(HAVE_LIBELF_H) #include <link.h> #endif #include <paths.h> #include <stdbool.h> #include <string.h> #include <unistd.h> -#ifdef HAVE_LIBELF -#include <libelf.h> -#endif #include <bsd_compat.h> Regards, Joseph Koshy