1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-19 02:29:40 +00:00

rtld: Print currently configured search path for libraries for -v

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
This commit is contained in:
Konstantin Belousov 2021-10-25 19:16:37 +03:00
parent 350fc36b4c
commit 40ddde6ef9

View File

@ -466,6 +466,13 @@ rtld_init_env_vars(char **env)
rtld_init_env_vars_for_prefix(env, ld_env_prefix);
}
static void
set_ld_elf_hints_path(void)
{
if (ld_elf_hints_path == NULL || strlen(ld_elf_hints_path) == 0)
ld_elf_hints_path = ld_elf_hints_default;
}
/*
* Main entry point for dynamic linking. The first argument is the
* stack pointer. The stack is expected to be laid out as described
@ -723,9 +730,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entry **objp)
ld_tracing = ld_get_env_var(LD_TRACE_LOADED_OBJECTS);
ld_utrace = ld_get_env_var(LD_UTRACE);
if ((ld_elf_hints_path == NULL) || strlen(ld_elf_hints_path) == 0)
ld_elf_hints_path = ld_elf_hints_default;
set_ld_elf_hints_path();
if (ld_debug != NULL && *ld_debug != '\0')
debug = 1;
dbg("%s is initialized, base address = %p", __progname,
@ -5972,16 +5977,23 @@ parse_args(char* argv[], int argc, bool *use_pathp, int *fdp,
mib[1] = HW_MACHINE;
sz = sizeof(machine);
sysctl(mib, nitems(mib), machine, &sz, NULL, 0);
ld_elf_hints_path = ld_get_env_var(
LD_ELF_HINTS_PATH);
set_ld_elf_hints_path();
rtld_printf(
"FreeBSD ld-elf.so.1 %s\n"
"FreeBSD_version %d\n"
"Default lib path %s\n"
"Hints lib path %s\n"
"Env prefix %s\n"
"Default hint file %s\n"
"Hint file %s\n"
"libmap file %s\n",
machine,
__FreeBSD_version, ld_standard_library_path,
gethints(false),
ld_env_prefix, ld_elf_hints_default,
ld_elf_hints_path,
ld_path_libmap_conf);
_exit(0);
} else {