From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,c84d82c48b48a016 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-06-06 14:36:15 PST Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!canoe.uoregon.edu!hammer.uoregon.edu!skates!not-for-mail From: Stephen Leake Newsgroups: comp.lang.ada Subject: Re: Porting Ada (Gnat/gcc) Date: 06 Jun 2001 17:32:38 -0400 Organization: NASA Goddard Space Flight Center Message-ID: References: NNTP-Posting-Host: anarres.gsfc.nasa.gov Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: skates.gsfc.nasa.gov 991864127 19894 128.183.220.71 (6 Jun 2001 21:48:47 GMT) X-Complaints-To: dscoggin@cne-odin.gsfc.nasa.gov NNTP-Posting-Date: 6 Jun 2001 21:48:47 GMT User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.6 Xref: archiver1.google.com comp.lang.ada:8270 Date: 2001-06-06T21:48:47+00:00 List-Id: Alun Moon writes: > I'm planning a project (possibly an undergraduate/masters one) to port > Ada to a new processor. > > We have a processor simulator we use in teaching, with a simple > architecture. I'm planning a port of the gcc back end for assembler > generation from gcc (along with assembler and linker ports). > > My colleague's eyes lit up at the thought of an Ada port (we can use > this platform for teaching embedded systems). > > Assuming I have > gcc backend (assembler generation > as port > ld port > from gcc and binutils > > What do I need to do to have an Ada port? The GNAT source, and a tasking OS that can interface to the GNAT tasking run time library. > > Are there library sources that need porting? Yes, they are included in the GNAT source. The only part that should need any work is the tasking stuff. If you don't mind a non-tasking Ada subset, you have very little work to do. Oops, forgot to mention floating point; is that in hardware, or handled by the gcc port already? Again, you can get by with an Ada subset, but it's harder to define a non-floating point subset than a non-tasking one. The GNAT documentation does _not_ talk about how to port to a new processor. Even the GNAT support team is not very helpful in this area (I'm a paying customer, but they wanted a _lot_ of money to do a port to a new processor). You have to be able to read the GNAT makefile and figure things out. If your processor is 32 bits with IEEE floats, it should not be hard at all. Mine is 16 bits with 16 bit chars, and it's a pain! -- -- Stephe