Oracle Solaris リンカーは、前述の圧縮形式に加え、GNU ツールチェーンで使用される別の形式を認識します。この形式では、圧縮を示すセクションフラグは使用されません。代わりに、セクション名が .zdebug の接頭辞で始まっていれば、圧縮されたデータを含むセクションであることがわかります。GNU 形式の圧縮セクションは、次の圧縮ヘッダー構造から始まります。
typedef struct { uchar_t gch_magic[4]; uchar_t gch_size[8]; } Chdr_GNU;
圧縮アルゴリズムを特定する 4 バイトのマジックナンバー。現時点では、ZLIB 圧縮だけがサポートされています。ZLIB 圧縮の gch_magic の値は、Table 12–11 に示すとおりです。
64 ビット ELFDATA2MSB ビッグエンディアン整数値としてエンコードされた、圧縮解除後のデータのサイズ (単位: バイト)。
|