24 lines
879 B
Diff
24 lines
879 B
Diff
|
commit 62af9c83f9ed2b25e0061798e29e3cccfce5fbdc
|
||
|
Author: Willy Tarreau <w@1wt.eu>
|
||
|
Date: Tue Mar 10 07:51:48 2020 +0100
|
||
|
|
||
|
BUILD: make dladdr1 depend on glibc version and not __USE_GNU
|
||
|
|
||
|
Technically speaking the call was implemented in glibc 2.3 so we must
|
||
|
rely on this and not on __USE_GNU which is an internal define of glibc
|
||
|
to track use of GNU_SOURCE.
|
||
|
|
||
|
diff --git a/src/standard.c b/src/standard.c
|
||
|
index e0ea8328e..d16eebfea 100644
|
||
|
--- a/src/standard.c
|
||
|
+++ b/src/standard.c
|
||
|
@@ -4350,7 +4350,7 @@ void debug_hexdump(FILE *out, const char *pfx, const char *buf,
|
||
|
static int dladdr_and_size(const void *addr, Dl_info *dli, size_t *size)
|
||
|
{
|
||
|
int ret;
|
||
|
-#ifdef __USE_GNU // most detailed one
|
||
|
+#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) // most detailed one
|
||
|
const ElfW(Sym) *sym;
|
||
|
|
||
|
ret = dladdr1(addr, dli, (void **)&sym, RTLD_DL_SYMENT);
|