試みたにもかかわらず、_.eh_frame
_セクションを含むELF32ビットx86ファイルがあります1 それを削除します。
未使用のセクションを含む他のセクションのシンボルに触れずに、_.eh_frame
_セクションを削除したいと思います。
strip
にはオプション_--remove-only
_がないようで、常に他のセクションを変更することになります。
ファイル内の他の部分を変更せずに単一のELFセクションを削除するにはどうすればよいですか?
1その他の質問 で提案されているように、_gcc-3.4.3 -fomit-frame-pointer -fno-exceptions -fno-asynchronous-unwind-tables -fno-unwind-tables
_のいくつかのバリエーションを試しましたが、_.eh_frame
_セクションは常にあります。これはおそらく、古いGCC(3.4.3)を使用する必要があるという事実によるものです...ソースファイル自体には、次のセクションを必要とする可能性のある特別なものは何も含まれていません:int main() { return 0; }
。
strip
は、その名前にもかかわらず、ここでは適切なツールではありません。
考えられる解決策はobjcopy --remove-section .eh_frame a.out
、 どこ a.out
は、変更するELFファイルの名前です。
残念ながら、objcopy
について知らない限り、strip
を使用してソリューションを検索し、何も見つからない可能性があります。