llvm-project/llvm/test/tools/llvm-objcopy/ELF
George Rimar 6da44ad75d [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping.
Currently, YAML has the following syntax for describing the symbols:

Symbols:
  Local:
    LocalSymbol1:
    ...
    LocalSymbol2:
    ...
  ...
  Global:
    GlobalSymbol1:
  ...
  Weak:
  ...
  GNUUnique:

I.e. symbols are grouped by their bindings. That is not very convenient,
because:

It does not allow to set a custom binding, what can be useful for producing
broken/special outputs for test cases. Adding a new binding would require to
change a syntax (what we observed when added GNUUnique recently).

It does not allow to change the order of the symbols in .symtab/.dynsym,
i.e. currently all Local symbols are placed first, then Global, Weak and GNUUnique
are following, but we are not able to change the order.

It is not consistent. Binding is just one of the properties of the symbol,
we do not group them by other properties.

It makes the code more complex that it can be. This patch shows it can be simplified
with the change performed.

The patch changes the syntax to just:

Symbols:
  Symbol1:
  ...
  Symbol2:
  ...
...

With that, we are able to work with the binding field just like with any other symbol property.

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

llvm-svn: 357595
2019-04-03 14:53:42 +00:00
..
Inputs [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
abs-symbol.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
add-gnu-debuglink.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
add-note.test [llvm-objcopy] Use SHT_NOTE for added note sections. 2019-01-15 16:57:23 +00:00
add-section-remove.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
add-section-special.test [llvm-objcopy] Use SHT_NOTE for added note sections. 2019-01-15 16:57:23 +00:00
add-section.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
add-symbol.test [llvm-objcopy] Cleanup errors from CopyConfig and remove llvm-objcopy.h dependency 2019-03-13 22:26:01 +00:00
adjacent-segments.test
armexidx-link.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
auto-remove-shndx.test [llvm-objcopy] [COFF] Fix handling of aux symbols for big objects 2019-01-23 11:54:51 +00:00
bad-build-id.test [llvm-objcopy][NFC] More error propagation 2019-01-30 14:36:53 +00:00
bad-output-format.test [llvm-objcopy][NFC] More error cleanup 2019-02-21 17:05:19 +00:00
basic-archive-copy.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
basic-binary-copy.test
basic-copy.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
basic-keep.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
basic-only-keep-debug.test [llvm-strip] Hook up (unimplemented) --only-keep-debug 2019-03-14 21:51:42 +00:00
basic-only-section.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
basic-relocations.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
binary-first-seg-offset-zero.test
binary-input-and-output.test
binary-input-arch.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
binary-input-error.test [llvm-objcopy][NFC] More error cleanup 2019-02-21 17:05:19 +00:00
binary-input-with-arch.test [llvm-objcopy]Add support for *-freebsd output formats 2019-03-22 10:21:09 +00:00
binary-input.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
binary-no-paddr.test
binary-out-error.test
binary-output-empty.test [llvm-objcopy] Fix crash when writing empty binary output 2019-01-28 15:02:40 +00:00
binary-paddr.test
binary-remove-all-but-one.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
binary-remove-end.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
binary-remove-middle.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
binary-segment-layout.test
build-id-link-dir.test
cannot-delete-dest.test
change-entry-point.test [llvm-objcopy] Add --set-start, --change-start and --adjust-start 2019-02-26 09:24:22 +00:00
check-addr-offset-align-binary.test
check-addr-offset-align.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
common-symbol.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
compress-and-decompress-debug-sections-error.test [llvm-objcopy][NFC] More error cleanup 2019-02-21 17:05:19 +00:00
compress-debug-sections-default-gnu.test
compress-debug-sections-default.test
compress-debug-sections-groups.test Recommit r356738 "[llvm-objcopy] - Implement replaceSectionReferences for GroupSection class." 2019-03-24 14:41:45 +00:00
compress-debug-sections-invalid-format.test [llvm-objcopy][NFC] More error cleanup 2019-02-21 17:05:19 +00:00
compress-debug-sections-symbols.test [llvm-objcopy] - Use replaceSectionReferences to update the sections for symbols in symbol table. 2019-03-20 13:57:47 +00:00
compress-debug-sections-zlib-gnu.test [llvm-objcopy] - Fix --compress-debug-sections when there are relocations. 2019-03-11 11:01:24 +00:00
compress-debug-sections-zlib-header.test [llvm-objcopy] - Simplify `isCompressable` and fix the issue relative. 2019-03-05 13:07:43 +00:00
compress-debug-sections-zlib.test [llvm-objcopy] - Fix --compress-debug-sections when there are relocations. 2019-03-11 11:01:24 +00:00
compress-debug-sections.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
copy-after-strip-sections.test [llvm-objcopy]Allow llvm-objcopy to be used on an ELF file with no section headers 2019-04-02 14:11:13 +00:00
copy-osabi.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
cross-arch-headers.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
cross-arch-sections-symbols.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
deterministic-archive.test
discard-all.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
discard-locals-rel.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
discard-locals.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
discard-mix-local-and-all.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
drawf-fission.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
dump-section.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
dynamic-relocations.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
dynamic.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
dynstr.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
dynsym-error-remove-strtab.test
dynsym.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
elf32be.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
elf32le.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
elf64be.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
empty-section.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
explicit-keep-remove.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
explicit-only-section-remove.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
fail-no-output-directory.test [llvm-objcopy] Remove os-dependent message from test 2019-01-23 01:42:02 +00:00
globalize.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
group-addr-misaligned.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
group-big-endian.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
group-unchanged.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
group.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
help-message.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
hexagon-unsupported-on-x86.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
identical-segments.test
input-output-target.test [llvm-objcopy][NFC] More error cleanup 2019-02-21 17:05:19 +00:00
keep-file-symbols.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
keep-global-symbols-mix-globalize.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
keep-global-symbols.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
keep-many.test [llvm-objcopy] Allow regular expressions in name comparison 2019-02-06 11:00:07 +00:00
keep-only-section.test [llvm-objcopy] Allow regular expressions in name comparison 2019-02-06 11:00:07 +00:00
keep-symbol-remove-section.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
keep-symbol.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
localize-hidden.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
localize.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
many-sections.test [llvm-objcopy] [COFF] Fix handling of aux symbols for big objects 2019-01-23 11:54:51 +00:00
marker-segment.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
no-build-id-no-notes.test
no-build-id.test
no-symbol-relocation.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
null-symbol.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
objcopy-version.test
only-section-many.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
only-section-remove-strtab.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
only-section-strip-non-alloc.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
overlap-chain.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
parent-loop-check.test
prefix-symbols.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
preserve-segment-contents-ehdr-phdrs.test [llvm-objcopy]Preserve data in segments not covered by sections 2019-03-25 16:36:26 +00:00
preserve-segment-contents.test [llvm-objcopy]Preserve data in segments not covered by sections 2019-03-25 16:36:26 +00:00
program-headers.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
pt-phdr.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
redefine-symbol.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
regex.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
reloc-error-remove-symtab.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
reloc-no-symtab.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
relocatable-phdr.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
remove-multiple-sections.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
remove-section-in-segment.test [llvm-objcopy]Don't implicitly strip sections in segments 2019-03-14 11:47:41 +00:00
remove-section-with-symbol.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
remove-section.test [llvm-objcopy] Allow regular expressions in name comparison 2019-02-06 11:00:07 +00:00
remove-shndx.test [llvm-objcopy] [COFF] Fix handling of aux symbols for big objects 2019-01-23 11:54:51 +00:00
remove-shstrtab-error.test
remove-symtab.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
rename-section-flag-osproc-mask.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
rename-section-flag-preserved.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
rename-section-flag.test [NFC] Address missed review comment for test 2019-04-03 14:50:50 +00:00
rename-section-multiple.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
rename-section.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
section-index-unsupported.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
sectionless-segment.test
segment-shift-section-remove.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
segment-shift.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
segment-test-remove-section.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
set-section-flags-and-rename.test [llvm-objcopy][NFC] More error cleanup 2019-02-21 17:05:19 +00:00
set-section-flags-multiple.test [llvm-objcopy] Implement --set-section-flags. 2019-01-29 15:05:38 +00:00
set-section-flags.test [NFC] Address missed review comment for test 2019-04-03 14:50:50 +00:00
shstrtab-optimize.test [llvm-objcopy] - Calculate the string table section sizes correctly. 2019-03-18 14:27:41 +00:00
strict-no-add.test [llvm-objcopy] [COFF] Fix handling of aux symbols for big objects 2019-01-23 11:54:51 +00:00
strip-all-and-keep-symbol.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-all-and-remove.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-all-gnu.test [llvm-objcopy]Don't implicitly strip sections in segments 2019-03-14 11:47:41 +00:00
strip-all.test [llvm-objcopy]Don't implicitly strip sections in segments 2019-03-14 11:47:41 +00:00
strip-debug-and-remove.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-debug.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-dwo-groups.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
strip-dwo-inplace.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
strip-group-symbol.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-multiple-files.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-non-alloc.test [llvm-objcopy]Don't implicitly strip sections in segments 2019-03-14 11:47:41 +00:00
strip-preserve-atime.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
strip-preserve-mtime.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
strip-reloc-symbol.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-section-err.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-sections-keep.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
strip-sections-only-section.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
strip-sections.test [llvm-objcopy]Don't implicitly strip sections in segments 2019-03-14 11:47:41 +00:00
strip-symbol-and-relocation.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-symbol.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-unneeded.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
strip-version.test
strtab-optimize.test [llvm-objcopy] - Calculate the string table section sizes correctly. 2019-03-18 14:27:41 +00:00
symbol-copy.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
symbol-empty-name.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
symtab-error-on-remove-strtab.test
symtab-link.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
triple-overlap.test
two-seg-remove-end.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
two-seg-remove-first.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
two-seg-remove-third-sec.test [llvm-objcopy][NFC] Consistenly use two dashes for flags in tests. 2019-01-11 18:06:31 +00:00
weaken-all.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
weaken.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00