Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 11204 - Ada language support for gcc-3.2-r4
Summary: Ada language support for gcc-3.2-r4
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GCC Porting (show other bugs)
Hardware: x86 Linux
: High enhancement with 1 vote (vote)
Assignee: George Shapovalov (RETIRED)
URL:
Whiteboard:
Keywords:
: 20357 (view as bug list)
Depends on:
Blocks: 11290 11292 11961 12288 25065
  Show dependency tree
 
Reported: 2002-11-25 09:52 UTC by Mikko Ala-Fossi
Modified: 2015-05-21 08:57 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch for gcc-3.2-r4.ebuild (gcc-3.2-r4.ebuild.patch,3.98 KB, patch)
2002-11-25 09:54 UTC, Mikko Ala-Fossi
Details | Diff
Patch to add MD5 sum of the bootstrap compiler file (digest-gcc-3.2-r4.patch,353 bytes, patch)
2002-11-25 10:04 UTC, Mikko Ala-Fossi
Details | Diff
Part 1 of the gcc-3.2 Ada bootstrap compiler binaries (gcc-3.2-bootstrap-gnat-x86.tar.bz2.part1,1000.00 KB, application/octet-stream)
2002-11-25 10:45 UTC, Mikko Ala-Fossi
Details
Part2 (gcc-3.2-bootstrap-gnat-x86.tar.bz2.part2,1000.00 KB, application/octet-stream)
2002-11-25 10:46 UTC, Mikko Ala-Fossi
Details
Part3 (gcc-3.2-bootstrap-gnat-x86.tar.bz2.part3,1000.00 KB, application/octet-stream)
2002-11-25 10:49 UTC, Mikko Ala-Fossi
Details
Part4 (gcc-3.2-bootstrap-gnat-x86.tar.bz2.part4,1000.00 KB, application/octet-stream)
2002-11-25 10:51 UTC, Mikko Ala-Fossi
Details
Part5 (gcc-3.2-bootstrap-gnat-x86.tar.bz2.part5,1000.00 KB, application/octet-stream)
2002-11-25 10:52 UTC, Mikko Ala-Fossi
Details
Part6 (gcc-3.2-bootstrap-gnat-x86.tar.bz2.part6,43.42 KB, application/octet-stream)
2002-11-25 10:53 UTC, Mikko Ala-Fossi
Details
ada.eclass (ada.eclass,690 bytes, text/plain)
2002-12-11 00:49 UTC, Mikko Ala-Fossi
Details
Patch for gcc-3.2.1.ebuild (gcc-3.2.1.ebuild.patch,3.86 KB, patch)
2002-12-11 04:19 UTC, Mikko Ala-Fossi
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mikko Ala-Fossi 2002-11-25 09:52:47 UTC
Hi!

I added Ada language support to the gcc-3.2-r4.ebuild.

The attached files contain:
  o  patch to the gcc-3.2-r4.ebuild
  o  bootstrap ada compiler binaries for the x86 architecture
     (bootstrap compiler is a stripped down version of the i386
     gcc-3.2 binaries with ada support from redhat rpm)
  o  digest file for the distfiles

I know that the gcc-3.2-r4.ebuild is not the latest development
ebuild available, but I applied the changes to the latest stable
release. I can, however, recreate a patch against newer ebuild file
if someone can point me to the correct version (perhaps the 3.2.1-r5).

In order to compile Ada support to the GCC-3.2, one should add
"ada" to the USE flags, and emerge the patched gcc-3.2-r4.
Ebuilds can then depend on "virtual/gnat", if gnat Ada compiler is
required for them.

Steps to test the Ada language support:
 1. Apply the patch to the /usr/portage/sys-devel/gcc/gcc-3.2-r4.ebuild
 2. Copy bootstrap compiler package to /usr/portage/distfiles/
 3. Copy digest file to the /usr/portage/sys-devel/gcc/files/
 4. Add "ada" to USE flags
 5. "emerge gcc" if the gcc-3.2-r4 is the latest one

Cheers,
  Mikko Ala-Fossi
Comment 1 Mikko Ala-Fossi 2002-11-25 09:54:28 UTC
Created attachment 5941 [details, diff]
Patch for gcc-3.2-r4.ebuild

