llvm-project/llvm/test/tools/llvm-objcopy
Alexander Shaposhnikov 6ecc6e62c1 [llvm-objcopy] Implement support for section groups
This diff adds support for SHT_GROUP sections to llvm-objcopy.
Some sections are interrelated and comprise a group.
For example, a definition of an inline function might require, 
in addition to the section containing its instructions, 
a read-only data section containing literals referenced inside the function.
A section of the type SHT_GROUP contains the indices of the group members,
therefore, it needs to be updated whenever the indices change.
Similarly, the fields sh_link, sh_info should be recalculated as well.

[Resubmit r328012 with the proper handling of endianness]

Test plan: make check-all

Differential revision: https://reviews.llvm.org/D43996

llvm-svn: 328143
2018-03-21 19:53:44 +00:00
..
Inputs [llvm-objcopy] Implement support for section groups 2018-03-21 19:53:44 +00:00
abs-symbol.test [llvm-objcopy] Add support for special section indexes in symbol table greater than SHN_LORESERVE 2017-09-07 23:02:50 +00:00
add-gnu-debuglink.test [llvm-objcopy] Use the full filename in --add-gnu-debuglink 2018-02-19 19:53:44 +00:00
add-section-remove.test [llvm-objcopy] Add option to add a progbits section from a file 2017-12-19 00:47:30 +00:00
add-section.test [llvm-objcopy] Add option to add a progbits section from a file 2017-12-19 00:47:30 +00:00
adjacent-segments.test Reland "[llvm-objcopy] Add support for nested and overlapping segments" 2017-09-19 21:37:35 +00:00
basic-binary-copy.test Reland "[llvm][llvm-objcopy] Added support for outputting to binary in llvm-objcopy" 2017-08-04 21:09:26 +00:00
basic-copy.test Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things started" 2017-08-01 00:33:58 +00:00
basic-keep.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
basic-only-keep.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
basic-relocations.test Reland "[llvm-objcopy] Add support for relocations" 2017-09-06 23:41:02 +00:00
binary-first-seg-offset-zero.test [llvm-objcopy] Change -O binary to respect section removal and behave like GNU objcopy 2017-11-15 19:13:31 +00:00
binary-no-paddr.test [llvm-objcopy] Use physical instead of virtual address when aligning and placing sections in binary 2018-01-22 19:27:30 +00:00
binary-out-error.test [llvm-objcopy] Refactor llvm-objcopy to use reader and writer objects 2018-01-25 22:46:17 +00:00
binary-paddr.test [llvm-objcopy] Use physical instead of virtual address when aligning and placing sections in binary 2018-01-22 19:27:30 +00:00
binary-remove-all-but-one.test [llvm-objcopy] Change -O binary to respect section removal and behave like GNU objcopy 2017-11-15 19:13:31 +00:00
binary-remove-end.test [llvm-objcopy] Change -O binary to respect section removal and behave like GNU objcopy 2017-11-15 19:13:31 +00:00
binary-remove-middle.test [llvm-objcopy] Change -O binary to respect section removal and behave like GNU objcopy 2017-11-15 19:13:31 +00:00
binary-segment-layout.test [llvm-objcopy] Use physical instead of virtual address when aligning and placing sections in binary 2018-01-22 19:27:30 +00:00
cannot-delete-dest.test Simplify test. 2017-12-05 18:26:23 +00:00
check-addr-offset-align-binary.test [llvm-objcopy] Fix bug in how segment alignment was being handled 2017-11-02 23:24:04 +00:00
check-addr-offset-align.test [llvm-objcopy] Fix bug in how segment alignment was being handled 2017-11-02 23:24:04 +00:00
common-symbol.test [llvm-objcopy] Add e_machine validity check for reserved section indexes 2017-09-13 03:04:50 +00:00
drawf-fission.test [llvm-objcopy] Add support for dwarf fission 2017-11-03 18:58:41 +00:00
dump-section.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
dynamic-relocations.test [llvm-objcopy] Add support for dynamic relocations 2017-09-26 18:02:25 +00:00
dynamic.test Reland "[llvm-objcopy] Add support for .dynamic, .dynsym, and .dynstr" 2017-09-20 17:11:58 +00:00
dynstr.test Reland "[llvm-objcopy] Add support for .dynamic, .dynsym, and .dynstr" 2017-09-20 17:11:58 +00:00
dynsym-error-remove-strtab.test [llvm-objcopy] Add support for removing sections 2017-10-10 18:47:09 +00:00
dynsym.test Reland "[llvm-objcopy] Add support for .dynamic, .dynsym, and .dynstr" 2017-09-20 17:11:58 +00:00
elf32be.test [llvm-objcopy] Support the rest of the ELF formats 2017-11-14 18:41:47 +00:00
elf32le.test [llvm-objcopy] Support the rest of the ELF formats 2017-11-14 18:41:47 +00:00
elf64be.test [llvm-objcopy] Support the rest of the ELF formats 2017-11-14 18:41:47 +00:00
empty-section.test Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things started" 2017-08-01 00:33:58 +00:00
explicit-keep-remove.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
explicit-only-keep-remove.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
fail-no-output-directory.test Make sure an error is always handled. 2017-11-08 21:15:21 +00:00
group-big-endian.test [llvm-objcopy] Implement support for section groups 2018-03-21 19:53:44 +00:00
group-unchanged.test [llvm-objcopy] Implement support for section groups 2018-03-21 19:53:44 +00:00
group.test [llvm-objcopy] Implement support for section groups 2018-03-21 19:53:44 +00:00
hexagon-unsupported-on-x86.test [llvm-objcopy] Add test to check that architecture specific values are not used on wrong architecture. 2017-09-19 19:05:15 +00:00
identical-segments.test Reland "[llvm-objcopy] Add support for nested and overlapping segments" 2017-09-19 21:37:35 +00:00
keep-many.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
keep-only-keep.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
localize-hidden.test [llvm-objcopy] Add --localize-hidden option 2018-01-05 19:19:09 +00:00
marker-segment.test [llvm-objcopy] Fix handling of zero-size segments in llvm-objcopy 2018-02-14 23:31:33 +00:00
no-symbol-relocation.test Reland "[llvm-objcopy] Add support for relocations" 2017-09-06 23:41:02 +00:00
only-keep-many.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
only-keep-remove-strtab.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
only-keep-strip-non-alloc.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
overlap-chain.test Reland "[llvm-objcopy] Add support for nested and overlapping segments" 2017-09-19 21:37:35 +00:00
parent-loop-check.test [llvm-objcopy] Change -O binary to respect section removal and behave like GNU objcopy 2017-11-15 19:13:31 +00:00
program-headers.test Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things started" 2017-08-01 00:33:58 +00:00
pt-phdr.test Reland "[llvm-objcopy] Add support for nested and overlapping segments" 2017-09-19 21:37:35 +00:00
reloc-error-remove-symtab.test [llvm-objcopy] Add support for removing sections 2017-10-10 18:47:09 +00:00
remove-multiple-sections.test [llvm-objcopy] Add ability to remove multiple sections by name 2017-10-10 23:02:43 +00:00
remove-section-with-symbol.test [llvm-objcopy] Add support for removing sections 2017-10-10 18:47:09 +00:00
remove-section.test [llvm-objcopy] Add support for removing sections 2017-10-10 18:47:09 +00:00
remove-shstrtab-error.test [llvm-objcopy] Refactor llvm-objcopy to use reader and writer objects 2018-01-25 22:46:17 +00:00
remove-symtab.test [llvm-objcopy] Add support for removing sections 2017-10-10 18:47:09 +00:00
section-index-unsupported.test [llvm-objcopy] Add test to check that architecture specific values are not used on wrong architecture. 2017-09-19 19:05:15 +00:00
sectionless-segment.test [llvm][llvm-objcopy] When outputting to binary don't output segments that cover no sections 2017-08-04 23:18:18 +00:00
segment-shift-section-remove.test [llvm-objcopy] Add support for removing sections 2017-10-10 18:47:09 +00:00
segment-shift.test [llvm-objcopy] Fix major layout bugs in llvm-objcopy 2017-10-04 17:44:42 +00:00
segment-test-remove-section.test [llvm-objcopy] Add support for removing sections 2017-10-10 18:47:09 +00:00
strip-all-gnu.test [llvm-objcopy] Add --strip-all-gnu and change --strip-all 2017-11-27 18:56:01 +00:00
strip-all.test [llvm-objcopy] Add --strip-all-gnu and change --strip-all 2017-11-27 18:56:01 +00:00
strip-debug.test [llvm-objcopy] Add --strip-debug 2017-11-13 22:13:08 +00:00
strip-dwo-groups.test [llvm-objcopy] Implement support for section groups 2018-03-21 19:53:44 +00:00
strip-dwo-inplace.test [llvm-objcopy] Make modifications in-place if output is not specified 2018-02-09 23:33:31 +00:00
strip-non-alloc.test [llvm-objcopy] Add -strip-non-alloc option to remove all non-allocated sections 2017-11-14 18:50:24 +00:00
strip-sections-keep.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
strip-sections-only-keep.test [llvm-objcopy] Add support for --only-keep/-j and --keep 2017-11-30 20:14:53 +00:00
strip-sections.test Reland "[llvm-objcopy] Add support for --strip-sections to remove all section headers leaving only program headers and loadable segment data" 2017-10-11 18:09:18 +00:00
symbol-copy.test [llvm-objcopy] Add support for visibility 2018-01-02 23:01:24 +00:00
symtab-error-on-remove-strtab.test [llvm-objcopy] Add support for removing sections 2017-10-10 18:47:09 +00:00
triple-overlap.test Reland "[llvm-objcopy] Add support for nested and overlapping segments" 2017-09-19 21:37:35 +00:00
two-seg-remove-end.test [llvm-objcopy] Use physical instead of virtual address when aligning and placing sections in binary 2018-01-22 19:27:30 +00:00
two-seg-remove-first.test [llvm-objcopy] Use physical instead of virtual address when aligning and placing sections in binary 2018-01-22 19:27:30 +00:00
two-seg-remove-third-sec.test [llvm-objcopy] Use physical instead of virtual address when aligning and placing sections in binary 2018-01-22 19:27:30 +00:00