PA-RISCバージョンでは、リンカーは関数シンボルをエイリアスするための+ afsフラグを提供し、GCCは-wrapオプションを提供します。
HPUX11iv3Itaniumと同様のラッパーフック手法を探しています。任意の推奨事項
HPUX 11iv3 は PA Risc リンカ オプション +afs をサポートしていますが、11iv3 では文書化されていないため、試してみたい場合は PA Risc のマニュアル ページを参照してください。
違いがあります。
IPF では、定義が参照と同じ翻訳単位にある場合、バインディングはデフォルトでコンパイル時に行われます。これは、PA (SOM および ELF) では逆のケースです。
コンパイル時に何かをバインドすると、命令シーケンスが異なり、バインドはリンケージ テーブル ルートをとりません。おそらくこれが、IPF で +afs が文書化されていない理由です。
ただし、「-Bextern=symbol」コンパイラ オプションを使用すると、コンパイラの動作は PA と同じになります。つまり、シンボルへのすべての参照はリンケージ テーブルを介して行われ、上記のテスト ケースは IPF でも機能します。
ただし、同じロード モジュールで解決されるシンボルに -Bextern を適用すると、パフォーマンスが低下します。