Soname

In Unix and Unix-like operating systems, a soname is a field of data in a shared object file. The soname is a string, which is used as a "logical name" describing the functionality of the object. Typically, that name is equal to the filename of the library, or to a prefix thereof, e.g..

Name
The soname is often used to provide version backwards-compatibility information. For instance, if versions 1.0 through 1.9 of the shared library  provide identical interfaces, they would all have the same soname, e.g.  . If the system only includes version 1.3 of that shared object, with filename , the soname field of the shared object tells the system that it can be used to fill the dependency for a binary which was originally compiled using version 1.2.

If the application binary interface (ABI) of a library changes in a backward-incompatible way, the soname would be incremented, e.g. from  to.

The GNU linker uses the  or   to specify the library name field. Internally, the linker will create a  field and populate it with.

Given any shared object file, one can use the following command to get the information from within the library file using objdump: