The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=40ddde6ef9f38fd238fd1d84d77750f96c96a157

commit 40ddde6ef9f38fd238fd1d84d77750f96c96a157
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2021-10-25 16:16:37 +0000
Commit:     Konstantin Belousov <k...@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 {

Reply via email to