Adds Ada language support to the gcc-3.2-r4.ebuild
Comment 2 Mikko Ala-Fossi 2002-11-25 10:04:21 UTC
Created attachment 5942 [details, diff]
Patch to add MD5 sum of the bootstrap compiler file
Comment 3 Mikko Ala-Fossi 2002-11-25 10:45:16 UTC
Created attachment 5943 [details]
Part 1 of the gcc-3.2 Ada bootstrap compiler binaries

Sorry, about multiple parts but I do not currently have any better place for
the package.
Comment 4 Mikko Ala-Fossi 2002-11-25 10:46:55 UTC
Created attachment 5944 [details]
Part2
Comment 5 Mikko Ala-Fossi 2002-11-25 10:49:28 UTC
Created attachment 5945 [details]
Part3
Comment 6 Mikko Ala-Fossi 2002-11-25 10:51:07 UTC
Created attachment 5946 [details]
Part4
Comment 7 Mikko Ala-Fossi 2002-11-25 10:52:44 UTC
Created attachment 5947 [details]
Part5
Comment 8 Mikko Ala-Fossi 2002-11-25 10:53:17 UTC
Created attachment 5948 [details]
Part6
Comment 9 Mikko Ala-Fossi 2002-11-25 10:55:48 UTC
To create bootstrap compiler binaries package file:

cat part1 part2 part3 part4 part5 part6 > gcc-3.2-bootstrap-gnat-x86.tar.bz2
Comment 10 Mikko Ala-Fossi 2002-12-11 00:49:29 UTC
Created attachment 6394 [details]
ada.eclass

eclass file to define necessary variables for Ada language
ebuilds
Comment 11 Mikko Ala-Fossi 2002-12-11 04:19:11 UTC
Created attachment 6396 [details, diff]
Patch for gcc-3.2.1.ebuild

Patch to add Ada language support to the gcc-3.2.1.ebuild
Comment 12 Matthew Kennedy (RETIRED) gentoo-dev 2002-12-14 00:10:53 UTC
assigned
Comment 13 Matthew Kennedy (RETIRED) gentoo-dev 2002-12-14 00:59:19 UTC
azarah, looks like major change to the gcc ebuild
Comment 14 Martin Schlemmer (RETIRED) gentoo-dev 2002-12-14 14:40:29 UTC
I dont know how the wranglers end up assigning bugs sometimes :P

Ill look into this later on .. btw Mikko, did you see we bumped 3.2.1 to stable ?
Comment 15 Mikko Ala-Fossi 2002-12-17 02:03:42 UTC
Yes, I did notice the versiom bump. There is
gcc-3.2.1.ebuild that corresponds to the new version.
Comment 16 Mark Gawler 2002-12-22 05:07:48 UTC
I note that the ebuild uses parallel makes to do the bootstrap of gcc, this
failed on my system so I changed to using make rather than emake. The error I
got was something like:
  'interfac.ads needs to be recompiled as system.ads has changed'

The gcc Ada build instructions does acknowledge this limitation, although its
not obvious it applies to both the bootstrap and the build of gnatlib_and_tools

I did not use the ebuild in this bug report to build gcc with Ada, but I used a
method very similar (a less thorough hack).
Comment 17 Mikko Ala-Fossi 2002-12-23 08:52:51 UTC
Yes, I noted that too. That is why the patch for gcc-3.2.1.ebuild sets
"-j 1" option to make command for both bootstrap and tools when "ada"
use flag is set.
Comment 18 David Holm (RETIRED) gentoo-dev 2003-05-01 14:56:13 UTC
I suggest checking out this ebuild I wrote: http://bugs.gentoo.org/attachment.cgi?id=11363&action=view

It will install gnat 3.15p. The version of Ada in gcc 3.X is terribly broken and will probably stay that way for some time. Ada is geared towards real-time systems so this is unacceptable. 3.15p is validated and stable.
Comment 19 David Holm (RETIRED) gentoo-dev 2003-05-03 16:43:43 UTC
To make things a bit more clear. This is ACT's official statement regarding Ada in GCC:
"The current distribution of the public version of GNAT is 3.15p. This version is based on GCC 2.8.1. It should not be confused with the version of GNAT available with GCC 3.2, which is an alpha version of the integration of GNAT with recent versions of the GCC code generator, and does not correspond to any specific GNAT release." - http://libre.act-europe.fr/GNAT/main.html

