| 1 | Port the GNU Compiler Collection to HelenOS. |
| 2 | |
| 3 | Details:: |
| 4 | HelenOS already contains a simple C compiler in the form of the Portable C Compiler (```pcc```) which was ported to it during GSoC 2011. ```pcc``` is sufficient for compiling simple userspace programs under HelenOS/ia32, but unfortunately is not powerful enough to build the entire HelenOS without substantial modifications in places where ```pcc``` does not follow ```gcc``` close enough. ```pcc``` also does not support the full range of platforms supported by HelenOS, which makes it a non-starter for the use as the main HelenOS compiler (both cross and native). This last criterion basically leaves us with only ```gcc``` as the only choice for achieving our long-term goal of becoming self-hosting. |
| 5 | |
| 6 | The goal of this project is to port at least the C compiler part of ```gcc``` to HelenOS. |
| 7 | |
| 8 | What Gains and Benefits will this bring?:: |
| 9 | One of the strategic goals for HelenOS is becoming self-hosting. Since most of the HelenOS code is written in C, having a portable, full-fledged native C compiler is a prerequisite to reaching this goal. Using the same compiler for cross-compilation and building HelenOS from itself is also a benefit of its own. |
| 10 | |
| 11 | Difficulty:: |
| 12 | Medium. The effort will be somewhat easier especially thanks to GSoC 2011 projects that have paved the way for this project by porting GNU binutils and the Portable C Compiler to HelenOS and creating a POSIX-compatibility library. |
| 13 | |
| 14 | Required skills:: |
| 15 | A successful applicant will have good skills of programming in the C language and the ability to survive in a non-standard non-POSIX application environment. The applicant should also be familiar with the basic concepts behind compilers and the build toolchain. |
| 16 | |
| 17 | Documentation:: |
| 18 | - [wiki:DeveloperDocs#Clanguage] |
| 19 | - [http://gcc.gnu.org GCC, The GNU Compiler Collection] |
| 20 | |
| 21 | Possible mentors:: |
| 22 | HelenOS Core Team, Jakub Jermar, Jiri Svoboda |