The GCC for RISC OS initiative


IMPORTANT NOTICE

With the release of several GCC versions (even if they are labelled as "prerelease"), the goals of the "GCC for RISC OS initiative" have been largely reached.

Nick Burrett, the main developer/portmaster of GCC, has created a new central page for GCC stuff, UnixLib etc. - there is now a GCC mailing list and the GCC SDK, where people can build their own cross compiler. http://hard-mofo.dsvr.net/ should now be considered as the main GCC information and download page. There is also a GCC mailing list available, please look at Nick's site for more information.

The rest of this page here is kept for historical reasons.



Introduction

Software development for the RISC OS platform is currently restricted by the non-availability of a good (and cheap) C/C++ compiler. The available Norcroft solution is hopelessly outdated (based on CFront 3.0) and lacks support for nearly all the good things in C++ (problems with templates, no support for exceptions). The GCC port available is 2.7.2.1, which is also outdated and supports only a subset of the C++ standard.

To resolve this lack of development tools, there are basically three possibilities:
  1. Wait for a RISC OS release of the latest ARM SDK, which includes a native C++ compiler. This has some disadvantages. First of all, it is not clear if RISC OS Ltd. is able to negotiate a deal with ARM to provide the RISC OS developer community with a RISC OS-based C/C++ development suite. Another problem is the potentially high price of this solution - ARM will probably demand license fees that could render this solution unpayable for most developers. And yet another problem - while the C compiler is very good, the quality of the C++ one is unknown with respect to development of desktop applications.
  2. Port a later version of GCC, the GNU C/C++/Pascal/Fortran 77/Ada 95 compiler suite. The advantage here is that the latest GCC version includes a very nice C and C++ compiler, and that it will be available free of charge (GCC comes with the GNU Public License). The disadvantage is that it must be ported first, and that at least the C compiler is not as good as the ARM offering - it is also currently not possible to write RISC OS modules with GCC.
  3. Wait and pray, and watch the RISC OS market declining further.



The Plan

RISC OS Ltd. is currently negotiating with ARM the possible licensing of the ARM SDK. However, the outcome is still unsure, and if a deal will be struck, it is very probable that this will be no low-cost solution.

So the proposal is to follow route 2. - porting the current version of GCC. Fortunately, the porter of the previous GCC version, Nick Burrett, is willing to do the hard work once more. The GCC for RISC OS initiative was founded to help Nick on his way to a new GCC port by donating a StrongARM Risc PC to him.

The first target of the project is a working GNU C compiler based on the latest GCC sources. Nick is quite optimistic about a relatively early release in a few weeks time.

After the C compiler, the GNU Pascal and Fortran 77 will follow shortly, and a full C++ release will hopefully be available soon after that.


How it all started

This initiative started with the thread GNU C++ optimization problems in comp.sys.acorn.programmer. David McEwen, who ported quite a lot of emulators to RISC OS, asked about a possible bug in the current GCC which surfaces when using certain optimizations. Nick Burrett answered that this might be a GCC problem, and that a later version might help. However, it was nearly impossible for him to port a later version, because he did not have a RISC OS machine anymore.

I then thought that some missing hardware should not be the cause for lack of development tools and offered to loan my second StrongARM Risc PC to Nick for a limited period of time. Nick agreed, and the GCC project was resurrected.

A few hours after posting this offering, some people emailed me to offer some money to support the project. So I had the idea of financing the Risc PC and donate it to Nick instead of loaning it.


Latest News

Prerelease 3 of GCC, which is based on the latest GCC release version (2.95.2), is now available from Nick's website at http://hard-mofo.dsvr.net/ for download. There is also a new Unixlib version which contains many bug fixes and some new features.

Work ist still going on to provide GCC with a possibility to produce RISC OS module code. It is now likely that this will be possible without the aid of external utilities like CMHG or CMunge. This should simplify writing RISC OS modules in C considerably.


History

