Go to main content

手册页部分 1:用户命令

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

elfcompress (1)

名称

elfcompress - 目标文件的压缩/解压调试节

用法概要

elfcompress [-fV] [-n name] [-t type] file...

描述

elfcompress 命令用于在 ELF 目标文件中压缩或解压调试节。除非另有说明,否则会处理所有调试和注释节。

如果输入文件是归档文件(请参见 ar.h (3HEAD)),则会将归档文件视为一组独立文件。如果归档成员并非目标文件,则会保留不变。

elfcompress 无法修改包含在分段中的节。此类可分配的节会设置其 SHF_ALLOC 节标志。elfcompress 无法修改类型为 SHT_NOBITS 的节。–t 选项指定的压缩操作可能对候选节带来额外限制。请参见 –t 选项和附注。

当使用 –n 选项指定一个或多个要处理的节时,只会处理指定的节,其他所有节会保留未修改状态。如果没有使用 –n 选项,则 elfcompress 会选择与 –t 选项指定的压缩操作兼容的所有节。

选项

支持以下选项:

–f

缺省情况下,仅当压缩后生成的大小不超过原始数据大小时,elfcompress 才会压缩节。指定 –f 进行强制压缩,即使生成大小超过原始大小。

–n name

指定要处理的节的名称。elfcompress 可采用多个 –n 选项,以允许指定多个节。如果没有使用 –n,则 elfcompress 会选择与指定的压缩操作兼容的所有调试节。请参见 –t 选项和附注。

–t type

指定要执行的压缩操作。以下是可识别的压缩类型。

none

压缩的节已解压。

zlib

使用 ZLIB 压缩来压缩调试节。候选节必须不可分配(未设置 SHF_ALLOC 标志)并采用节类型 SHT_PROGBITSSHT_SUNW_DEBUGSHT_SUNW_DEBUGSTRSHT_SUNW_ANNOTATE。生成的节将设置 SHF_COMPRESSED 节标志来标识使用了压缩。

zlib-gnu

使用 ZLIB 压缩来压缩调试节,使用 GNU 节压缩格式。候选节必须不可分配(未设置 SHF_ALLOC 标志)、无法拥有 SHT_NOBITS 类型,且必须拥有以 .debug 开始的名称。生成的节将重命名为以 .zdebug 开头来标识使用了压缩。

如果未指定 –t 选项,则效果等同于指定 –t zlib

–V
–-version

输出版本信息。

–?
–-help

输出用法消息并立即退出。

附注

zlib-gnu 压缩格式限制为名称以 .debug 开始的节,同时可将缺省 zlib 压缩格式应用于具有任意名称的节。如果指定了 –t zlib-gnu,但未指定 –n 选项,则会解压名称与 zlib-gnu 格式不兼容的之前压缩的任何节。

elfcompress 命令无法修改核心文件。

示例

示例 1 向所有调试节应用 zlib 压缩。
% elfcompress file
示例 2 解压所有调试节
% elfcompress -t none file
示例 3 压缩 .debug_info 节,使用 GNU 类型格式
% elfcompress -t zlib-gnu -n .debug_info file

文件

/tmp/elfcompress*

临时文件

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
developer/base-developer-utilities
接口稳定性
Committed(已确定)

另请参见

ar(1)as(1)ld(1)mcs(1)strip(1)elf(3ELF)ar.h(3HEAD), zlib(3), a.out(5)attributes(7)

Oracle Solaris 11.4 Linkers and Libraries Guide