Don't do the same mistake as Debian did and use the gcc version instead of ACT's. One of the biggest reasons I switched over to gentoo was that it didn't have any Ada packages so I was hoping I would be the first to submit proper ones (which sadly, I wasn't).

I would gladly maintain the Ada packages for you, at least for a period. I'm an Ada freak myself so I know what is the right way to do things and what is the wrong way.
IMHO, if you want the gcc version of Ada installed you should create a separate package which installs ONLY gcc (not the gnat* tools) and installs it as adagcc-3.2 or something like that (with a clear warning sign) and let the GNAT 3.15p package and gcc version be the default. Since you can tell gnatmake to use any gcc compiler through the --GCC switch this would be a viable solution.

But please, don't make this yet another distro with a broken Ada compiler =(. This is an important language for important applications, it should not be taken lightly (as the people on comp.lang.ada has pointed out so many times ;).
Comment 20 Mikko Ala-Fossi 2003-05-04 06:06:53 UTC
The original idea of the ada.eclass file in this gcc-3.2 ada support was that
the similar file would be also present with the official gnat compiler packages, and
the user could decide which ada compiler to use. The ada.eclass file would then
specify which compiler binaries to use for building ada packages.

I personally think that both compilers should be available to the user, and
I agree that the official gnat compiler should be the preferred compiler for production use.
However, this alpha-grade ada support should also be present in order to help
gcc3 get better ada support. So naming this package as adagcc-3.xx or something could be a reasonable option.

I think that the question what we should really be considering is that, whether we shall aim to provide full gnae http://cert.uni-stuttgart.de/projects/ada/gnae.php support in Gentoo or something else? (with both ada compilers, the preferred official gnat and gcc3 with ada support).
Comment 21 David Holm (RETIRED) gentoo-dev 2003-05-04 08:00:29 UTC
The possibility to switch between compilers using .eclass sounds great.
GNAE seems pretty good, one question arises though, would libraries compiled with GNAT 3.15 (gcc 2.8.1) link with libraries compiled with GCC 3 (Ada)? This is something I never tried.

I don't think that the main gcc package should install support for Ada but rather we should have a separate adagcc (as you suggested). Another interesting point is that ACT has opened parts of their CVS to the public, including GNAT. It might be more appropriate to provide a GNAT5-CVS ebuild instead of using the code in gcc, at least until the gcc 3 backend is working properly.

IMHO, the most important packages to add are gnat, glade, assis, florist, gdb (as gnatgdb), GtkAda 1.2 (as that is what gvd uses (the visual debugger)) and gvd since these packages make up the cornerstone of the gnat environment.

I have already written a gnat ebuild which supports both native and fsu threads (important!, fsu is required for Annex D support in linux) and I'm going to prepare a glade ebuild asap. I hope they won't be forgotten, this is what happened to me when I wrote a ton of Ada-related ports for FreeBSD, noone was interested and they were never imported into ports.
Comment 22 Mikko Ala-Fossi 2003-05-04 12:40:41 UTC
Proposal for important Ada packages with some dependencies:
-----------------------------------------------------------

dev-ada/gccada-3.2.2 : sys-devel/gcc-3.2.2 (bootstrap compiler)

dev-ada/gnat-3.XX : (bootstrap compiler)

virtual/gnat : dev-ada/gccada-3.2.2 | dev-ada/gnat-3.XX

dev-ada/florist-3.XX : virtual/gnat

dev-ada/asis-3.XX : virtual/gnat

dev-ada/garlic-3.XX (same as glade but renamed because of name conflict) : virtual/gnat

dev-ada/gnade-3.XX : virtual/gnat

dev-ada/gtkada-2.X.X (slot2) : virtual/gnat x11-libs/gtk+-2.X.X

dev-ada/gtkada-1.2.X (slot1) : virtual/gnat x11-libs/gtk+-1.2.X

dev-ada/gnae-0.5 : sys-devel/make virtual/gnat dev-ada/florist dev-ada/asis dev-ada/garlic >=sys-libs/ncurses-5.3

