aboutsummaryrefslogtreecommitdiff
path: root/libexec/rtld-elf/rtld_lock.h
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-04-07 22:02:33 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-04-10 14:33:34 +0000
commit4d9128da54f8f8e2a29190ffb18880c4f116a205 (patch)
tree25675e4ee65cfef2112401b9969a5e89b7e85995 /libexec/rtld-elf/rtld_lock.h
parent08bfbd43594b7642de0d2487550f36b0ee1eceba (diff)
downloadsrc-4d9128da54f8f8e2a29190ffb18880c4f116a205.tar.gz
src-4d9128da54f8f8e2a29190ffb18880c4f116a205.zip
rtld: make dlerror() thread-local
PR: 95339 Discussed with: arichardson Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29633
Diffstat (limited to 'libexec/rtld-elf/rtld_lock.h')
-rw-r--r--libexec/rtld-elf/rtld_lock.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/libexec/rtld-elf/rtld_lock.h b/libexec/rtld-elf/rtld_lock.h
index 7a61a1a525e2..fdbdc9917075 100644
--- a/libexec/rtld-elf/rtld_lock.h
+++ b/libexec/rtld-elf/rtld_lock.h
@@ -31,7 +31,7 @@
#define _RTLD_LOCK_H_
#define RTLI_VERSION_ONE 0x01
-#define RTLI_VERSION 0x01
+#define RTLI_VERSION 0x02
#define MAX_RTLD_LOCKS 8
@@ -46,6 +46,9 @@ struct RtldLockInfo
int (*thread_set_flag)(int);
int (*thread_clr_flag)(int);
void (*at_fork)(void);
+ char *(*dlerror_loc)(void);
+ int *(*dlerror_seen)(void);
+ int dlerror_loc_sz;
};
#if defined(IN_RTLD) || defined(PTHREAD_KERNEL)
@@ -80,6 +83,8 @@ void lock_release(rtld_lock_t, RtldLockState *);
void lock_upgrade(rtld_lock_t, RtldLockState *);
void lock_restart_for_upgrade(RtldLockState *);
+void dlerror_dflt_init(void);
+
#endif /* IN_RTLD */
#endif