São dependências porque o binário as lista como dependências, como entradas "NECESSÁRIAS" em sua seção dinâmica:
readelf -d /usr/bin/gcc
mostrará as bibliotecas gcc
solicitações.
Eles não são usados porque gcc
não precisa de nenhum dos símbolos exportados pelas bibliotecas em questão. No caso de ld-linux-x86-64.so.2
, isso é normal, porque é o intérprete. No caso de libm
, isso geralmente resulta de um -lm
incondicional, sem correspondente opções de vinculação para descartar bibliotecas não usadas .
Em muitos casos, isso resulta da granularidade limitada das ferramentas de construção; em particular, vincular por exemplo, as bibliotecas do GNOME tende a resultar em longas listas de bibliotecas, que nem sempre são necessárias como dependências diretas (mas acabam na árvore de dependências de bibliotecas). Normalmente, é melhor tentar evitar dependências não utilizadas para simplificar o processamento de dependências (tanto pelo vinculador de tempo de execução quanto pelas ferramentas de gerenciamento de pacotes). É seguro ignorar libm
, já que isso está vinculado a libc
.