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

Reply via email to