The change introduced in [1] is most annoying; it means that gnatmake now thinks it knows better than I do what soname my libraries should have. This is wrong. As the maintainer of multiple libraries in Debian over multiple versions and many years, I know better and I insist that gnat honour *exactly* the soname that I specify in project files (and comply with the Law of Least Astonishment in the process).
[1] http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01091.html To aggravate the problem, the behavior depends on the platform, which means that a project file will produce libraries with different sonames on different platforms! This makes it very difficult to maintain libraries on multiple platforms and ensure the sonames change whenever we want them to. Also, the documentation in 4.4 does not mention the change in behaviour; the documentation is therefore misleading (hence the severity minor instead of enhancement). I am going to patch Debian's gnat-4.4 to revert to the old behaviour. I am curious to know your rationale behind the change because right now I can see no good reason for it. If this rationale is convincing, perhaps the best would be to make the behaviour controllable from within the project file, i.e. project Lib is package Linker is for Library_Major_Minor_Id_Supported use False; end Linker; end Lib; Please consider this last part a request for enhancement. -- Summary: gnatmake does not honour project files' Library_Version exactly Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ludovic at ludovic-brenta dot org GCC build triplet: pc=linux-gnu GCC host triplet: pc-linux-gnu GCC target triplet: pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40025