They also may introduce new features, change the effect of existing ones, or remove old ones. So, we introduce library versioning. One of the major differences between ELF and a.out format is in building shared libraries. We look at ELF first, because it's simpler. Because of its increased flexibility over the older a.out format that Linux was using, the GCC and C library developers decided last year to move to using ELF as the Linux standard binary format also.
Users can add new sections to object-files if they wish to capture new data.
One of the major boons in using the ELF access library is that you will never need to look at an ELF file qua. The link from libfoo.so.1 to libfoo.so.1.0 is kept up to date by ldconfig , which on most systems is run as part of the boot process. The libfoo.so link must be updated manually. If you aren't , you're setting yourself up to have all kinds of weird things happen at a later date. Don't say you weren't warned.