aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-04-02 21:51:25 +0000
committerLaurent Bercot <ska@appnovation.com>2025-04-02 21:51:25 +0000
commit590df499cc7544e34c65b871e592725370d45d9c (patch)
tree02f116685547cff907d19b5440c6b63362e7c4a4
parentb2901a686420132a4998e5f202b207ffe0857674 (diff)
downloadskalibs-590df499cc7544e34c65b871e592725370d45d9c.tar.gz
Add dladdr sysdep
Signed-off-by: Laurent Bercot <ska@appnovation.com>
-rwxr-xr-xconfigure1
-rw-r--r--src/sysdeps/trydladdr.c33
2 files changed, 34 insertions, 0 deletions
diff --git a/configure b/configure
index caa7bbd..c063946 100755
--- a/configure
+++ b/configure
@@ -693,6 +693,7 @@ choose cl getauxval 'getauxval()'
choose cl kernprocpathname 'the KERN_PROC_PATHNAME sysctl'
choose cl _nsgetexecutablepath '_NSGetExecutablePath()'
choose cl getexecname 'getexecname()'
+choose cl dladdr 'dladdr()'
# Here are the evil irreducible run-time sysdeps.
choose clr devurandom '/dev/urandom'
diff --git a/src/sysdeps/trydladdr.c b/src/sysdeps/trydladdr.c
new file mode 100644
index 0000000..3240785
--- /dev/null
+++ b/src/sysdeps/trydladdr.c
@@ -0,0 +1,33 @@
+/* ISC license. */
+
+#undef _POSIX_C_SOURCE
+#undef _XOPEN_SOURCE
+
+#ifndef __EXTENSIONS__
+#define __EXTENSIONS__
+#endif
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#ifndef _BSD_SOURCE
+#define _BSD_SOURCE
+#endif
+#ifndef _DEFAULT_SOURCE
+#define _DEFAULT_SOURCE
+#endif
+#ifndef _NETBSD_SOURCE
+#define _NETBSD_SOURCE
+#endif
+#ifndef _INCOMPLETE_XOPEN_C063
+#define _INCOMPLETE_XOPEN_C063
+#endif
+
+#include <dlfcn.h>
+
+int main (void)
+{
+ Dl_info info ;
+ if (!dladdr(&main, &info)) return 1 ;
+ if (!info.dli_fname) return 1 ;
+ return 0 ;
+}