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