Назад | Перейти на главную страницу

Почему ldd преобразует libc.so в ld.so?

На моей машине ldd показывает libc.so.6 решиться на /lib64/ld-linux-x86-64.so.2

ldd binary
  /lib64/ld-linux-x86-64.so.2 (0x564329071000)
  libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x564329071000)
  libz.so.1 => /lib/libz.so.1 (0x7f7b1e631000)
  libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x564329071000)

я думал lddразрешение было основано исключительно на имени, поэтому поиск libc.so.6 (возможно с дополнительными версиями) в ld путь поиска. Но я вижу, что это решает ld библиотека, которая имеет совершенно другое название.

На другой машине он ведет себя так, как ожидалось:

ldd binary
  linux-vdso.so.1 =>  (0x00007ffd467d4000)
  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffb22055000)
  libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ffb21e3b000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffb21a70000)
  /lib64/ld-linux-x86-64.so.2 (0x000055a9661b0000)