1999-07-12David McEwen posted his original query in csa.programmer
1999-07-13The StrongARM Risc PC was offered to Nick, and Nick accepted
1999-07-133 people contacted me to offer some monetary donations
1999-07-14RISC OS Ltd. was contacted to ask about the ARM solution
1999-07-19already 10 people are willing to donate money
1999-07-21Risc PC was sent to Nick
1999-07-2112 people, and counting...
1999-07-23Risc PC was received by Nick, in working condition
1999-07-26Nick reported first success with a stage 2 compiler based on gcc 2.96
1999-07-29website set up, public announcement in comp.sys.acorn.announce
1999-08-01prerelease C/C++ compiler and UnixLib available
1999-08-02prerelease Fortran 77 compiler available
1999-08-06donations reached necessary amount - you can now help the project in other ways
1999-09-19Robin Watts announces availability of his CMHG replacement
1999-09-24GCC prerelease 2, based on GCC 2.95.1, released
1999-11-16GCC prerelease 3, based on GCC 2.95.2, released



What about RISC OS Ltd.?

When the initiative was started, it was unclear how RISC OS Ltd. would react. If they would have finished the licensing deal with ARM to publish a new version of the Norcroft compiler, a freely available compiler could have ruined their expected profits.

However, that was not the case. I contacted Andrew Rawnsley, technical director of RISC OS Ltd., and he responded very positively. He even proposed the possibility of a low-cost bundle of GCC and the several development tools like ResEd and the Toolbox. We quickly agreed that, looking at the prospective price of an ARM-licensed Norcroft compiler, an option to have a compiler totally free of charge would be necessary anyway, to cater for the hobbyists and semi-professional developers.


Future plans - what is still missing?

The compiler itself ;-)

To reinitiate interest in RISC OS software development, a modern compiler is only the first step. The final step would be the availability of an integrated development environment with debugger, editor, a RISC OS class library and a GUI builder. Some usable parts are already here to use, like a decent text editor (StrongEd, Zap), a source code control system (RCS, CVS) and various template editors (the first step to a GUI builder) like WinEd and TemplEd.

The long term idea is to come up with a foundation to sponsor the porting of key OpenSource software in the future. Projects could include porting of GDB, the GNU debugger, or much bigger things like the Java 2 platform from Sun, which is now available in source form.

It is intended that people who have the knowledge and time to port important OpenSource software have the fastest and best equipment available to do the job. There are still many developers stuck with a 4 MB A3010, which leads to big inefficiencies during the development. This needs to be avoided.


How can I help?

The project has just started.

There are no more monetary donations necessary as the money for the development Risc PC has been raised. However, as the future plans above indicate, there is still a long way to go.

There are basically three things to be approached next where you could help.
  1. Write some documentation on how to use GCC in conjunction with available tools and libraries. Ideas would be: Including assembler code into C/C++ code in GCC, Writing a simple application with GCC and OSLib/Desk/Toolbox/Dreamscape ..., How to use a makefile etc.
  2. Write some example applications - one could be e.g. a simple frontend for GCC, released with source and docs so that people can not only use it, but also learn from it.
  3. Port some useful open source utility from other platforms (GDB would be a good start ;-))
The idea is to help people over the first steps when starting development. A CLI-only compiler might be great for some, but it puts off others, and the RISC OS market clearly needs everybody.

I would prefer a coordinated effort to produce the necessary code and documentation to avoid duplicating efforts. So if you want to take on any task mentioned above, or if you have any other suggestions about things to be done, please mail <Steffen Huber>.


The people

<Nick Burrett> - porter of GCC, doing all the hard work
<Steffen Huber> - coordinator of the GCC initiative


Donators

The following people offered money to support the initiative:
Steffen Huber
Marko Lukat
Martin Würthner
Martin Kaletsch
Gareth McCaughan
Guy Griffin
David McEwen
Richard Atterer
Stefan Bellon
Allen Craig
Pierre Bernhardt
Hanno Schwalm
Theo Markettos
Edgar Fuß
John Tytgat
Thomas Hoenl
Kevin Brownhill
Andy Carter
Victor Markwart
Thomas Lowe
Sebastian Maus
Tim Barrett
André Schaefer
Max Palmer
Ainsley Lewis / ESD
David Bryan
Keith Hopper
Dave Daniels
Dave Edwards
Harry Mills
Ainsley Pereira
Paul Beverley
Herbert zur Nedden


The following people offered some webspace to help making the goals of the project widely known:
Carlos Michael Santillán
Thomas Steinhausen
Sascha Streng


And, last but not least, this was all made possible because Torsten Hahn sold me his Risc PC for such a low price.


The development machine

The Risc PC that was donated to Nick is fitted with the following equipment:


Text written by <Steffen Huber>
HTMLized by Carlos Michael Santillán