Hi,
A paragraph in libtool's info manual section 7.2 ("Libtool's versioning system") got me thinking: The dynamic linker is guaranteed that if a library supports _every_ interface number between FIRST-INTERFACE and LAST-INTERFACE, then the program can be relinked against that library. Random thought. Let there be a system which has a libfoo.so that provides interfaces 14-17. Depending on the chosen OS, the library will usually be present on Linux as libfoo.so.14 (as a symlink to libfoo.so.14.3.0), or as libfoo.so.17 on one of the BSDs (I forget which, apologies). Now let there be a program which exclusively uses the v15 interface. On Linux, the program would be linked against libfoo.so.14 according to `ldd`, or libfoo.so.17 on BSD. Now let there be an update of libfoo whereby the supported interfaces increase/decrease, e.g. 15-19. This would mean that the Linux/BSD environments gets a new file, libfoo.so.15.4 and libfoo.so.19, respectively. Since libfoo.so.14/17, as recorded in the program headers, cannot be found anymore, things break. That somehow does not go in line with what the libtool manual praises ("can be relinked"). Or, our dynamic loaders just suck. Comments? _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool