Comment by microtonal

7 years ago

the same is not true for glibc, so any dynamically linked applications (i.e. most applications in the past 20 years) have very poor ABI compatibility

Other libraries, sure, but when it comes to glibc, this is false. glibc uses symbol versioning. E.g. a program that uses fork uses a versioned symbol:

    $ nm a.out | grep fork
                 U fork@@GLIBC_2.2.5

glibc typically ships with functions with the current ABI version and previous ABI versions, so glibc supports programs compiled against many older versions of glibc.

See:

https://developers.redhat.com/blog/2019/08/01/how-the-gnu-c-...