diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2021-04-07 22:02:33 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2021-04-10 14:33:34 +0000 |
commit | 4d9128da54f8f8e2a29190ffb18880c4f116a205 (patch) | |
tree | 25675e4ee65cfef2112401b9969a5e89b7e85995 /libexec/rtld-elf/rtld_lock.h | |
parent | 08bfbd43594b7642de0d2487550f36b0ee1eceba (diff) | |
download | src-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.h | 7 |
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 |