Panu Kalliokoski <[EMAIL PROTECTED]> writes: > Steve Langasek wrote: >> [...compiler ABI is part of library ABI...] > You're right; I'm just more worried about the more practical point > that if a library, when being built, cannot know which SONAME it > should install itself under (it would involve checking the version > of compiler used, right?),
I think you've answered your own question; it _can_ known which soname to use, and to discover it, it should check the version of the compiler. It might help if gcc had a --abi option which output an ABI version, so that it wasn't necessary for every library to know all about different gcc versions, but that would be a convenience, rather than a necessity. (I believe it's also necessary to incorporate information about the sonames - i.e. ABIs - of libraries that this library depends on it, into its soname too.) > changing SONAMES will be a real pain. Another possibility that > didn't occur to me was having gcc somehow set the SONAME itself - > but this seems to me somehow very ugly. Not changing sonames[1] when the ABI changes would also be incredibly painful; bits of software that people use and depend on would start crashing. [1] or implementing linker magic to create multiple soname spaces and using different search paths for each -- http://www.greenend.org.uk/rjk/