musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/include/dlfcn.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012年08月26日 21:09:26 -0400
committerRich Felker <dalias@aerifal.cx>2012年08月26日 21:09:26 -0400
commitf419bcb9dcfb6af60fbf1d58d92caf4b3d62a4da (patch)
treef9b1fc4c34d59ee892504c7259100e94140d3e98 /include/dlfcn.h
parent9bff7c133e73ecfb200614d7a7d386a164a1a61f (diff)
downloadmusl-f419bcb9dcfb6af60fbf1d58d92caf4b3d62a4da.tar.gz
dladdr support for dynamic linker (nonstandard extension)
based on patches submitted by boris brezillon. this commit also fixes the issue whereby the main application and libc don't have the address ranges of their mappings stored, which was theoretically a problem for RTLD_NEXT support in dlsym; it didn't actually matter because libc never calls dlsym, and it seemed to be doing the right thing (by chance) for symbols in the main program as well.
Diffstat (limited to 'include/dlfcn.h')
-rw-r--r--include/dlfcn.h 10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/dlfcn.h b/include/dlfcn.h
index dea74c7d..e98c8ca6 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -18,6 +18,16 @@ char *dlerror(void);
void *dlopen(const char *, int);
void *dlsym(void *, const char *);
+#ifdef _GNU_SOURCE
+typedef struct {
+ const char *dli_fname;
+ void *dli_fbase;
+ const char *dli_sname;
+ void *dli_saddr;
+} Dl_info;
+int dladdr(void *, Dl_info *);
+#endif
+
#ifdef __cplusplus
}
#endif
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月02日 13:47:09 +0000

AltStyle によって変換されたページ (->オリジナル) /