TLDR: gcc のクロスネイティブ ビルドで致命的なエラー 'failed to get process times' を取得しています。report_times コードを gcc.c から削除するか、gcc コマンド ライン オプションを使用して report_times を無効にするか、libiberty なしで gcc をビルドできますか (report_times で使用される pex_get_times が含まれます)
詳細 さまざまな問題に頭を悩ませた後、(ついに) Android NDK スタンドアロン ツールチェーンを使用して binutils 2.23 と gcc 4.70 をビルドすることに成功しました。
私の現在の問題は、それを自分のデバイスで実行することです。
デバイスで gcc をテストするために、標準の「hello world」(ここからコピー) を作成しました。私が実行すると:
arm-linux-eabi-gcc hello.c -o hello または: arm-linux-eabi-gcc hello.c
次のエラーが表示されます。
arm-linux-eabi-gcc: 致命的なエラー: 処理時間を取得できませんでした: そのようなファイルまたはディレクトリはありません。
Google は、gcc.c ソースへのリンクを除いて、多くを返しませんでした。ソースを調べると、report_times という関数 (モジュール? 拡張子?) にエラーが見つかりました。エラーは、関数 (モジュール? 拡張子?) pex_get_times によって返されます....処理時間を取得できない場合は、エラーが返されると思います。
pex_get_times 関数 (モジュール? 拡張? よくわかりません) は libiberty で定義されています。--disable-build-libiberty を使用できますが、ホスト (私の NookHD) gcc ビルドには役に立ちません。
私の質問:
- gcc.c のこの部分を安全に (そして簡単に) 削除することはできますか? また
- arm-linux-eabi-gcc に report_times を使用しないように指示するコマンド ライン オプションはありますか? また
- gcc と binutils の両方でホスト/ターゲットの libiberty のビルドを無効にする方法はありますか?それによってエラーが修正されますか?
いつものように…答えを待ちながら研究を続けます。