Porting GCC to your OS

From OSDev Wiki
(Redirected from Porting GCC)
Jump to navigation Jump to search
Difficulty level
Difficulty 4.png
Master

This page is under construction! This page or section is a work in progress and may thus be incomplete. Its content may be changed in the near future.

  • Read GCC Cross-Compiler.
  • Make a OS Specific Toolchain.
  • Read Hosted GCC Cross-Compiler.
  • Have a sufficient C Library. 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++.
  • Cross-compile libgmp, libmpc, libmpfr and other dependencies with instructions in Cross-Porting Software.
  • Likewise cross-compile Binutils and GCC, but pass the special configure options --with-build-sysroot=/your/sysroot and --with-sysroot=/. The option --with-build-sysroot option uses that sysroot for the duration of the build, but the final program does not remember it. --with-sysroot=/ should not be needed or should be set to the empty string, but some binutils/gcc versions are buggy and require it, which has the disadvantage the final toolchain might use //foo instead of /foo. You should only pass these options to the Binutils and GCC builds, some other packages also have a --with-sysroot option, but it instead means a libtool feature you should not use.
  • Become self-hosting and complete Bare Bones II. Congratulations.

See Also