Opened 12 years ago

Closed 10 years ago

Last modified 8 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.

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.
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.
Possible mentors
HelenOS Core Team, Jakub Jermar, Jiri Svoboda

Change History (17)

comment:1 by Jakub Jermář, 12 years ago

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

comment:2 by Jakub Jermář, 12 years ago

Description: modified (diff)

comment:3 by Jakub Jermář, 12 years ago

Component: helenos/unspecifiedhelenos/app/other

comment:4 by Jakub Jermář, 12 years ago

Description: modified (diff)

comment:5 by vivekprakash, 12 years ago

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

comment:6 by vivekprakash, 12 years ago

Milestone: 0.5.1

comment:8 by Jiří Zárevúcky, 12 years ago

Any progress on this, or is the project dead?

comment:9 by Martin Decky, 12 years ago

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

comment:10 by Jiri Svoboda, 12 years ago

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 by Hesham, 12 years ago

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 12 years ago by Hesham (previous) (diff)

comment:12 by Jakub Jermář, 12 years ago

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

comment:13 by Jakub Jermář, 12 years ago

Owner: vivekprakash removed
Status: assignednew

comment:14 by Jakub Jermář, 12 years ago

Keywords: gsoc13 added

comment:15 by Vojtech Horky, 11 years ago

Owner: set to Vojtech Horky
Status: newaccepted

comment:16 by Jakub Jermář, 11 years ago

Keywords: gsoc13 removed

comment:18 by Jakub Jermář, 10 years ago

Resolution: fixed
Status: acceptedclosed

There is now a basic gcc port in coastline.

Note: See TracTickets for help on using tickets.