.so apropriada que você está usando. Deve haver um
link como libc.so para cada biblioteca como
libc.so.5.2.18.
Com um compilador a.out (veja P8.2. O que é esse tal de
ELF?) a causa mais comum do problema é o flag -g passado ao
linkeditor (compilador). Ele produz um programa que é "linkado" estaticamente
(além de informações para depuração no arquivo de saída), i.e. um que inclui
uma cópia da bilioteca C, ao invés de usar uma copia ligada dinamicamente.
Outros fatores a serem investigados são -O e
-O2 que habilitam otimização (veja documentação do GCC) e
-s (ou o comando strip) que remove informações de
símbolos do binário resultante (tornando a depuração totalmente impossível).
Você pode querer usar -N em executáveis muito pequenos
(menores que 8K com a opcção -N), mas você não deve usá-lo a
menos que esteja ciente das implicações sobre a performance, e
definitivamente jamais em daemons.