From 3f3a56c9b07175f342f30c6271df24f783c892c6 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 28 Dec 2021 15:13:12 +0100 Subject: [PATCH] MINOR: compat: detect support for dl_iterate_phdr() We'll use this glibc function to dump loaded libs. It's been available since glibc-2.2.4, and as it requires dlpi headers defined in link.h, it implicitly relies on dlfcn, thus we condition it to USE_DL. Other operating systems or libc might have different dependencies so let's stick to the bare minimum for now. --- include/haproxy/compat.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/haproxy/compat.h b/include/haproxy/compat.h index f8afe1b5c..4e6cb7271 100644 --- a/include/haproxy/compat.h +++ b/include/haproxy/compat.h @@ -247,6 +247,11 @@ typedef struct { } empty_t; #endif #endif +/* dl_iterate_phdr() is available in GLIBC 2.2.4 and up. Let's round up to 2.3.x */ +#if defined(USE_DL) && defined(__GNU_LIBRARY__) && (__GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) +#define HA_HAVE_DL_ITERATE_PHDR +#endif + /* malloc_trim() can be very convenient to reclaim unused memory especially * from huge pattern files. It's available (and really usable) in glibc 2.8 and * above.