Нет. Динамическое связывание не является частью libc в смысле /lib/libc.so.6
, это функциональность /lib/ld.so
(оба из них немного изменились имя файла и путь к нему за последние годы, но суть та же).
Да, ld.so
, динамический компоновщик также является разделяемой библиотекой. Загрузка - это первое, что делает большинство бинарных файлов Linux, еще до вызова функции main ()
.
Хотя ld.so
является другим файлом libc, он также является частью дистрибутива GNU libc как в исходной, так и в скомпилированной двоичной форме.
Связывание в ld.so
происходит от жестко запрограммированного фрагмента кода, предоставленного gcc для каждого двоичного файла ELF Linux. Его путь также жестко запрограммирован в двоичном файле. Вы не можете это легко изменить, хотя это возможно, если это необходимо.
Если вы замените libc.so.6
альтернативным параметром LD_LIBRARY_PATH
, эта библиотека заменит упорядоченную libc вашей собственной, но она все равно будет загружена обычным ld.so
.
Таким образом, ответ на ваш вопрос - «да, но ...».