dev-ada/xmlada-X.X : virtual/gnat

dev-ada/gvd-X.X : >=dev-ada/gtkada-1.2

dev-ada/gnatgdb-X.X (the new gdb has Ada support in CVS so this may not be necessary) : 
Comment 23 David Holm (RETIRED) gentoo-dev 2003-05-04 13:00:51 UTC
virtual/gnat : dev-ada/gnat-3.XX
Do NOT use gcc 3 as the default Ada compiler, that would be like using gcc 3.4 as the main C/C++ compiler (closer to the truth than most would expect, since floats are broken in C in 3.4 as well ;).

dev-ada/gtkada-2.X.X (slot2) : dev-ada/gccada-3.2.2 x11-libs/gtk+-2.X.X
IIRC gtkada 2 requires GNAT 5 for some reason... gtkada 1.2 seems to still be the standard though... so maybe it makes sense

dev-ada/gnat-glade-3.XX : virtual/gnat  (until ACT officially renames it)

dev-ada/gnatgdb-4.17 (the official gdb for gnat 3.15p)

I suggest that instead of gccada-3.2.2 we should add gnat-cvs and gnatgdb-cvs since ACT only randomly submits patches to gcc, and noone at FSF seems extremely interested in Ada anyway, besides from the fact they think it's cool to support yet another language.

I agree on the other packages... BTW, the gnat-3.15p ebuild now installs gcc and gcov as gnatgcc and gnatgcov to make it clear where it comes from.
Comment 24 Matthew Kennedy (RETIRED) gentoo-dev 2003-05-04 23:13:59 UTC
please re-route this bug to someone with ada experience
Comment 25 Seemant Kulleen (RETIRED) gentoo-dev 2003-06-08 01:20:36 UTC
David, Mikko,

Please both of you come to irc.freenode.net channel #gentoo and have a chat with avenj and myself (our /nicks are avenj and seemant, respectively)
Comment 26 Seemant Kulleen (RETIRED) gentoo-dev 2003-06-09 08:24:24 UTC
*** Bug 20357 has been marked as a duplicate of this bug. ***
Comment 27 George Shapovalov (RETIRED) gentoo-dev 2003-06-14 01:08:48 UTC
I will take on this one as well for a while until I determine how this can play together with gcc. I might be able to finish it up eventually, or if not, will reassign back, so gcc maintainer can close this bug.

