Hi everybody. I would like to announce the availability of new (split) gnat ebuilds on x86, amd64 and soon possibly on ppc. The technical announcement (of a "new way", eclass and virtuals) has been done earlier (for those interested, see bug #111340), so this is really just an unmasking announcement.
A short description: The compilers were split, to reflect the upstream packaging (now we have gnat-gcc, as prepared by FSF (part of gcc)) and gnat-gpl, *the Ada2005* version by AdaCore. The compilers make use of the gnatbuild.eclass - heavily based on a toolchain.eclass, correctly support multilib and SLOT's (based on gcc backend versions). So, now you can install them in parallel and mix-and-match in your work in a usual Gentoo style.. Switching is done via eselect gnat module. Oh, and all known problems that plagued "old-style" gnat have been resolved too :). Just a word of caution: The new style and old style gnat compilers do not play nice together, so you need to unmerge old gnat completely before trying new ones. (But then for exactly this reason I put the blockers both ways to force this. Most of the time combining gnat and gnat-gcc just does not work at all (breaks both of them..)). Now, the libs.. Yes, there are libs and, in fact, there may be more. However these new SLOTted and split compilers pose a challenge, as the libs are usually only good for the compiler that they were compiled with. After throwing the ideas back and forth (in that tracker bug, above) we settled on a preliminary lib installation framework for Ada: 1. Each lib gets built (the binary/objects part only of course) for every installed compiler and gets distributed at appropriate places (so that docs/specs/etc are installed only once and generated libs/.ali's once per installed gnat profile). 2. eselect gnat module is expanded to activate the appropriate profile for every lib, matching the activated gnat. 3. eselect gnat show/list will show you active libraries (in addition to active gnat), so that you can see what libs are missing support for a particular gnat profile and rebuild them as you see fit. I whipped up an initial implementation, basically just reworking gnat.eclass and eselect module, so actually no special "features", as far as portage is concerned, even had to be introduced. For those interested, the eclass is available here: https://bugs.gentoo.org/attachment.cgi?id=85982 As it is backwards compatible it can even go in, but since eclasses are not versioned (except by manually strapping some number on them that, effectively, introduces a new eclass, and there is no need for that here) I am waiting for some test reports or going over it somewhat more, before I will consider committing the new gnat.eclass. To enjoy the new libs framework you will need to unmask app-admin/eselect-gnat-0.7 and (so far the only translated lib) dev-ada/booch_components-20051222 (both p-masked at present). This approach seems to work fine and it even turned out to be rather straightforward to implement. However any feedback/ideas are definitely wellcome! George -- [email protected] mailing list
