x8664およびLinuxプラットフォームを想定します。
ELFヘッダーを調べると、オフセットはすべて64ビットです。
したがって、relocatoin R_X86_64_64を使用して、4Gより大きいオブジェクトファイルを簡単に作成できます。これは、静的.oファイルと実行可能ファイルが64ビットで表現できる最大値になる可能性があることを意味します。
ただし、gccのような共有ライブラリの場合、R_X86_64_PLT32の再配置しかありません。つまり、4GBを超える共有ライブラリを作成することは不可能ですよね?
したがって、巨大なプログラムを構築したい場合、.oファイルの1つが十分に巨大(> 4GB)である場合、唯一の選択肢は静的リンクですか?
コメントは大歓迎です。
ありがとう、リミ