rtld: make ld_get_env_var() usable for all rtld source files

(cherry picked from commit 47315d6d3562111883142bb09320d35f05d34a58)
This commit is contained in:
Konstantin Belousov 2024-07-17 06:59:24 +03:00
parent f0d4329dc2
commit da32a0616b
2 changed files with 28 additions and 27 deletions

View file

@ -344,32 +344,6 @@ ld_utrace_log(int event, void *handle, void *mapbase, size_t mapsize,
utrace(&ut, sizeof(ut));
}
enum {
LD_BIND_NOW = 0,
LD_PRELOAD,
LD_LIBMAP,
LD_LIBRARY_PATH,
LD_LIBRARY_PATH_FDS,
LD_LIBMAP_DISABLE,
LD_BIND_NOT,
LD_DEBUG,
LD_ELF_HINTS_PATH,
LD_LOADFLTR,
LD_LIBRARY_PATH_RPATH,
LD_PRELOAD_FDS,
LD_DYNAMIC_WEAK,
LD_TRACE_LOADED_OBJECTS,
LD_UTRACE,
LD_DUMP_REL_PRE,
LD_DUMP_REL_POST,
LD_TRACE_LOADED_OBJECTS_PROGNAME,
LD_TRACE_LOADED_OBJECTS_FMT1,
LD_TRACE_LOADED_OBJECTS_FMT2,
LD_TRACE_LOADED_OBJECTS_ALL,
LD_SHOW_AUXV,
LD_STATIC_TLS_EXTRA,
};
struct ld_env_var_desc {
const char * const n;
const char *val;
@ -404,7 +378,7 @@ static struct ld_env_var_desc ld_env_vars[] = {
LD_ENV_DESC(STATIC_TLS_EXTRA, false),
};
static const char *
const char *
ld_get_env_var(int idx)
{
return (ld_env_vars[idx].val);

View file

@ -359,6 +359,32 @@ typedef struct Struct_SymLook {
struct Struct_RtldLockState *lockstate;
} SymLook;
enum {
LD_BIND_NOW = 0,
LD_PRELOAD,
LD_LIBMAP,
LD_LIBRARY_PATH,
LD_LIBRARY_PATH_FDS,
LD_LIBMAP_DISABLE,
LD_BIND_NOT,
LD_DEBUG,
LD_ELF_HINTS_PATH,
LD_LOADFLTR,
LD_LIBRARY_PATH_RPATH,
LD_PRELOAD_FDS,
LD_DYNAMIC_WEAK,
LD_TRACE_LOADED_OBJECTS,
LD_UTRACE,
LD_DUMP_REL_PRE,
LD_DUMP_REL_POST,
LD_TRACE_LOADED_OBJECTS_PROGNAME,
LD_TRACE_LOADED_OBJECTS_FMT1,
LD_TRACE_LOADED_OBJECTS_FMT2,
LD_TRACE_LOADED_OBJECTS_ALL,
LD_SHOW_AUXV,
LD_STATIC_TLS_EXTRA,
};
void _rtld_error(const char *, ...) __printflike(1, 2) __exported;
void rtld_die(void) __dead2;
const char *rtld_strerror(int);
@ -380,6 +406,7 @@ void dump_Elf_Rela(Obj_Entry *, const Elf_Rela *, u_long);
/*
* Function declarations.
*/
const char *ld_get_env_var(int idx);
uintptr_t rtld_round_page(uintptr_t);
uintptr_t rtld_trunc_page(uintptr_t);
Elf32_Word elf_hash(const char *);