summaryrefslogtreecommitdiffstats
path: root/llvm/docs/CommandGuide/llvm-objcopy.rst
Commit message (Collapse)AuthorAgeFilesLines
* [llvm-objcopy][MachO] Implement --add-sectionSeiya Nuta2019-12-161-0/+3
| | | | | | | | | | | | Reviewers: alexshap, rupprecht, jhenderson Reviewed By: alexshap, jhenderson Subscribers: mgorny, jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66283
* [llvm-objcopy][MachO] Implement --dump-sectionSeiya Nuta2019-11-251-9/+12
| | | | | | | | | | | | Reviewers: alexshap, rupprecht, jhenderson Reviewed By: alexshap, rupprecht, jhenderson Subscribers: MaskRay, jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66408
* [llvm-objcopy][MachO] Implement --remove-sectionSeiya Nuta2019-11-151-0/+3
| | | | | | | | | | | | Reviewers: alexshap, rupprecht, jhenderson Reviewed By: rupprecht, jhenderson Subscribers: jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66282
* [llvm-objcopy][COFF] Implement --redefine-sym and --redefine-symsFangrui Song2019-11-121-13/+13
| | | | | | | | | | | | | The parsing error tests in ELF/redefine-symbols.test are not specific to ELF. Move them to redefine-symbols.test. Add COFF/redefine-symbols.test for COFF specific tests. Also fix the documentation regarding --redefine-syms: the old and new names are separated by whitespace, not an equals sign. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D70036
* [llvm-objcopy][ELF] Implement --only-keep-debugFangrui Song2019-11-051-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --only-keep-debug produces a debug file as the output that only preserves contents of sections useful for debugging purposes (the binutils implementation preserves SHT_NOTE and non-SHF_ALLOC sections), by changing their section types to SHT_NOBITS and rewritting file offsets. See https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html The intended use case is: ``` llvm-objcopy --only-keep-debug a a.dbg llvm-objcopy --strip-debug a b llvm-objcopy --add-gnu-debuglink=a.dbg b ``` The current layout algorithm is incapable of deleting contents and shrinking segments, so it is not suitable for implementing the functionality. This patch adds a new algorithm which assigns sh_offset to sections first, then modifies p_offset/p_filesz of program headers. It bears a resemblance to lld/ELF/Writer.cpp. Reviewed By: jhenderson, jakehehrlich Differential Revision: https://reviews.llvm.org/D67137
* [llvm-objcopy] Preserve .ARM.attributes section when stripping filesJames Henderson2019-10-311-1/+2
| | | | | | | | | | | | | | This works around a bug in Debian's patchset for glibc. The bug is described in detail in the upstream debian bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943798, but the short version of it is that glibc on any Debian based distro don't load libraries unless it has a .ARM.attribute section. Reviewed by: jhenderson, rupprecht, MaskRay, jakehehrlich Differential Revision: https://reviews.llvm.org/D69188 Patch by Tobias Hieta.
* [llvm-objcopy][MachO] Implement --strip-allSeiya Nuta2019-10-311-2/+2
| | | | | | | | | | | | Reviewers: alexshap, rupprecht, jdoerfert, jhenderson Reviewed By: alexshap Subscribers: jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66281
* [llvm-objcopy][MachO] Implement --only-sectionSeiya Nuta2019-10-281-0/+3
| | | | | | | | | | | | Reviewers: alexshap, rupprecht, jdoerfert, jhenderson Reviewed By: alexshap, rupprecht, jhenderson Subscribers: mgorny, jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65541
* [llvm-objcopy] Add support for shell wildcardsJordan Rupprecht2019-10-171-0/+24
| | | | | | | | | | | | | | | | | | | | Summary: GNU objcopy accepts the --wildcard flag to allow wildcard matching on symbol-related flags. (Note: it's implicitly true for section flags). The basic syntax is to allow *, ?, \, and [] which work similarly to how they work in a shell. Additionally, starting a wildcard with ! causes that wildcard to prevent it from matching a flag. Use an updated GlobPattern in libSupport to handle these patterns. It does not fully match the `fnmatch` used by GNU objcopy since named character classes (e.g. `[[:digit:]]`) are not supported, but this should support most existing use cases (mostly just `*` is what's used anyway). Reviewers: jhenderson, MaskRay, evgeny777, espindola, alexshap Reviewed By: MaskRay Subscribers: nickdesaulniers, emaste, arichardson, hiraditya, jakehehrlich, abrachet, seiya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66613 llvm-svn: 375169
* [llvm-objcopy] Add --set-section-alignmentFangrui Song2019-10-021-0/+5
| | | | | | | | | | | | | Fixes PR43181. This option was recently added to GNU objcopy (binutils PR24942). `llvm-objcopy -I binary -O elf64-x86-64 --set-section-alignment .data=8` can set the alignment of .data. Reviewed By: grimar, jhenderson, rupprecht Differential Revision: https://reviews.llvm.org/D67656 llvm-svn: 373461
* [docs][llvm-strip][llvm-objcopy] Improve wording and fix highlightingJames Henderson2019-09-241-2/+2
| | | | llvm-svn: 372754
* [docs] Make --version text more correctJames Henderson2019-09-171-2/+2
| | | | | | | | | | | | | | | Follow-up to r371983. Referring to "this program" in the description of the --version option in the documentation isn't exactly correct, because the docs are not part of the program, and so "this program" doesn't really refer to anything. This patch brings the other users of this terminology into line with the new updates to llvm-size and llvm-strings. Reviewed by: alexshap, MaskRay Differential Revision: https://reviews.llvm.org/D67618 llvm-svn: 372107
* [llvm-objcopy] Ignore -B --binary-architecture=Fangrui Song2019-09-141-17/+4
| | | | | | | | | | | | | | | | | | | | | | | GNU objcopy documents that -B is only useful with architecture-less input (i.e. "binary" or "ihex"). After D67144, -O defaults to -I, and -B is essentially a NOP. * If -O is binary/ihex, GNU objcopy ignores -B. * If -O is elf*, -B provides the e_machine field in GNU objcopy. So to convert a blob to an ELF, `-I binary -B i386:x86-64 -O elf64-x86-64` has to be specified. `-I binary -B i386:x86-64 -O elf64-x86-64` creates an ELF with its e_machine field set to EM_NONE in GNU objcopy, but a regular x86_64 ELF in elftoolchain elfcopy. Follow the elftoolchain approach (ignoring -B) to simplify code. Users that expect their command line portable should specify -B. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D67215 llvm-svn: 371914
* [llvm-objcopy] Add support for response files in llvm-strip and llvm-objcopyMichael Pozulp2019-09-141-0/+4
| | | | | | | | | | | | | | | | Summary: Addresses https://bugs.llvm.org/show_bug.cgi?id=42671 Reviewers: jhenderson, espindola, alexshap, rupprecht Reviewed By: jhenderson Subscribers: seiya, emaste, arichardson, jakehehrlich, MaskRay, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65372 llvm-svn: 371911
* [docs][llvm-objcopy][llvm-strip] Improve --strip-unneeded descriptionJames Henderson2019-09-131-1/+1
| | | | | | | | | | | | | | Behaviour was recently added to this switch to strip debug sections too. See r369761. This change also makes the description for the --strip-unneeded switch consistent between the two docs. Reviewed by: MaskRay Differential Revision: https://reviews.llvm.org/D67546 llvm-svn: 371855
* [llvm-objcopy] Allow the visibility of symbols created by --binary andChris Jackson2019-08-301-0/+12
| | | | | | --add-symbol to be specified with --new-symbol-visibility llvm-svn: 370458
* [llvm-objcopy] Allow 'protected' visibility to be set when usingChris Jackson2019-08-151-0/+1
| | | | | | | | | | add-symbol Reviewers: Maskray, rupprecht Differential Revision: https://reviews.llvm.org/D65891 llvm-svn: 368982
* [llvm-objcopy] Add support for --add-section for COFFSergey Dmitriev2019-07-261-7/+7
| | | | | | | | This patch enables support for --add-section=... option for COFF objects. Differential Revision: https://reviews.llvm.org/D65040 llvm-svn: 367130
* [docs][llvm-objcopy] Add description of binary input/output to docJames Henderson2019-07-081-2/+17
| | | | | | | | | | | | We briefly referred to being able to specify --target=binary without explaining what binary input/output meant. This change adds a section on this. Reviewed by: MaskRay, abrachet Differential Revision: https://reviews.llvm.org/D64245 llvm-svn: 365312
* [docs][llvm-objcopy] Improve some wording.James Henderson2019-07-051-4/+4
| | | | llvm-svn: 365187
* [docs][llvm-objcopy] Write documentation for llvm-objcopyJames Henderson2019-07-031-0/+482
This patch addresses https://bugs.llvm.org/show_bug.cgi?id=42183 by replacing the stub markdown doc for llvm-objcopy with a full one describing the current options available in llvm-objcopy. Reviewed by: jakehehrlich, MaskRay Differential Revision: https://reviews.llvm.org/D63820 llvm-svn: 365042
OpenPOWER on IntegriCloud