Welcome to the Getting Started section of the GCC Wiki
We are constantly looking for new developers who are willing to donate their time to advance GCC.
This section contains collected information geared towards folks who are new to GCC and may be feeling a bit lost in the barbaric jungles of GCC's source code. Although we are continuously trying to improve GCC's internal modularity and interfaces, the fact remains that GCC is about 20 years old, fairly large and we need to keep it working on the multitude of supported architectures and languages. So, getting to work with GCC can be a challenge.
Everyone is welcome to add links to tutorials, HOWTOs, cheat sheets, etc that may be floating around the net.
Basics: Contributing to GCC in 10 easy steps
Small patches don't need any copyright assignment. Otherwise, you need to file a copyright assignment.
GCC is owned by the Free Software Foundation (FSF), as such, all contributors must assign their copyright to the FSF before their changes are accepted. The copyright assignment process is described in Contributing to GCC. In a nutshell, send an email to <email@example.com> and explain that you want to contribute code to GCC and what is your employment status (student, employed by a company, self-employed, ...) and they will send you a form to sign. If they don't reply in 3-5 days, insist. If there is still no reply, write to <firstname.lastname@example.org> and explain your case. This process requires some patience but while you wait, you can continue with the next steps.
- Accessing the sources, you can choose between:
- You do not actually need to install GCC to test it, it is enough to build it
Unless you have a good reason, you should maximise the number of languages tested by passing --enable-languages=ada,c,c++,fortran,go,java,objc,obj-c++ to configure.
Committing patches. For the few first patches you should ask in the submission email that someone commits the patch for you. Once you have a few patches approved, you should ask for write access to the SVN.
gcc internals podcast (Introduction)
Dwarf2 Exception Handler HOWTO Also known as the "EH newbies HOWTO".
BuildInfrastructure: GNU Autoconf
Dealing with the source code
Structure Of GCC