Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 7 years ago

Closed 5 years ago

Last modified 3 years ago

#413 closed enhancement (fixed)

Port GNU Compiler Collection (gcc) to HelenOS

Reported by: Jakub Jermář Owned by: Vojtech Horky
Priority: major Milestone: 0.6.0
Component: helenos/app/other Version: mainline
Keywords: gsoc12 Cc: vivek.cs.iitr@…
Blocker for: Depends on:
See also:

Description (last modified by Jakub Jermář)

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)

comment:1 Changed 7 years ago by Jakub Jermář

Summary: Port GCC to HelenOSPort GNU Compiler Collection (gcc) to HelenOS

comment:2 Changed 7 years ago by Jakub Jermář

Description: modified (diff)

comment:3 Changed 7 years ago by Jakub Jermář

Component: helenos/unspecifiedhelenos/app/other

comment:4 Changed 7 years ago by Jakub Jermář

Description: modified (diff)

comment:5 Changed 7 years ago by Vivek Prakash

Cc: vivek.cs.iitr@… added
Owner: set to Vivek Prakash
Status: newassigned

comment:6 Changed 7 years ago by Vivek Prakash

Milestone: 0.5.1

comment:8 Changed 7 years ago by Jiří Zárevúcky

Any progress on this, or is the project dead?

comment:9 Changed 7 years ago by Martin Decky

Vivek Prakash did not pass GSoC midterm evaluation. AFAIK nobody is actively working on this ticket at present time.

comment:10 Changed 7 years ago by Jiri Svoboda

As of 2012-08-14 the cxx-conversion branch was merged to GCC trunk. This means GCC is now implemented in C++ instead of C. For us this places a new obstacle, for next GCC version to work on HelenOS some C++ runtime support would probably have to be implemented.

comment:11 Changed 7 years ago by Hesham Moustafa

I am interested in this project, is it ok to begin analyzing and reading docs and then begin implementation or there are somethings i should know about first ?

Last edited 7 years ago by Hesham Moustafa (previous) (diff)

comment:12 Changed 7 years ago by Jakub Jermář

Yes, I guess this project is not being actively worked on by anybody. So it is open for any potential takers.

comment:13 Changed 7 years ago by Jakub Jermář

Owner: Vivek Prakash deleted
Status: assignednew

comment:14 Changed 7 years ago by Jakub Jermář

Keywords: gsoc13 added

comment:15 Changed 6 years ago by Vojtech Horky

Owner: set to Vojtech Horky
Status: newaccepted

comment:16 Changed 6 years ago by Jakub Jermář

Keywords: gsoc13 removed

comment:18 Changed 5 years ago by Jakub Jermář

Resolution: fixed
Status: acceptedclosed

There is now a basic gcc port in coastline.

Note: See TracTickets for help on using tickets.