Porting GCC to your OS

来自osdev
跳到导航 跳到搜索
难度等级
Difficulty 4.png
大师

这个页面正在建设中! 此页面或部分内容仍在改进中,因此可能还不完整。 其内容可能会在不久的将来更改。

  • 阅读GCC交叉编译器
  • 制作一个特定于操作系统的工具链
  • 阅读自托管GCC交叉编译(Hosted GCC Cross-Compiler)
  • 有完备的 C Library。 GCC是相当可移植的,需要C标准库和POSIX的一些扩展。 例如,它需要fork和exec来运行汇编器和链接器。 你将需要一个C++标准库 (例如libstdc++),因为GCC现在是用 C++ 编写的。
  • 使用交叉移植软件中的指令交叉编译libgmp、libmpc、libmpfr和其他依赖项。
  • 同样交叉编译BinutilsGCC,但是传递特殊的配置选项--with-build-sysroot=/your/sysroot--with-sysroot=/。 选项 --with-build-sysroot 选项在构建期间使用该sysroot,但最终程序不记录它。 --with-sysroot=/不应该被需要,或者应该被设置为空字符串,但是一些binutils/gcc版本有缺陷,所以还需要它,这有一个缺点,最终的工具链可能使用//foo而不是/foo。 你应该将这些选项传递给Binutils和GCC构建,其他一些包也有一个--with sysroot选项,但这不意味着你应该使用libtool功能。
  • 成为自托管系统并完成Bare Bones II。 恭喜你。

另见