aboutsummaryrefslogtreecommitdiff
path: root/llvm/docs/CommandGuide/llvm-objcopy.rst
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2024-04-04 09:33:18 -0700
committerFangrui Song <i@maskray.me>2024-04-04 09:33:18 -0700
commit9e3b64b9f95aadf57568576712902a272fe66503 (patch)
treebb4b9ee8235e7397e3962ea8212a39c456af1ca6 /llvm/docs/CommandGuide/llvm-objcopy.rst
parent0b293e8c36d97bbd7f85ed5b67ce510ff7fd86ee (diff)
downloadllvm-9e3b64b9f95aadf57568576712902a272fe66503.zip
llvm-9e3b64b9f95aadf57568576712902a272fe66503.tar.gz
llvm-9e3b64b9f95aadf57568576712902a272fe66503.tar.bz2
[llvm-objcopy] Add --compress-sections
--compress-sections is similar to --compress-debug-sections but applies to arbitrary sections. * `--compress-sections <section>=none`: decompress sections * `--compress-sections <section>=[zlib|zstd]`: compress sections with zlib/zstd Like `--remove-section`, the pattern is by default a glob, but a regex when --regex is specified. For `--remove-section` like options, `!` prevents matches and is not dependent on ordering (see `ELF/wildcard-syntax.test`). Since `--compress-sections a=zlib --compress-sections a=none` naturally allows overriding, having an order-independent `!` would be confusing. Therefore, `!` is disallowed. Sections within a segment are effectively immutable. Report an error for an attempt to (de)compress them. `SHF_ALLOC` sections in a relocatable file can be compressed, but linkers usually reject them. Link: https://discourse.llvm.org/t/rfc-compress-arbitrary-sections-with-ld-lld-compress-sections/71674 Pull Request: https://github.com/llvm/llvm-project/pull/85036
Diffstat (limited to 'llvm/docs/CommandGuide/llvm-objcopy.rst')
-rw-r--r--llvm/docs/CommandGuide/llvm-objcopy.rst8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/docs/CommandGuide/llvm-objcopy.rst b/llvm/docs/CommandGuide/llvm-objcopy.rst
index 985d16e..57d6280 100644
--- a/llvm/docs/CommandGuide/llvm-objcopy.rst
+++ b/llvm/docs/CommandGuide/llvm-objcopy.rst
@@ -309,6 +309,14 @@ them.
Compress DWARF debug sections in the output, using the specified format.
Supported formats are ``zlib`` and ``zstd``. Use ``zlib`` if ``<format>`` is omitted.
+.. option:: --compress-sections <section>=<format>
+
+ Compress or decompress sections matched by ``<section>`` using the specified
+ format. Supported formats are ``zlib`` and ``zstd``. Specify ``none`` for
+ decompression. When a section is matched by multiple options, the last one
+ wins. A wildcard ``<section>`` starting with '!' is disallowed.
+ Sections within a segment cannot be (de)compressed.
+
.. option:: --decompress-debug-sections
Decompress any compressed DWARF debug sections in the output.