mirror of
git://sourceware.org/git/glibc.git
synced 2024-12-03 04:01:43 +08:00
elf: Restore how vDSO dependency is printed with LD_TRACE_LOADED_OBJECTS (BZ #29539)
The d7703d3176
changed how vDSO like
dependencies are printed, instead of just the name and address it
follows other libraries mode and prints 'name => path'.
Unfortunately, this broke some ldd consumer that uses the output to
filter out the program's dependencies. For instance CMake
bundleutilities module [1], where GetPrequirite uses the regex to filter
out 'name => path' [2].
This patch restore the previous way to print just the name and the
mapping address.
Checked on x86_64-linux-gnu.
[1] https://github.com/Kitware/CMake/tree/master/Tests/BundleUtilities
[2] https://github.com/Kitware/CMake/blob/master/Modules/GetPrerequisites.cmake#L733
Reviewed-by: Florian Weimer <fweimer@redhat.com>
This commit is contained in:
parent
8cd559cf5a
commit
1e903124ce
@ -2122,6 +2122,12 @@ dl_main (const ElfW(Phdr) *phdr,
|
||||
if (l->l_faked)
|
||||
/* The library was not found. */
|
||||
_dl_printf ("\t%s => not found\n", l->l_libname->name);
|
||||
else if (strcmp (l->l_libname->name, l->l_name) == 0)
|
||||
/* Print vDSO like libraries without duplicate name. Some
|
||||
consumers depend of this format. */
|
||||
_dl_printf ("\t%s (0x%0*Zx)\n", l->l_libname->name,
|
||||
(int) sizeof l->l_map_start * 2,
|
||||
(size_t) l->l_map_start);
|
||||
else
|
||||
_dl_printf ("\t%s => %s (0x%0*Zx)\n",
|
||||
DSO_FILENAME (l->l_libname->name),
|
||||
|
Loading…
Reference in New Issue
Block a user