2

Linux カーネル 3.8 のカスタム バージョンをビルドしようとしています。リンカの動作を少し変えたいので、ldscripts を変更しました。具体的には、 binutils -> make -> change ldscripts -> make installを構成します。ただし、リンカーを使用して libc をコンパイルしようとすると、次のように表示されます。

GNU ld (GNU Binutils) 2.23
  Supported emulations:
   elf32_sparc
   sparclinux
   elf64_sparc
   sun4
using internal linker script:
==================================================
/* Script for --shared -z combreloc: shared library, combine & sort relocs */

問題は、ldscripts を変更し、各スクリプトを認識するために各スクリプトの先頭にタグを追加したことですが、コンパイラは気にしないようです。ただし、私のシステムには他のエルフスクリプトがないため、間違ったライブラリパスを検索するオプションは実際にはオプションではありません。

私がここに欠けているものはありますか?

sparc 用にクロスコンパイルしていることに注意してください

4

2 に答える 2

0

デフォルトldのスクリプトはコンパイラ ドライバ ( ) にコンパイルされるgccため、少なくともツールチェーンを再構築する必要があります。

gccこれはおそらく、組み込まれている以外のリンカー スクリプトを参照しないケースでもあります。そのため、ツールチェーンでそれらを変更する必要があります (仕様ファイルのどこかにある可能性があります)。

于 2013-11-12T15:56:59.797 に答える