git: 40ddde6ef9f3 - main - rtld: Print currently configured search path for libraries for -v
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 25 Oct 2021 17:47:56 UTC
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=40ddde6ef9f38fd238fd1d84d77750f96c96a157
commit 40ddde6ef9f38fd238fd1d84d77750f96c96a157
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2021-10-25 16:16:37 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2021-10-25 17:41:53 +0000
rtld: Print currently configured search path for libraries for -v
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
---
libexec/rtld-elf/rtld.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 8b1f84c6901a..05afe5f42c3e 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -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 {