-
05-07-2019 - |
質問
バイトコードを出力するCコンパイラを作成しました。これは、複数のプラットフォームで実行される組み込みプラットフォーム用のアプリケーションを作成できるようにするためです。
コンパイラとアセンブラがあります。
リンカーを記述する必要があり、行き詰まっています。
オブジェクト形式はカスタムで、バイトコードインタープリターを中心に設計されているため、既存のリンカーを実際に使用することはできません。
最大のハードルは、リンクされたバイナリを出力するためにオブジェクトコードを整理する方法です。 現時点では、動的リンクは必要ありません。 最初に静的リンクを機能させる必要があります。
解決
http://linker.iecc.com は、このテーマについて私が知っている唯一の本です。
他のヒント
ゴールドリンカー(現在はbinutilsの一部)の主要な開発者の1人であるイアンランステイラーは、リンカーの仕組みに関する一連のブログを投稿しました。 こちらで見つけることができます。
2番目のリンカーとローダーの本。オブジェクト形式はカスタム形式であると述べています。フォーマットが制御可能な場合、バイトコードでELFフォーマットを使用して、新しいマシンアーキテクチャ(x86、SPARC、ARMなど)として使用することを検討できます。GNUbinutilsソースは、「アーキテクチャ」 ;。
所属していません StackOverflow