Em sistemas operacionais Unix e tipo Unix, um soname é um campo de dados em um arquivo de objeto compartilhado.[1] O soname é uma cadeia de caracteres usada como um "nome lógico" que descreve a funcionalidade do objeto (normalmente, este nome é igual ao nome de arquivo da biblioteca, ou a um prefixo thereof, e.g. libc.so.6).

O soname é normalmente usado para fornecer informações de compatibilidade de versões anteriores. Por exemplo, se as versões 1.0 a 1.9 da biblioteca compartilhada libx fornecem interface idêntica, elas teriam todas os mesmos soname, e.g. libx.so.1. Se o sistema apenas inclui a versão 1.3 daquele objeto compartilhado, com o nome de arquivo libx.so.1.3, o campo soname do objeto compartilhado diz ao sistema que ele pode ser usado para preencher a dependência para um binário que foi originalmente compilado usando a versão 1.2.

Se a interface binária de aplicação (application binary interface - ABI) de uma biblioteca altera-se de forma que programas dependentes seriam quebrados, o soname seria incrementado, e.g. de libx.so.5 para libx.so.6.

O GNU linker usa o -hnome ou -soname=nome para especificar o campo de nome da biblioteca. Internamente, o linker criará um campo DT_SONAME e o populará com nome.

Dado qualquer arquivo de objeto compartilhado, pode-se usar o seguinte comando para obter a informação de dentro do arquivo de biblioteca usando objdump:

objdump -p libx.so.1.3 | grep SONAME

Ver também editar

Referências

Ligações externas editar


  Este artigo sobre Unix é um esboço. Você pode ajudar a Wikipédia expandindo-o.