rtld: unstaticise lockinfo and obj_from_addr()

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D29633
This commit is contained in:
Konstantin Belousov 2021-04-10 15:30:59 +03:00
parent bae9fd0b33
commit 4d7f08c84b
4 changed files with 5 additions and 3 deletions

View File

@ -124,7 +124,6 @@ static Obj_Entry *load_object(const char *, int fd, const Obj_Entry *, int);
static void map_stacks_exec(RtldLockState *);
static int obj_disable_relro(Obj_Entry *);
static int obj_enforce_relro(Obj_Entry *);
static Obj_Entry *obj_from_addr(const void *);
static void objlist_call_fini(Objlist *, Obj_Entry *, RtldLockState *);
static void objlist_call_init(Objlist *, RtldLockState *);
static void objlist_clear(Objlist *);
@ -2688,7 +2687,7 @@ do_load_object(int fd, const char *name, char *path, struct stat *sbp,
return (NULL);
}
static Obj_Entry *
Obj_Entry *
obj_from_addr(const void *addr)
{
Obj_Entry *obj;

View File

@ -389,6 +389,7 @@ Obj_Entry *globallist_curr(const Obj_Entry *obj);
Obj_Entry *globallist_next(const Obj_Entry *obj);
void obj_free(Obj_Entry *);
Obj_Entry *obj_new(void);
Obj_Entry *obj_from_addr(const void *);
void _rtld_bind_start(void);
void *rtld_resolve_ifunc(const Obj_Entry *obj, const Elf_Sym *def);
void symlook_init(SymLook *, const char *);

View File

@ -192,7 +192,7 @@ def_thread_clr_flag(int mask)
/*
* Public interface exposed to the rest of the dynamic linker.
*/
static struct RtldLockInfo lockinfo;
struct RtldLockInfo lockinfo;
static struct RtldLockInfo deflockinfo;
static __inline int

View File

@ -63,6 +63,8 @@ extern rtld_lock_t rtld_bind_lock;
extern rtld_lock_t rtld_libc_lock;
extern rtld_lock_t rtld_phdr_lock;
extern struct RtldLockInfo lockinfo;
#define RTLD_LOCK_UNLOCKED 0
#define RTLD_LOCK_RLOCKED 1
#define RTLD_LOCK_WLOCKED 2