Não. A ligação dinâmica não faz parte da libc no sentido de /lib/libc.so.6
, é a funcionalidade do /lib/ld.so
(ambos têm um nome de arquivo e caminho um pouco alterados nos últimos anos, mas a essência é a mesma ).
Sim, ld.so
, o vinculador dinâmico também é uma biblioteca compartilhada. Carregá-lo é a primeira coisa que a maioria dos linux binários faz, ainda antes de chamar sua função main()
.
Embora ld.so
seja um arquivo diferente da libc, ele também faz parte da distribuição gnu libc em suas formas binária de origem e compilada.
Vincular no ld.so
é proveniente de um pedaço de código codificado, dado pelo gcc para cada binário ELF do linux. Seu caminho também é codificado no binário. Você não pode mudar isso facilmente, embora seja possível se for necessário.
Se você substituir libc.so.6
por uma configuração LD_LIBRARY_PATH
alternativa, essa biblioteca substituirá a libc orderntly pela sua própria, mas ela ainda será carregada pelo ld.so
normal.
Assim, a resposta à sua pergunta é "sim, mas ...".