From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org) by nuthatch.gentoo.org with esmtp (Exim 4.54) id 1FbDPX-0004QB-PB for garchives@archives.gentoo.org; Wed, 03 May 2006 09:12:44 +0000 Received: from robin.gentoo.org (localhost [127.0.0.1]) by robin.gentoo.org (8.13.6/8.13.6) with SMTP id k439BZjS008822; Wed, 3 May 2006 09:11:35 GMT Received: from mbox.unige.ch (mbox.unige.ch [129.194.9.209]) by robin.gentoo.org (8.13.6/8.13.6) with ESMTP id k4398fD5000699 for <gentoo-dev@lists.gentoo.org>; Wed, 3 May 2006 09:08:41 GMT Received: from conversion-daemon.mbox.unige.ch by mbox.unige.ch (Sun Java System Messaging Server 6.2-3.03 (built Jun 27 2005)) id <0IYO00F01ME8EG00@mbox.unige.ch> (original mail from george@gentoo.org) for gentoo-dev@lists.gentoo.org; Wed, 03 May 2006 11:08:40 +0200 (CEST) Received: from pcc23679 ([129.194.54.121]) by mbox.unige.ch (Sun Java System Messaging Server 6.2-3.03 (built Jun 27 2005)) with ESMTPS id <0IYO005L7MQ8OMF0@mbox.unige.ch> for gentoo-dev@lists.gentoo.org; Wed, 03 May 2006 11:08:33 +0200 (CEST) Date: Wed, 03 May 2006 11:08:30 +0200 From: George Shapovalov <george@gentoo.org> X-Face: 4Rd)1/:bMGRby_[I4NY3u,g|=7e?V_VX?tkj,_ct-U4B#_-EEu_/wyvCWFsvDa<D/:8bHX y)m@s7@Ow=\_f^T>}LP_Rk2%phL7r5%sxXze`X/A_:8tz&|"*2^="\ZFo3&+'UGNhVu#]g [<<~4glvaJa'ZEXW_#@LWa,OhxVN"r|/1P:`IL8=rciHKGxevczUO{X!r%,a Subject: [gentoo-dev] improved Ada support in portage (split gnat ebuilds) To: gentoo-dev@lists.gentoo.org Message-id: <200605031108.32220.george@gentoo.org> Organization: Gentoo Linux Precedence: bulk List-Post: <mailto:gentoo-dev@lists.gentoo.org> List-Help: <mailto:gentoo-dev+help@gentoo.org> List-Unsubscribe: <mailto:gentoo-dev+unsubscribe@gentoo.org> List-Subscribe: <mailto:gentoo-dev+subscribe@gentoo.org> List-Id: Gentoo Linux mail <gentoo-dev.gentoo.org> X-BeenThere: gentoo-dev@gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline X-Comment: This message was scanned against viruses by mbox.unige.ch. User-Agent: KMail/1.9.1 X-Archives-Salt: 3753d0d3-2215-4ebf-87c4-c1ed6dca79a4 X-Archives-Hash: 71b10d2021f407463429055f5fb54d22 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