コンパイルするプログラムのドメイン固有の分析を行うGCCプラグインを作成しようとしています。私は、生成されたオブジェクトファイルにある種のメタデータ(デバッグ情報など)として解析結果を埋め込む最良の方法については疑問に思っています。GCCプラグインからオブジェクトファイルにメタデータを埋め込む方法
理想的には、各オブジェクトファイルにいくつかのメタデータ(私の場合はテキスト)を埋め込む必要があります。リンカーはリンクしているすべてのオブジェクトのデータを保持する必要があります。最終バイナリはobjdump
,readelf
またはそれに類するものを使用します。
私の現在のアイデアは、GIMPLE ASTに追加することで、各コンパイル単位に一意の名前のグローバル文字列変数を追加しようとしています。しかし、もっと規律のある方法があるのだろうかと思っています。プラグインはデバッグ情報や他のそのようなメタデータをどのように生成できますか?