代码之家  ›  专栏  ›  技术社区  ›  sparklewhiskers

为定制平台构建新库时指示libgloss机器

  •  1
  • sparklewhiskers  · 技术社区  · 15 年前

    我正在为没有操作系统的定制PowerPC平台编译newlib。在网上阅读信息时,我意识到我需要在 <newplatform> libgloss的子目录。

    我的困惑是,当我编译newlib时,这个问题将如何解决。是最后一部分吗 --target 要配置的参数,例如 powerpc-ibm-<newplatform> ?

    如果是这样的话,我想我应该用同样的方法 --目标 编译binutils和gcc时?

    谢谢你

    2 回复  |  直到 15 年前
        1
  •  1
  •   Johannes Schaub - litb    15 年前

    我自己也移植了newlib和gcc。我记得我不需要做太多的事情来让新的lib工作(移植gcc、gas和libbfd是大部分工作)。

    只需要调整一些关于浮点数的文件,关闭一些posix/someother标准标志,使其不使用更复杂的函数,并为 longjmp / setjmp 将寄存器状态加载并存储到跳转缓冲区中。但是你必须告诉它目标使用 --target 所以它使用了正确的机器子目录和其他什么。我记得我必须在 configure.sub 为了让它知道我的目标和打印出完整的配置trible(CPU制造商操作系统或类似)。刚发现我不得不编辑一个名为 configure.host 同样,这也为您的目标设置了一些选项(例如,操作系统是否处理上升的信号) raise 或者newlib本身是否应模拟处理)。

    我用过 this blog 以安东尼·格林为指导,他描述了海湾合作委员会、新自由党和宾努利的移植。我认为这是一个很好的来源,当你必须自己去做。总之是一本有趣的书。编译和运行一些只需要独立C的有趣的C程序总共花了2个月时间(使用写入模拟器终端的虚拟读/写函数)。

    所以我认为工作量是可以控制的。让我几乎发疯的是 libgloss 的生成脚本。我当然输在了自动密码的魔术师中:)不管怎样,祝你好运!:)

        2
  •  0
  •   lothar    15 年前

    退房 Porting Newlib .

    报价:

    在尝试将newlib移植到我自己的操作系统上一周后,我决定编写一个教程,概述移植newlib的要求和实际操作方法。我假设您已经可以从某个地方加载二进制文件,并且这些二进制文件是编译后的C代码。我还假设您已经有了一个系统调用接口设置。为什么等待?我们开始吧!