public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] improved Ada support in portage (split gnat ebuilds)
@ 2006-05-03  9:08 George Shapovalov
  0 siblings, 0 replies; only message in thread
From: George Shapovalov @ 2006-05-03  9:08 UTC (permalink / raw
  To: gentoo-dev

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
-- 
gentoo-dev@gentoo.org mailing list



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-05-03  9:12 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-03  9:08 [gentoo-dev] improved Ada support in portage (split gnat ebuilds) George Shapovalov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox