Oracle Solaris 10 8/11 Release から -zstrip-class が入った2020年02月26日 14時09分53秒

Oracle Solaris 10 8/11 Release から -zstrip-class が導入された。以前の -s オプションが高性能になったオプションで、リンク時に特定のセクションを読み込まないようにバイナリを生成できる。言わば strip を既にかけてある様なもの。

32 ビットのプログラムだと、4GB を越えた実行ファイルが生成できない。 strip の様に後からシンボルを削除する方式だと、ファイルが大きすぎてリンクができないので実行ファイルが出来ない場合には対処できない。


ld: elf error: file a.out elf_update: Format error: file size exceeds 4GB 32-bit limit

といったエラーになる。

cc -zstrip-class=symbol -zstrep-class=debug code.c 等のようにして、複数のセクションを指定できたりもする。elfdump を用いて出力を調べられる。