1

私は OS を持たない特注の PowerPC プラットフォーム用に newlib をコンパイルしています。<newplatform>ネットで情報を読んでいると、libglossのサブディレクトリにスタブ関数を実装する必要があることに気付きました。

私が混乱しているのは、newlib をコンパイルするときにこれがどのように検出されるかということです。--targetたとえば、構成する引数の最後の部分powerpc-ibm-<newplatform>ですか?

--targetこの場合、 binutils と gcc をコンパイルするときに同じものを使用する必要があると思いますか?

ありがとうございました

4

2 に答える 2

1

私もnewlibとGCCを移植しました。そして、newlibを機能させるために多くのことをする必要がなかったことを覚えています(GCC、gas、libbfdの移植がほとんどの作業でした)。

浮動小数点数に関するいくつかのファイルを微調整し、いくつかのより高度な関数を使用しないようにするいくつかのPOSIX / SomeOtherStandardフラグをオフにし、レジ​​スタの状態をジャンプバッファにロードおよび保存するlongjmp/のサポートコードを記述する必要がありました。ただし、適切なマシンサブディレクトリなどを使用するようsetjmpに、ターゲットを使用して指定する必要があります。ターゲットを認識し、完全な構成の3倍(cpu-manufacturer-osなど)を出力するために--target、小さなコードを追加する必要があったことを覚えています。configure.subちょうど私が呼ばれるファイルを編集しなければならなかったことがわかりましたconfigure.host。これはターゲットのいくつかのオプションを設定します(たとえば、オペレーティングシステムがによって発生した信号を処理するraiseかどうか、またはnewlib自体が処理をシミュレートする必要があるかどうか)。

私はこのAnthonyGreenのブログをガイドラインとして使用しました。彼は、GCC、newlib、binutilsの移植について説明しています。あなたが自分でそれをしなければならないとき、それは素晴らしい情報源だと思います。とにかく楽しい読書。自立型C(シミュレーターの端末に書き込むダミー​​の読み取り/書き込み関数付き)のみを必要とするいくつかの楽しいCプログラムをコンパイルして実行するのに合計2か月かかりました。

ですから、仕事量は確かに管理できると思います。私をほとんど夢中にさせたのは、libglossのビルドスクリプトでした。私は確かにそれらのautoconfの魔法で迷子になりました:)とにかく、私はあなたに幸運を祈ります!:)

于 2009-04-09T22:55:07.557 に答える
0

Porting Newlibをチェックしてください。

見積もり:

newlib を自分の OS に移植するという非常に困難な 1 週間を過ごした後、newlib を移植するための要件と実際の移植方法を概説するチュートリアルを書くことにしました。どこかから既にバイナリをロードでき、これらのバイナリはコンパイルされた C コードであると想定しています。また、syscall インターフェースが既にセットアップされていると仮定します。なぜ待つのですか?クラッキングしよう!

于 2009-04-09T22:31:12.543 に答える