From Bugzilla Helper: User-Agent: Mozilla/5.0 Galeon/1.2.3 (X11; Linux i686; U;) Gecko/20020523 Description of problem: i have a program compiled on redhat 7.2, and linked with libbfd. It won't run on 7.3 without a recompile due to a bad soname, or incompatible libbfd, one or the other. I get the following error message: ./eview: error while loading shared libraries: libbfd-2.11.90.0.8.so: cannot open shared object file: No such file or directory Indeed the libbfd is a different version in redhat 7.3: libbfd-2.11.93.0.2.so However, the major and minor version are the same. This, in unix tradition, means compatible. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.link program on red hat 7.2 to libbfd 2.copy to red hat 7.3 platform 3.try to run it Actual Results: fails to dynamically link Expected Results: should link Additional info:
Nope. As you can see, the version is not after .so, like libbfd.so.2.11.93.0.2, but before, which means the whole version is part of the SONAME (and for good reason, libbfd is changing every few days and doesn't maintain binary compatibility). In fact it is shared only so that it can be shared between as, ld, nm, objdump, ar, strip, ... which all come from the same package. If you need to use bfd in some application, you need to link it statically in (e.g. -Bstatic -lbfd -Bdynamic) or be prepared for recompiling it every time binutils are upgraded.