Porting GCC to your OS
Difficulty level |
---|
![]() Master |
- Note that the GCC Cross-Compiler page is intended to include the information below (as well as filling in the To-Dos) once it is finished. Unless someone else does it first, I'll do so once my PDCLib is finished. - MartinBaute
First, you should understand How kernel, compiler, and C library work together. If any of the next steps give you trouble, the information given in that document should give you an idea of what is missing.
Next, you should build a GCC Cross-Compiler for your platform.
- ToDo: elaborate on GCC's platform description, and how to set up your own if you don't want to use an existing one.
Then, you need a C standard library for your platform - at least those parts required by GCC.
To do this you need a C Library for your OS. GCC is fairly portable and needs the C standard library, and some extensions from POSIX. It needs fork and exec, for instance, to run the assembler and linker. You will need a C++ standard library (such as libstdc++) as GCC is now written in C++.
Finally, you would use the cross-compiler to compile GCC to run on your platform.
Just to be sure, you would use that "native" GCC to compile itself (to be sure it could, and for weeding out any issues that might arise from cross-compilation). Congratulations, you are now what people call "self-hosted", i.e. you no longer need some other OS to do development work. (Provided you have a working editor for your platform.)