For the reference (to keep track of things and since listing it as a dependency isn't really appropriate), #13113 contains the ebuilds for gnat.

I will start with gnat support and then we can decide how to go about modifications to gcc ebuilds.

George
Comment 28 George Shapovalov (RETIRED) gentoo-dev 2003-06-17 15:48:20 UTC
Ok, #13113 has been processed and gnat is already in portage!

Having read through this thread now carefully I see that there is no more talk about adjusting gcc ebuilds, but instead the idea is to provide separate packages - adagcc and/or adagcc-cvs? In such case I think I may be able to process this bug as well (and I am a fan of ada myself, though I am very early in learning stage ;)).
David: I am counting on your help in getting ada in gentoo sorted out properly ;). Would you be willing to become an "official" developer maintaining dev-ada (and ada related ebuilds under dev-lang)? There is some stuff to get accostumed with first though. So I will probably take care of this bug with your help, and then will let you proceed with the apps, populating dev-ada (though I'll be overseeing your submissions for some time..)

Back to this submission.

I see two packages were mentioned wrt ada support in gcc:
1. create adagcc ebuild, which will contain necessary modifications and effectively install updated version of gcc.

2. adagcc-cvs - I think that would be a proper name for it. Should install tested cvs snapshot (portage can handle "live-cvs" ebuilds, but these will never get unmasked and are not really welcome even in ~arch profile - most often they are eternally package.mask'ed. While cvs snapshot can get pretty high in stability/useability ranking).

Common remark: if possible, this should only install add-on files, may be except few necessary back-end ones that contain ada specific additions. In general, the less is overwritten, the better. dev-lang/gpc is an example of such ebuild (though quite outdated as of now. I still cannot get around to completing gcc-3 based version. Well, gpc devs are usually behind one minor version, so its also hard to pick a "proper time").

So, should we go along with either or both of those? If you guys would feel better, we can initiate thread on gentoo-dev@g.o to solicit comments on what people would like to see and who at all cares..

eclass:
Usually eclasses are sed to rpovide common parts of closely related packages. kde is perheaps the brightest example. Compiler selection was generally done by providing xxx-config (like) utility, as is with gcc-config or java-config. The utility is supposed to "activate" selected compiler [version] and do other necessary handling. Taking similar route this might be something with the usage along the lines of:
ada-config --set-adac gnat[-$PV]
emerge pkgname
ada-config --set-adac adagcc[-$PV]
...

> IMHO, the most important packages to add are gnat, glade, assis, florist, 
> gdb (as gnatgdb), GtkAda 1.2 (as that is what gvd uses (the visual debugger)) > and gvd since these packages make up the cornerstone of the gnat environment.
6 total (in addition to gnat, which is in dev-lang) in this list. I think this warrants new category dev-ada. Once we have these ebuilds in bugzilla (or once David accumulates at least 5 of them) I/he will submit a request about new category creation to gentoo-dev (this is relatively major change and requires approval) and then we can start populating it.

Ok, this seems to be it for now. If I'll recall anything else later I will add more.

George

Comment 29 David Holm (RETIRED) gentoo-dev 2003-06-17 16:41:53 UTC
I will do my best in bringing as many Ada-related packages to gentoo as soon as possible.
I have a couple in my local portdir but not all of them are working yet. I will  mail them as soon as they work-for-me<tm> and lintool approves of them. I am doing my best to adapt to the GNAE standard as it seems to be the best way to collect code. FreeBSD has a tendency to put ada-stuff in either local or X11R6 in a subdir in either lib or include, so it is a mess =(. GNAE handles it in a cleaner way although some parts of it seems strange, such as their adainstall and adaconfig scripts (these are better handled with ebuild and eclasses imho). They mention debian as a distro which follows this standard which is hillarious since debian for instance only carries gnat 3.14p even though it is extremely old now. (Older than GNAE to my knowledge)
The specification is here: http://cert.uni-stuttgart.de/projects/ada/gnae.php

At the moment I have the following packages in my local portdir:
AdaBindX (binding to X11 and Motif): working, but I'm converting it to GNAE standard.
ASIS: not finished yet
CBIND (which is an extremely useful application to create bindings from C-headers with, although it could use some improvement as it is getting dated, the maintainer was rational which has now been bought by IBM): finished
florist: submitted by Mikko Ala-Fossi, still not working for me, I get a constraint error during compilation, investigating this...
GtkAda-2.0.0: submitted by Mikko Ala-Fossi, I cleaned it up a bit, finished
xmlada-0.7.1: submitted by Alexis Muller, I'm currently converting this to GNAE

I also have the following packages on my todo-list:
AdaOpenGL: OpenGL binding that I have created myself since everyone is using an extremely old binding which hasn't been updated in years (the distribution ftp has been down for a long long time), it is available here http://adaopengl.sf.net/ ;D... I'm in the process of releasing a new version of it

AUnit: Unit testing for Ada

AdaSDL: Binding to SDL, hasn't been updated in a long time but it is well written and still useful

gnat-cvs: this one still does not compile, but I'm testing it at regular intervals, I suggest a snapshots instead of a cvs-ebuild though

gvd, gnatgdb

glade/garlic: official Annex E implementation

jgnat: will make java applets from your ada code, it only compiles with gnat 3.14p though =(

adabrowse and adadoc: two different document-generation tools (like doxygen but less advanced)

and a ton of component libraries: Booch Components, Charles, AdaSL, SGL etc

It might be easier to follow an Ada-related thread if it was created in one of the forums though.
The idea of an ada-config script is interesting, I considered writing one but as I stumbled onto more and more bugs in the gnat ebuild I forgot about it. It might still be interesting to switch between gnat 3.14p and 3.15p as there are some unsupported software available that won't compile with 3.15p. And when 5.0 is released it would be even more interesting as I'm guessing even more software will stop compiling by then.
Comment 30 George Shapovalov (RETIRED) gentoo-dev 2003-08-17 15:33:20 UTC
Ok, since final decision seems to be to add a snapshot of gnat-5.0 and not to add ada support to gcc I am closing this bug.

George