Port GNU Compiler Collection (gcc) to HelenOS
Port the GNU Compiler Collection to HelenOS.
- Details
-
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. Which is worse,
pcc
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.
The goal of this project is to port at least the C compiler part of
gcc
to HelenOS.
- What Gains and Benefits will this bring?
-
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.
- Difficulty
-
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.
- Required skills
-
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.
- Documentation
-
- Possible mentors
-
HelenOS Core Team, Jakub Jermar, Jiri Svoboda
Change History
(17)
Summary: |
Port GCC to HelenOS → Port GNU Compiler Collection (gcc) to HelenOS
|
Description: |
modified (diff)
|
Component: |
helenos/unspecified → helenos/app/other
|
Description: |
modified (diff)
|
Cc: |
vivek.cs.iitr@… added
|
Owner: |
set to vivekprakash
|
Status: |
new → assigned
|
Owner: |
vivekprakash removed
|
Status: |
assigned → new
|
Owner: |
set to Vojtech Horky
|
Status: |
new → accepted
|
Resolution: |
→ fixed
|
Status: |
accepted → closed
|
Development branch: https://code.launchpad.net/~vivek-cs-iitr/helenos/gcc