From 6da44ad75d25d5d7089c66d7cd3f4f90cd70146c Mon Sep 17 00:00:00 2001 From: George Rimar Date: Wed, 3 Apr 2019 14:53:42 +0000 Subject: [PATCH] [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 --- llvm/include/llvm/ObjectYAML/ELFYAML.h | 21 ++-- llvm/lib/ObjectYAML/ELFYAML.cpp | 21 ++-- llvm/test/DebugInfo/invalid-relocations.test | 10 +- .../Object/AArch64/yaml2obj-elf-aarch64-rel.yaml | 18 ++- llvm/test/Object/AMDGPU/elf64-relocs.yaml | 18 ++- llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml | 18 ++- llvm/test/Object/Mips/abi-flags.yaml | 7 +- llvm/test/Object/Mips/elf-abi.yaml | 40 +++---- llvm/test/Object/Mips/elf-flags.yaml | 10 +- llvm/test/Object/Mips/elf-mips64-rel.yaml | 26 ++--- llvm/test/Object/X86/yaml-elf-x86-rel-broken.yaml | 4 +- llvm/test/Object/X86/yaml2obj-elf-x86-rel.yaml | 18 ++- llvm/test/Object/obj2yaml-invalid-reloc.test | 4 +- llvm/test/Object/obj2yaml.test | 31 +++-- llvm/test/Object/yaml2obj-elf-alignment.yaml | 19 +-- llvm/test/Object/yaml2obj-elf-multi-doc.test | 24 ++-- llvm/test/Object/yaml2obj-elf-rel-noref.yaml | 37 +++--- llvm/test/Object/yaml2obj-elf-rel.yaml | 22 ++-- .../yaml2obj-elf-symbol-LocalGlobalWeak.yaml | 23 ++-- llvm/test/Object/yaml2obj-elf-symbol-basic.yaml | 15 +-- .../Object/yaml2obj-elf-symbol-visibility.yaml | 128 +++++++++++---------- llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml | 13 +-- llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml | 13 +-- llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml | 13 +-- llvm/test/tools/llvm-ar/Inputs/elf.yaml | 5 +- .../ELF/Inputs/compress-debug-sections.yaml | 25 ++-- llvm/test/tools/llvm-objcopy/ELF/abs-symbol.test | 8 +- .../test/tools/llvm-objcopy/ELF/armexidx-link.test | 19 ++- .../tools/llvm-objcopy/ELF/basic-archive-copy.test | 10 +- .../tools/llvm-objcopy/ELF/basic-relocations.test | 40 ++++--- .../test/tools/llvm-objcopy/ELF/common-symbol.test | 36 +++--- .../tools/llvm-objcopy/ELF/cross-arch-headers.test | 19 +-- .../ELF/cross-arch-sections-symbols.test | 21 ++-- llvm/test/tools/llvm-objcopy/ELF/discard-all.test | 45 ++++---- .../tools/llvm-objcopy/ELF/discard-locals-rel.test | 7 +- .../tools/llvm-objcopy/ELF/discard-locals.test | 41 ++++--- .../ELF/discard-mix-local-and-all.test | 21 ++-- llvm/test/tools/llvm-objcopy/ELF/globalize.test | 38 +++--- .../llvm-objcopy/ELF/group-addr-misaligned.test | 5 +- .../tools/llvm-objcopy/ELF/group-big-endian.test | 32 +++--- .../tools/llvm-objcopy/ELF/group-unchanged.test | 32 +++--- llvm/test/tools/llvm-objcopy/ELF/group.test | 32 +++--- .../ELF/hexagon-unsupported-on-x86.test | 6 +- .../tools/llvm-objcopy/ELF/keep-file-symbols.test | 15 ++- .../ELF/keep-global-symbols-mix-globalize.test | 31 ++--- .../llvm-objcopy/ELF/keep-global-symbols.test | 64 ++++++----- .../ELF/keep-symbol-remove-section.test | 11 +- llvm/test/tools/llvm-objcopy/ELF/keep-symbol.test | 31 +++-- .../tools/llvm-objcopy/ELF/localize-hidden.test | 98 ++++++++-------- llvm/test/tools/llvm-objcopy/ELF/localize.test | 51 ++++---- .../tools/llvm-objcopy/ELF/prefix-symbols.test | 21 ++-- .../tools/llvm-objcopy/ELF/redefine-symbol.test | 30 ++--- llvm/test/tools/llvm-objcopy/ELF/regex.test | 31 +++-- .../ELF/reloc-error-remove-symtab.test | 8 +- .../ELF/remove-section-with-symbol.test | 23 ++-- .../ELF/rename-section-flag-preserved.test | 1 - .../ELF/section-index-unsupported.test | 6 +- .../ELF/strip-all-and-keep-symbol.test | 31 +++-- .../llvm-objcopy/ELF/strip-all-and-remove.test | 18 +-- .../llvm-objcopy/ELF/strip-debug-and-remove.test | 18 +-- llvm/test/tools/llvm-objcopy/ELF/strip-debug.test | 11 +- .../tools/llvm-objcopy/ELF/strip-group-symbol.test | 8 +- .../llvm-objcopy/ELF/strip-multiple-files.test | 21 ++-- .../tools/llvm-objcopy/ELF/strip-reloc-symbol.test | 11 +- .../tools/llvm-objcopy/ELF/strip-section-err.test | 8 +- .../ELF/strip-symbol-and-relocation.test | 6 +- llvm/test/tools/llvm-objcopy/ELF/strip-symbol.test | 35 +++--- .../tools/llvm-objcopy/ELF/strip-unneeded.test | 73 ++++++------ llvm/test/tools/llvm-objcopy/ELF/symbol-copy.test | 69 +++++------ .../tools/llvm-objcopy/ELF/symbol-empty-name.test | 15 ++- llvm/test/tools/llvm-objcopy/ELF/weaken-all.test | 42 +++---- llvm/test/tools/llvm-objcopy/ELF/weaken.test | 35 +++--- .../X86/Inputs/simple-executable-x86_64.yaml | 76 ++++++------ llvm/test/tools/llvm-objdump/X86/adjust-vma.test | 19 ++- .../X86/disasm-zeroes-relocations.test | 4 +- .../llvm-objdump/X86/disassemble-demangle.test | 17 ++- llvm/test/tools/llvm-objdump/relocations-elf.test | 19 ++- llvm/test/tools/llvm-objdump/symbol-table-elf.test | 36 +++--- llvm/test/tools/llvm-objdump/verdef-elf.test | 4 +- llvm/test/tools/llvm-objdump/verneed-elf.test | 4 +- .../tools/llvm-objdump/verneed-wrong-info.test | 4 +- .../Inputs/dwarf-exprs.exe-x86-64.yaml | 10 +- llvm/test/tools/llvm-readobj/broken-group.test | 11 +- llvm/test/tools/llvm-readobj/demangle.test | 15 +-- llvm/test/tools/llvm-readobj/elf-no-shdrs.test | 6 +- .../test/tools/llvm-readobj/elf-packed-relocs.test | 21 ++-- .../elf-reloc-negative-addend-no-sym.test | 4 +- .../elf-reloc-symbol-with-versioning.test | 32 ++++-- .../llvm-readobj/elf-reloc-zero-name-or-value.test | 16 +-- .../test/tools/llvm-readobj/elf-section-types.test | 4 +- llvm/test/tools/llvm-readobj/elf-symbol-64bit.test | 7 +- .../tools/llvm-readobj/elf-symbol-binding.test | 11 +- llvm/test/tools/llvm-readobj/elf-symbol-shndx.test | 40 ++++--- llvm/test/tools/llvm-readobj/elf-symbol-types.test | 58 ++++++---- .../tools/llvm-readobj/elf-symbol-visibility.test | 21 ++-- llvm/test/tools/llvm-readobj/gnu-notes.test | 34 +++--- .../tools/obj2yaml/elf-gnu-unique-symbols.yaml | 13 +-- llvm/test/tools/obj2yaml/missing_symtab.test | 2 +- .../tools/obj2yaml/special-symbol-indices.yaml | 56 +++++---- llvm/test/tools/obj2yaml/symbol-type.yaml | 22 ++-- llvm/test/tools/obj2yaml/verdef-section.yaml | 4 +- llvm/test/tools/obj2yaml/verneed-section.yaml | 4 +- llvm/test/tools/obj2yaml/versym-section.yaml | 15 +-- llvm/test/tools/sanstats/elf.test | 59 +++++----- llvm/test/tools/yaml2obj/dynamic-symbols.yaml | 24 ++-- llvm/test/tools/yaml2obj/dynsym-dynstr-addr.yaml | 4 +- llvm/test/tools/yaml2obj/elf-comdat-broken.yaml | 4 +- .../tools/yaml2obj/elf-gnu-unique-symbols.yaml | 6 +- .../tools/yaml2obj/elf-symbols-binding-order.yaml | 18 +++ llvm/test/tools/yaml2obj/elf-symtab-shinfo.yaml | 8 +- llvm/test/tools/yaml2obj/elf-symtab-shtype.yaml | 4 +- .../yaml2obj/relocation-explicit-symbol-index.yaml | 4 +- llvm/test/tools/yaml2obj/symbol-index.yaml | 45 +++++--- llvm/test/tools/yaml2obj/symbol-type.yaml | 36 +++--- llvm/test/tools/yaml2obj/verdef-section.yaml | 4 +- llvm/test/tools/yaml2obj/verneed-section.yaml | 4 +- llvm/test/tools/yaml2obj/versym-section.yaml | 7 +- llvm/tools/obj2yaml/elf2yaml.cpp | 34 ++---- llvm/tools/yaml2obj/yaml2elf.cpp | 84 ++++++-------- 119 files changed, 1409 insertions(+), 1342 deletions(-) create mode 100644 llvm/test/tools/yaml2obj/elf-symbols-binding-order.yaml diff --git a/llvm/include/llvm/ObjectYAML/ELFYAML.h b/llvm/include/llvm/ObjectYAML/ELFYAML.h index a63a765..5eb53da 100644 --- a/llvm/include/llvm/ObjectYAML/ELFYAML.h +++ b/llvm/include/llvm/ObjectYAML/ELFYAML.h @@ -52,6 +52,7 @@ LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_RSS) // Just use 64, since it can hold 32-bit values too. LLVM_YAML_STRONG_TYPEDEF(uint64_t, ELF_SHF) LLVM_YAML_STRONG_TYPEDEF(uint16_t, ELF_SHN) +LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STB) LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STT) LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STV) LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STO) @@ -97,18 +98,12 @@ struct Symbol { ELF_STT Type; StringRef Section; Optional Index; + ELF_STB Binding; llvm::yaml::Hex64 Value; llvm::yaml::Hex64 Size; uint8_t Other; }; -struct SymbolsDef { - std::vector Local; - std::vector Global; - std::vector Weak; - std::vector GNUUnique; -}; - struct SectionOrType { StringRef sectionNameOrType; }; @@ -289,8 +284,8 @@ struct Object { // cleaner and nicer if we read them from the YAML as a separate // top-level key, which automatically ensures that invariants like there // being a single SHT_SYMTAB section are upheld. - SymbolsDef Symbols; - SymbolsDef DynamicSymbols; + std::vector Symbols; + std::vector DynamicSymbols; }; } // end namespace ELFYAML @@ -362,6 +357,10 @@ template <> struct ScalarEnumerationTraits { static void enumeration(IO &IO, ELFYAML::ELF_SHN &Value); }; +template <> struct ScalarEnumerationTraits { + static void enumeration(IO &IO, ELFYAML::ELF_STB &Value); +}; + template <> struct ScalarEnumerationTraits { static void enumeration(IO &IO, ELFYAML::ELF_STT &Value); @@ -437,10 +436,6 @@ struct MappingTraits { static StringRef validate(IO &IO, ELFYAML::Symbol &Symbol); }; -template <> struct MappingTraits { - static void mapping(IO &IO, ELFYAML::SymbolsDef &Symbols); -}; - template <> struct MappingTraits { static void mapping(IO &IO, ELFYAML::DynamicEntry &Rel); }; diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp index 1d159ecc..758be51 100644 --- a/llvm/lib/ObjectYAML/ELFYAML.cpp +++ b/llvm/lib/ObjectYAML/ELFYAML.cpp @@ -560,6 +560,17 @@ void ScalarEnumerationTraits::enumeration( IO.enumFallback(Value); } +void ScalarEnumerationTraits::enumeration( + IO &IO, ELFYAML::ELF_STB &Value) { +#define ECase(X) IO.enumCase(Value, #X, ELF::X) + ECase(STB_LOCAL); + ECase(STB_GLOBAL); + ECase(STB_WEAK); + ECase(STB_GNU_UNIQUE); +#undef ECase + IO.enumFallback(Value); +} + void ScalarEnumerationTraits::enumeration( IO &IO, ELFYAML::ELF_STT &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X) @@ -845,9 +856,9 @@ void MappingTraits::mapping(IO &IO, ELFYAML::Symbol &Symbol) { IO.mapOptional("Type", Symbol.Type, ELFYAML::ELF_STT(0)); IO.mapOptional("Section", Symbol.Section, StringRef()); IO.mapOptional("Index", Symbol.Index); + IO.mapOptional("Binding", Symbol.Binding, ELFYAML::ELF_STB(0)); IO.mapOptional("Value", Symbol.Value, Hex64(0)); IO.mapOptional("Size", Symbol.Size, Hex64(0)); - MappingNormalization Keys(IO, Symbol.Other); IO.mapOptional("Visibility", Keys->Visibility, ELFYAML::ELF_STV(0)); IO.mapOptional("Other", Keys->Other, ELFYAML::ELF_STO(0)); @@ -864,14 +875,6 @@ StringRef MappingTraits::validate(IO &IO, return StringRef(); } -void MappingTraits::mapping(IO &IO, - ELFYAML::SymbolsDef &Symbols) { - IO.mapOptional("Local", Symbols.Local); - IO.mapOptional("Global", Symbols.Global); - IO.mapOptional("Weak", Symbols.Weak); - IO.mapOptional("GNUUnique", Symbols.GNUUnique); -} - static void commonSectionMapping(IO &IO, ELFYAML::Section &Section) { IO.mapOptional("Name", Section.Name, StringRef()); IO.mapRequired("Type", Section.Type); diff --git a/llvm/test/DebugInfo/invalid-relocations.test b/llvm/test/DebugInfo/invalid-relocations.test index 2252e1a..9ac4877 100644 --- a/llvm/test/DebugInfo/invalid-relocations.test +++ b/llvm/test/DebugInfo/invalid-relocations.test @@ -28,8 +28,8 @@ Sections: Symbol: _start Type: 0xFF Symbols: - Global: - - Name: _start - Type: STT_FUNC - Section: .text - Value: 0x0 + - Name: _start + Type: STT_FUNC + Section: .text + Value: 0x0 + Binding: STB_GLOBAL diff --git a/llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml b/llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml index c1e318a..b8162bd 100644 --- a/llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml +++ b/llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml @@ -43,13 +43,11 @@ Sections: Addend: 0 Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x08 + - Name: .text + Type: STT_SECTION + Section: .text + - Name: main + Type: STT_FUNC + Section: .text + Size: 0x08 + Binding: STB_GLOBAL diff --git a/llvm/test/Object/AMDGPU/elf64-relocs.yaml b/llvm/test/Object/AMDGPU/elf64-relocs.yaml index d2c45e4..0e6bc2f 100644 --- a/llvm/test/Object/AMDGPU/elf64-relocs.yaml +++ b/llvm/test/Object/AMDGPU/elf64-relocs.yaml @@ -65,13 +65,11 @@ Sections: Type: R_AMDGPU_RELATIVE64 Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x08 + - Name: .text + Type: STT_SECTION + Section: .text + - Name: main + Type: STT_FUNC + Section: .text + Size: 0x08 + Binding: STB_GLOBAL diff --git a/llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml b/llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml index ec2a19d..b5e6465 100644 --- a/llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml +++ b/llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml @@ -49,13 +49,11 @@ Sections: Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x08 + - Name: .text + Type: STT_SECTION + Section: .text + - Name: main + Type: STT_FUNC + Section: .text + Size: 0x08 + Binding: STB_GLOBAL diff --git a/llvm/test/Object/Mips/abi-flags.yaml b/llvm/test/Object/Mips/abi-flags.yaml index ee66638..cdfaebe 100644 --- a/llvm/test/Object/Mips/abi-flags.yaml +++ b/llvm/test/Object/Mips/abi-flags.yaml @@ -59,7 +59,6 @@ Sections: Flags2: 0x0 Symbols: - Local: - - Name: .MIPS.abiflags - Type: STT_SECTION - Section: .MIPS.abiflags + - Name: .MIPS.abiflags + Type: STT_SECTION + Section: .MIPS.abiflags diff --git a/llvm/test/Object/Mips/elf-abi.yaml b/llvm/test/Object/Mips/elf-abi.yaml index 3a7b05e..ceb64a3 100644 --- a/llvm/test/Object/Mips/elf-abi.yaml +++ b/llvm/test/Object/Mips/elf-abi.yaml @@ -62,11 +62,11 @@ Sections: Size: 4 Symbols: - Global: - - Name: T1 - Section: .text - Value: 0 - Size: 4 + - Name: T1 + Section: .text + Value: 0 + Size: 4 + Binding: STB_GLOBAL # o64 --- !ELF @@ -84,11 +84,11 @@ Sections: Size: 4 Symbols: - Global: - - Name: T1 - Section: .text - Value: 0 - Size: 4 + - Name: T1 + Section: .text + Value: 0 + Size: 4 + Binding: STB_GLOBAL # eabio32 --- !ELF @@ -106,11 +106,11 @@ Sections: Size: 4 Symbols: - Global: - - Name: T1 - Section: .text - Value: 0 - Size: 4 + - Name: T1 + Section: .text + Value: 0 + Size: 4 + Binding: STB_GLOBAL # eabi64 --- !ELF @@ -128,9 +128,9 @@ Sections: Size: 4 Symbols: - Global: - - Name: T1 - Section: .text - Value: 0 - Size: 4 + - Name: T1 + Section: .text + Value: 0 + Size: 4 + Binding: STB_GLOBAL ... diff --git a/llvm/test/Object/Mips/elf-flags.yaml b/llvm/test/Object/Mips/elf-flags.yaml index dceabc0..ad71f34 100644 --- a/llvm/test/Object/Mips/elf-flags.yaml +++ b/llvm/test/Object/Mips/elf-flags.yaml @@ -44,9 +44,9 @@ Sections: Size: 4 Symbols: - Global: - - Name: T1 - Section: .text - Value: 0 - Size: 4 + - Name: T1 + Section: .text + Value: 0 + Size: 4 + Binding: STB_GLOBAL ... diff --git a/llvm/test/Object/Mips/elf-mips64-rel.yaml b/llvm/test/Object/Mips/elf-mips64-rel.yaml index 3e56555..169978a 100644 --- a/llvm/test/Object/Mips/elf-mips64-rel.yaml +++ b/llvm/test/Object/Mips/elf-mips64-rel.yaml @@ -98,17 +98,17 @@ Sections: Size: 0x0F Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .rodata - Type: STT_SECTION - Section: .rodata - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x58 - - Name: printf + - Name: .text + Type: STT_SECTION + Section: .text + - Name: .rodata + Type: STT_SECTION + Section: .rodata + - Name: main + Type: STT_FUNC + Section: .text + Size: 0x58 + Binding: STB_GLOBAL + - Name: printf + Binding: STB_GLOBAL ... diff --git a/llvm/test/Object/X86/yaml-elf-x86-rel-broken.yaml b/llvm/test/Object/X86/yaml-elf-x86-rel-broken.yaml index b9afd76..0557267 100644 --- a/llvm/test/Object/X86/yaml-elf-x86-rel-broken.yaml +++ b/llvm/test/Object/X86/yaml-elf-x86-rel-broken.yaml @@ -28,5 +28,5 @@ Sections: Symbol: main Type: 0xFF Symbols: - Global: - - Name: main + - Name: main + Binding: STB_GLOBAL diff --git a/llvm/test/Object/X86/yaml2obj-elf-x86-rel.yaml b/llvm/test/Object/X86/yaml2obj-elf-x86-rel.yaml index 0cb26fc..d0e6930 100644 --- a/llvm/test/Object/X86/yaml2obj-elf-x86-rel.yaml +++ b/llvm/test/Object/X86/yaml2obj-elf-x86-rel.yaml @@ -30,13 +30,11 @@ Sections: Type: R_386_32 Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Global: - - Name: main - Type: STT_FUNC - Section: .text - Size: 0x08 + - Name: .text + Type: STT_SECTION + Section: .text + - Name: main + Type: STT_FUNC + Section: .text + Size: 0x08 + Binding: STB_GLOBAL diff --git a/llvm/test/Object/obj2yaml-invalid-reloc.test b/llvm/test/Object/obj2yaml-invalid-reloc.test index 0cf6b76..c854d79 100644 --- a/llvm/test/Object/obj2yaml-invalid-reloc.test +++ b/llvm/test/Object/obj2yaml-invalid-reloc.test @@ -24,16 +24,16 @@ CHECK-NEXT: - Offset: 0x0000000000000000 CHECK-NEXT: Symbol: '' CHECK-NEXT: Type: R_X86_64_NONE CHECK-NEXT: Symbols: -CHECK-NEXT: Local: CHECK-NEXT: - Name: rb_ary_new_capa CHECK-NEXT: Type: STT_FUNC CHECK-NEXT: Section: .text CHECK-NEXT: Size: 0x0000000000000005 -CHECK-NEXT: Global: CHECK-NEXT: - Name: __dtraceenabled_ruby___array-create CHECK-NEXT: Index: SHN_ABS +CHECK-NEXT: Binding: STB_GLOBAL CHECK-NEXT: - Name: '$dtrace1316529.rb_ary_new_capa' CHECK-NEXT: Type: STT_FUNC CHECK-NEXT: Section: .text +CHECK-NEXT: Binding: STB_GLOBAL CHECK-NEXT: Size: 0x0000000000000005 CHECK-NEXT: Visibility: STV_HIDDEN diff --git a/llvm/test/Object/obj2yaml.test b/llvm/test/Object/obj2yaml.test index 551512e..fbceca5 100644 --- a/llvm/test/Object/obj2yaml.test +++ b/llvm/test/Object/obj2yaml.test @@ -421,7 +421,6 @@ ELF-MIPSEL-NEXT: GPRSize: REG_32 ELF-MIPSEL-NEXT: CPR1Size: REG_32 ELF-MIPSEL-NEXT: Flags1: [ ODDSPREG ] ELF-MIPSEL-NEXT: Symbols: -ELF-MIPSEL-NEXT: Local: ELF-MIPSEL-NEXT: - Name: trivial.ll ELF-MIPSEL-NEXT: Type: STT_FILE ELF-MIPSEL-NEXT: Index: SHN_ABS @@ -450,18 +449,22 @@ ELF-MIPSEL-NEXT: Section: .reginfo ELF-MIPSEL-NEXT: - Name: .MIPS.abiflags ELF-MIPSEL-NEXT: Type: STT_SECTION ELF-MIPSEL-NEXT: Section: .MIPS.abiflags -ELF-MIPSEL-NEXT: Global: ELF-MIPSEL-NEXT: - Name: main ELF-MIPSEL-NEXT: Type: STT_FUNC ELF-MIPSEL-NEXT: Section: .text +ELF-MIPSEL-NEXT: Binding: STB_GLOBAL ELF-MIPSEL-NEXT: Size: 0x000000000000004C ELF-MIPSEL-NEXT: - Name: var ELF-MIPSEL-NEXT: Type: STT_OBJECT ELF-MIPSEL-NEXT: Section: .bss +ELF-MIPSEL-NEXT: Binding: STB_GLOBAL ELF-MIPSEL-NEXT: Size: 0x0000000000000004 ELF-MIPSEL-NEXT: - Name: SomeOtherFunction +ELF-MIPSEL-NEXT: Binding: STB_GLOBAL ELF-MIPSEL-NEXT: - Name: _gp_disp +ELF-MIPSEL-NEXT: Binding: STB_GLOBAL ELF-MIPSEL-NEXT: - Name: puts +ELF-MIPSEL-NEXT: Binding: STB_GLOBAL ELF-MIPS64EL: FileHeader: ELF-MIPS64EL-NEXT: Class: ELFCLASS64 @@ -505,7 +508,6 @@ ELF-MIPS64EL-NEXT: Type: SHT_PROGBITS ELF-MIPS64EL-NEXT: AddressAlign: 0x0000000000000004 ELF-MIPS64EL-NEXT: Content: '' ELF-MIPS64EL-NEXT: Symbols: -ELF-MIPS64EL-NEXT: Local: ELF-MIPS64EL-NEXT: - Name: .text ELF-MIPS64EL-NEXT: Type: STT_SECTION ELF-MIPS64EL-NEXT: Section: .text @@ -523,8 +525,8 @@ ELF-MIPS64EL-NEXT: Section: .MIPS.options ELF-MIPS64EL-NEXT: - Name: .pdr ELF-MIPS64EL-NEXT: Type: STT_SECTION ELF-MIPS64EL-NEXT: Section: .pdr -ELF-MIPS64EL-NEXT: Global: ELF-MIPS64EL-NEXT: - Name: zed +ELF-MIPS64EL-NEXT: Binding: STB_GLOBAL ELF-X86-64: FileHeader: ELF-X86-64-NEXT: Class: ELFCLASS64 @@ -569,7 +571,6 @@ ELF-X86-64-NEXT: Symbol: SomeOtherFunction ELF-X86-64-NEXT: Type: R_X86_64_PC32 ELF-X86-64-NEXT: Addend: -4 ELF-X86-64-NEXT: Symbols: -ELF-X86-64-NEXT: Local: ELF-X86-64-NEXT: - Name: trivial-object-test.s ELF-X86-64-NEXT: Type: STT_FILE ELF-X86-64-NEXT: Index: SHN_ABS @@ -582,14 +583,15 @@ ELF-X86-64-NEXT: Section: .rodata.str1.1 ELF-X86-64-NEXT: - Name: .note.GNU-stack ELF-X86-64-NEXT: Type: STT_SECTION ELF-X86-64-NEXT: Section: .note.GNU-stack -ELF-X86-64-NEXT: Global: ELF-X86-64-NEXT: - Name: main ELF-X86-64-NEXT: Type: STT_FUNC ELF-X86-64-NEXT: Section: .text +ELF-X86-64-NEXT: Binding: STB_GLOBAL ELF-X86-64-NEXT: Size: 0x0000000000000026 ELF-X86-64-NEXT: - Name: SomeOtherFunction +ELF-X86-64-NEXT: Binding: STB_GLOBAL ELF-X86-64-NEXT: - Name: puts - +ELF-X86-64-NEXT: Binding: STB_GLOBAL ELF-AVR: FileHeader: ELF-AVR-NEXT: Class: ELFCLASS32 @@ -610,7 +612,6 @@ ELF-AVR-NEXT: Address: 0x0000000000800060 ELF-AVR-NEXT: AddressAlign: 0x0000000000000001 ELF-AVR-NEXT: Content: '' ELF-AVR-NEXT: Symbols: -ELF-AVR-NEXT: Local: ELF-AVR-NEXT: - Name: .text ELF-AVR-NEXT: Type: STT_SECTION ELF-AVR-NEXT: Section: .text @@ -623,39 +624,49 @@ ELF-AVR-NEXT: Type: STT_FILE ELF-AVR-NEXT: Index: SHN_ABS ELF-AVR-NEXT: - Name: main ELF-AVR-NEXT: Section: .text -ELF-AVR-NEXT: Global: ELF-AVR-NEXT: - Name: __trampolines_start ELF-AVR-NEXT: Section: .text +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: - Name: _etext ELF-AVR-NEXT: Section: .text +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: Value: 0x0000000000000004 ELF-AVR-NEXT: - Name: __data_load_end ELF-AVR-NEXT: Index: SHN_ABS +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: Value: 0x0000000000000004 ELF-AVR-NEXT: - Name: __trampolines_end ELF-AVR-NEXT: Section: .text +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: - Name: __data_load_start ELF-AVR-NEXT: Index: SHN_ABS +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: Value: 0x0000000000000004 ELF-AVR-NEXT: - Name: __dtors_end ELF-AVR-NEXT: Section: .text +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: - Name: __eeprom_end ELF-AVR-NEXT: Section: .data +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: Value: 0x0000000000810000 ELF-AVR-NEXT: - Name: __ctors_start ELF-AVR-NEXT: Section: .text +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: - Name: __dtors_start ELF-AVR-NEXT: Section: .text +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: - Name: __ctors_end ELF-AVR-NEXT: Section: .text +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: - Name: _edata ELF-AVR-NEXT: Section: .data +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: Value: 0x0000000000800060 ELF-AVR-NEXT: - Name: _end ELF-AVR-NEXT: Section: .data +ELF-AVR-NEXT: Binding: STB_GLOBAL ELF-AVR-NEXT: Value: 0x0000000000800060 - WASM: --- !WASM WASM-NEXT: FileHeader: WASM-NEXT: Version: 0x00000001 diff --git a/llvm/test/Object/yaml2obj-elf-alignment.yaml b/llvm/test/Object/yaml2obj-elf-alignment.yaml index 341966d..d626849 100644 --- a/llvm/test/Object/yaml2obj-elf-alignment.yaml +++ b/llvm/test/Object/yaml2obj-elf-alignment.yaml @@ -41,13 +41,14 @@ Sections: Size: 4 Symbols: - Global: - - Name: T0 - Type: STT_FUNC - Section: .text - Size: 4 - - Name: D0 - Type: STT_OBJECT - Section: .data - Size: 4 + - Name: T0 + Type: STT_FUNC + Section: .text + Size: 4 + Binding: STB_GLOBAL + - Name: D0 + Type: STT_OBJECT + Section: .data + Size: 4 + Binding: STB_GLOBAL ... diff --git a/llvm/test/Object/yaml2obj-elf-multi-doc.test b/llvm/test/Object/yaml2obj-elf-multi-doc.test index b3c8335..be298d1 100644 --- a/llvm/test/Object/yaml2obj-elf-multi-doc.test +++ b/llvm/test/Object/yaml2obj-elf-multi-doc.test @@ -25,12 +25,12 @@ Sections: Flags: [SHF_EXECINSTR, SHF_ALLOC] Symbols: - Global: - - Name: T1 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 8 +- Name: T1 + Section: .text + Type: STT_FUNC + Value: 0x0 + Size: 8 + Binding: STB_GLOBAL --- !ELF FileHeader: !FileHeader @@ -47,10 +47,10 @@ Sections: Flags: [SHF_EXECINSTR, SHF_ALLOC] Symbols: - Global: - - Name: T2 - Section: .text - Type: STT_FUNC - Value: 0x0 - Size: 4 +- Name: T2 + Section: .text + Type: STT_FUNC + Value: 0x0 + Size: 4 + Binding: STB_GLOBAL ... diff --git a/llvm/test/Object/yaml2obj-elf-rel-noref.yaml b/llvm/test/Object/yaml2obj-elf-rel-noref.yaml index cf4324b..4167449 100644 --- a/llvm/test/Object/yaml2obj-elf-rel-noref.yaml +++ b/llvm/test/Object/yaml2obj-elf-rel-noref.yaml @@ -36,25 +36,24 @@ Sections: Type: SHT_ARM_ATTRIBUTES AddressAlign: 0x0000000000000001 Content: 4115000000616561626900010B000000060208010901 -Symbols: - Local: - - Name: .text - Type: STT_SECTION - Section: .text - - Name: .data - Type: STT_SECTION - Section: .data - - Name: .bss - Type: STT_SECTION - Section: .bss - - Name: '$a' - Section: .text - - Name: call_weak_fn - Type: STT_FUNC - Section: .text - - Name: .ARM.attributes - Type: STT_SECTION - Section: .ARM.attributes +Symbols: + - Name: .text + Type: STT_SECTION + Section: .text + - Name: .data + Type: STT_SECTION + Section: .data + - Name: .bss + Type: STT_SECTION + Section: .bss + - Name: '$a' + Section: .text + - Name: call_weak_fn + Type: STT_FUNC + Section: .text + - Name: .ARM.attributes + Type: STT_SECTION + Section: .ARM.attributes # CHECK: Section { # CHECK-NEXT: Index: 0 diff --git a/llvm/test/Object/yaml2obj-elf-rel.yaml b/llvm/test/Object/yaml2obj-elf-rel.yaml index f98c8e2..b84d5b8 100644 --- a/llvm/test/Object/yaml2obj-elf-rel.yaml +++ b/llvm/test/Object/yaml2obj-elf-rel.yaml @@ -49,17 +49,17 @@ Sections: Type: R_MIPS_LO16 Symbols: - Local: - - Name: loc1 - - Name: loc2 - Global: - - Name: glob1 - Section: .text - Value: 0x0 - Size: 4 - - Name: glob2 - Weak: - - Name: weak1 + - Name: loc1 + - Name: loc2 + - Name: glob1 + Section: .text + Value: 0x0 + Size: 4 + Binding: STB_GLOBAL + - Name: glob2 + Binding: STB_GLOBAL + - Name: weak1 + Binding: STB_WEAK # CHECK: Section { # CHECK-NEXT: Index: 0 diff --git a/llvm/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml b/llvm/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml index c044d71..62101b3 100644 --- a/llvm/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml +++ b/llvm/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml @@ -11,18 +11,17 @@ Sections: Flags: [ SHF_ALLOC, SHF_WRITE ] Content: "DEADBEEF" Symbols: - Local: - - Name: local_symbol - Type: STT_OBJECT - Section: .data - Global: - - Name: global_symbol - Type: STT_OBJECT - Section: .data - Weak: - - Name: weak_symbol - Type: STT_OBJECT - Section: .data + - Name: local_symbol + Type: STT_OBJECT + Section: .data + - Name: global_symbol + Type: STT_OBJECT + Section: .data + Binding: STB_GLOBAL + - Name: weak_symbol + Type: STT_OBJECT + Section: .data + Binding: STB_WEAK # CHECK: Symbol { # CHECK: Name: (0) diff --git a/llvm/test/Object/yaml2obj-elf-symbol-basic.yaml b/llvm/test/Object/yaml2obj-elf-symbol-basic.yaml index e1f5ce4..05d9b44 100644 --- a/llvm/test/Object/yaml2obj-elf-symbol-basic.yaml +++ b/llvm/test/Object/yaml2obj-elf-symbol-basic.yaml @@ -18,13 +18,14 @@ Sections: # when linked and run on x86_64, will go into an # infloop. Symbols: - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x1 - Size: 2 - - Name: undefined_symbol + - Name: main + Type: STT_FUNC + Section: .text + Value: 0x1 + Size: 2 + Binding: STB_GLOBAL + - Name: undefined_symbol + Binding: STB_GLOBAL # CHECK: Symbols [ # CHECK-NEXT: Symbol { diff --git a/llvm/test/Object/yaml2obj-elf-symbol-visibility.yaml b/llvm/test/Object/yaml2obj-elf-symbol-visibility.yaml index 82b3d48..e37656c 100644 --- a/llvm/test/Object/yaml2obj-elf-symbol-visibility.yaml +++ b/llvm/test/Object/yaml2obj-elf-symbol-visibility.yaml @@ -57,35 +57,39 @@ # OBJ-NEXT: } # YAML: Symbols: -# YAML-NEXT: Global: -# YAML-NEXT: - Name: default1 -# YAML-NEXT: Type: STT_OBJECT -# YAML-NEXT: Section: .data -# YAML-NEXT: Size: 0x0000000000000004 -# YAML-NEXT: - Name: default2 -# YAML-NEXT: Type: STT_OBJECT -# YAML-NEXT: Section: .data -# YAML-NEXT: Value: 0x0000000000000004 -# YAML-NEXT: Size: 0x0000000000000004 -# YAML-NEXT: - Name: internal -# YAML-NEXT: Type: STT_OBJECT -# YAML-NEXT: Section: .data -# YAML-NEXT: Value: 0x0000000000000008 -# YAML-NEXT: Size: 0x0000000000000004 -# YAML-NEXT: Visibility: STV_INTERNAL -# YAML-NEXT: - Name: hidden -# YAML-NEXT: Type: STT_OBJECT -# YAML-NEXT: Section: .data -# YAML-NEXT: Value: 0x000000000000000C -# YAML-NEXT: Size: 0x0000000000000004 -# YAML-NEXT: Visibility: STV_HIDDEN -# YAML-NEXT: - Name: protected -# YAML-NEXT: Type: STT_OBJECT -# YAML-NEXT: Section: .data -# YAML-NEXT: Value: 0x0000000000000010 -# YAML-NEXT: Size: 0x0000000000000004 -# YAML-NEXT: Visibility: STV_PROTECTED -# YAML-NEXT: Other: [ STO_MIPS_PIC, STO_MIPS_MICROMIPS ] +# YAML-NEXT: - Name: default1 +# YAML-NEXT: Type: STT_OBJECT +# YAML-NEXT: Section: .data +# YAML-NEXT: Binding: STB_GLOBAL +# YAML-NEXT: Size: 0x0000000000000004 +# YAML-NEXT: - Name: default2 +# YAML-NEXT: Type: STT_OBJECT +# YAML-NEXT: Section: .data +# YAML-NEXT: Binding: STB_GLOBAL +# YAML-NEXT: Value: 0x0000000000000004 +# YAML-NEXT: Size: 0x0000000000000004 +# YAML-NEXT: - Name: internal +# YAML-NEXT: Type: STT_OBJECT +# YAML-NEXT: Section: .data +# YAML-NEXT: Binding: STB_GLOBAL +# YAML-NEXT: Value: 0x0000000000000008 +# YAML-NEXT: Size: 0x0000000000000004 +# YAML-NEXT: Visibility: STV_INTERNAL +# YAML-NEXT: - Name: hidden +# YAML-NEXT: Type: STT_OBJECT +# YAML-NEXT: Section: .data +# YAML-NEXT: Binding: STB_GLOBAL +# YAML-NEXT: Value: 0x000000000000000C +# YAML-NEXT: Size: 0x0000000000000004 +# YAML-NEXT: Visibility: STV_HIDDEN +# YAML-NEXT: - Name: protected +# YAML-NEXT: Type: STT_OBJECT +# YAML-NEXT: Section: .data +# YAML-NEXT: Binding: STB_GLOBAL +# YAML-NEXT: Value: 0x0000000000000010 +# YAML-NEXT: Size: 0x0000000000000004 +# YAML-NEXT: Visibility: STV_PROTECTED +# YAML-NEXT: Other: [ STO_MIPS_PIC, STO_MIPS_MICROMIPS ] --- !ELF FileHeader: @@ -103,34 +107,38 @@ Sections: Size: 0x14 Symbols: - Global: - - Name: default1 - Type: STT_OBJECT - Visibility: STV_DEFAULT - Section: .data - Value: 0x00 - Size: 0x04 - - Name: default2 - Type: STT_OBJECT - Section: .data - Value: 0x04 - Size: 0x04 - - Name: internal - Type: STT_OBJECT - Visibility: STV_INTERNAL - Section: .data - Value: 0x08 - Size: 0x04 - - Name: hidden - Type: STT_OBJECT - Visibility: STV_HIDDEN - Section: .data - Value: 0x0C - Size: 0x04 - - Name: protected - Type: STT_OBJECT - Visibility: STV_PROTECTED - Other: [ STO_MIPS_MICROMIPS, STO_MIPS_PIC ] - Section: .data - Value: 0x10 - Size: 0x04 + - Name: default1 + Type: STT_OBJECT + Visibility: STV_DEFAULT + Section: .data + Value: 0x00 + Size: 0x04 + Binding: STB_GLOBAL + - Name: default2 + Type: STT_OBJECT + Section: .data + Value: 0x04 + Size: 0x04 + Binding: STB_GLOBAL + - Name: internal + Type: STT_OBJECT + Visibility: STV_INTERNAL + Section: .data + Value: 0x08 + Size: 0x04 + Binding: STB_GLOBAL + - Name: hidden + Type: STT_OBJECT + Visibility: STV_HIDDEN + Section: .data + Value: 0x0C + Size: 0x04 + Binding: STB_GLOBAL + - Name: protected + Type: STT_OBJECT + Visibility: STV_PROTECTED + Other: [ STO_MIPS_MICROMIPS, STO_MIPS_PIC ] + Section: .data + Value: 0x10 + Size: 0x04 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml b/llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml index 7ae9fd9..9c75630 100644 --- a/llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml +++ b/llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml @@ -20,11 +20,10 @@ Sections: AddressAlign: 0x0000000000000001 Content: '' Symbols: - Global: - - Name: lib1 - Index: SHN_ABS - Value: 0x1234 - Local: - - Name: '-' - Type: STT_FILE + - Name: '-' + Type: STT_FILE + - Name: lib1 + Index: SHN_ABS + Value: 0x1234 + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml b/llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml index 8d224b9..8027fff 100644 --- a/llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml +++ b/llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml @@ -20,11 +20,10 @@ Sections: AddressAlign: 0x0000000000000001 Content: '' Symbols: - Global: - - Name: lib2 - Index: SHN_ABS - Value: 0x1234 - Local: - - Name: '-' - Type: STT_FILE + - Name: '-' + Type: STT_FILE + - Name: lib2 + Index: SHN_ABS + Value: 0x1234 + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml b/llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml index 0f1cfe7..9cc9dba 100644 --- a/llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml +++ b/llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml @@ -20,11 +20,10 @@ Sections: AddressAlign: 0x0000000000000001 Content: '' Symbols: - Global: - - Name: lib3 - Index: SHN_ABS - Value: 0x1234 - Local: - - Name: '-' - Type: STT_FILE + - Name: '-' + Type: STT_FILE + - Name: lib3 + Index: SHN_ABS + Value: 0x1234 + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/llvm-ar/Inputs/elf.yaml b/llvm/test/tools/llvm-ar/Inputs/elf.yaml index 2651e68..b124b29 100644 --- a/llvm/test/tools/llvm-ar/Inputs/elf.yaml +++ b/llvm/test/tools/llvm-ar/Inputs/elf.yaml @@ -20,7 +20,6 @@ Sections: AddressAlign: 0x0000000000000001 Content: '' Symbols: - Local: - - Name: '-' - Type: STT_FILE + - Name: '-' + Type: STT_FILE ... diff --git a/llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml b/llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml index 8da77b3..04855e0 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml +++ b/llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml @@ -44,15 +44,18 @@ Sections: Flags: [ SHF_GROUP ] Content: '00' Symbols: - Global: - - Name: .debug_foo - Type: STT_SECTION - Section: .debug_foo - - Name: .notdebug_foo - Type: STT_SECTION - Section: .notdebug_foo - - Name: .Linfo_string0 - Section: .debug_bar - - Name: groupname - Section: .group + - Name: .debug_foo + Type: STT_SECTION + Section: .debug_foo + Binding: STB_GLOBAL + - Name: .notdebug_foo + Type: STT_SECTION + Section: .notdebug_foo + Binding: STB_GLOBAL + - Name: .Linfo_string0 + Section: .debug_bar + Binding: STB_GLOBAL + - Name: groupname + Section: .group + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/llvm-objcopy/ELF/abs-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/abs-symbol.test index 5f2536d..62c5873 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/abs-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/abs-symbol.test @@ -9,10 +9,10 @@ FileHeader: Type: ET_EXEC Machine: EM_X86_64 Symbols: - Global: - - Name: test - Index: SHN_ABS - Value: 0x1234 + - Name: test + Index: SHN_ABS + Value: 0x1234 + Binding: STB_GLOBAL #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/armexidx-link.test b/llvm/test/tools/llvm-objcopy/ELF/armexidx-link.test index 596a780..734f436 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/armexidx-link.test +++ b/llvm/test/tools/llvm-objcopy/ELF/armexidx-link.test @@ -36,13 +36,12 @@ Sections: AddressAlign: 0x0000000000000004 Content: '' Symbols: - Local: - - Name: .text.bar - Type: STT_SECTION - Section: .text.bar - - Name: .text.foo - Type: STT_SECTION - Section: .text.foo - - Name: .ARM.exidx.text.foo - Type: STT_SECTION - Section: .ARM.exidx.text.foo + - Name: .text.bar + Type: STT_SECTION + Section: .text.bar + - Name: .text.foo + Type: STT_SECTION + Section: .text.foo + - Name: .ARM.exidx.text.foo + Type: STT_SECTION + Section: .ARM.exidx.text.foo diff --git a/llvm/test/tools/llvm-objcopy/ELF/basic-archive-copy.test b/llvm/test/tools/llvm-objcopy/ELF/basic-archive-copy.test index 6d7e86c..ada1414 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/basic-archive-copy.test +++ b/llvm/test/tools/llvm-objcopy/ELF/basic-archive-copy.test @@ -47,11 +47,11 @@ Sections: AddressAlign: 0x0000000000000010 Content: "00000000" Symbols: - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1004 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1004 + Binding: STB_GLOBAL # CHECK: Type: SHT_NULL diff --git a/llvm/test/tools/llvm-objcopy/ELF/basic-relocations.test b/llvm/test/tools/llvm-objcopy/ELF/basic-relocations.test index e043041..ac1831a 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/basic-relocations.test +++ b/llvm/test/tools/llvm-objcopy/ELF/basic-relocations.test @@ -56,24 +56,28 @@ Sections: Type: R_X86_64_PC32 Addend: 0x13 Symbols: - Global: - - Name: _start - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 4 - - Name: foo - Type: STT_FUNC - Size: 4 - - Name: fooA - Type: STT_FUNC - Size: 4 - - Name: bar - Type: STT_OBJECT - Size: 4 - - Name: barA - Type: STT_OBJECT - Size: 4 + - Name: _start + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 4 + Binding: STB_GLOBAL + - Name: foo + Type: STT_FUNC + Size: 4 + Binding: STB_GLOBAL + - Name: fooA + Type: STT_FUNC + Size: 4 + Binding: STB_GLOBAL + - Name: bar + Type: STT_OBJECT + Size: 4 + Binding: STB_GLOBAL + - Name: barA + Type: STT_OBJECT + Size: 4 + Binding: STB_GLOBAL # CHECK: Relocations [ # CHECK-NEXT: Section (2) .rel.text { diff --git a/llvm/test/tools/llvm-objcopy/ELF/common-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/common-symbol.test index 9ec49c7..42d5639 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/common-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/common-symbol.test @@ -9,22 +9,26 @@ FileHeader: Type: ET_EXEC Machine: EM_HEXAGON Symbols: - Global: - - Name: test - Index: SHN_COMMON - Value: 0x1234 - - Name: test2 - Index: SHN_HEXAGON_SCOMMON - Value: 0x1235 - - Name: test3 - Index: SHN_HEXAGON_SCOMMON_2 - Value: 0x1236 - - Name: test4 - Index: SHN_HEXAGON_SCOMMON_4 - Value: 0x1237 - - Name: test5 - Index: SHN_HEXAGON_SCOMMON_8 - Value: 0x1238 + - Name: test + Index: SHN_COMMON + Value: 0x1234 + Binding: STB_GLOBAL + - Name: test2 + Index: SHN_HEXAGON_SCOMMON + Value: 0x1235 + Binding: STB_GLOBAL + - Name: test3 + Index: SHN_HEXAGON_SCOMMON_2 + Value: 0x1236 + Binding: STB_GLOBAL + - Name: test4 + Index: SHN_HEXAGON_SCOMMON_4 + Value: 0x1237 + Binding: STB_GLOBAL + - Name: test5 + Index: SHN_HEXAGON_SCOMMON_8 + Value: 0x1238 + Binding: STB_GLOBAL #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test index feb5320..3cb0d4e 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test +++ b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test @@ -53,15 +53,16 @@ Sections: Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] Symbols: - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1234 - - Name: bar - Type: STT_OBJECT - Section: .data - Value: 0xabcd + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1234 + Binding: STB_GLOBAL + - Name: bar + Type: STT_OBJECT + Section: .data + Value: 0xabcd + Binding: STB_GLOBAL # CHECK: Format: # 32-SAME: ELF32- diff --git a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-sections-symbols.test b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-sections-symbols.test index fa5832b..d2da14e 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-sections-symbols.test +++ b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-sections-symbols.test @@ -22,16 +22,17 @@ Sections: Content: DEADBEEF Size: 16 Symbols: - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 16 - Size: 8 - - Name: bar - Type: STT_OBJECT - Section: .data - Size: 16 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 16 + Size: 8 + Binding: STB_GLOBAL + - Name: bar + Type: STT_OBJECT + Section: .data + Size: 16 + Binding: STB_GLOBAL # CHECK: Sections [ # CHECK-NEXT: Section { diff --git a/llvm/test/tools/llvm-objcopy/ELF/discard-all.test b/llvm/test/tools/llvm-objcopy/ELF/discard-all.test index cc676b5..f27c161 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/discard-all.test +++ b/llvm/test/tools/llvm-objcopy/ELF/discard-all.test @@ -33,29 +33,28 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Local: - - Name: Local - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 - - Name: LocalSection - Type: STT_SECTION - Section: .text - - Name: LocalFile - Type: STT_FILE - Weak: - - Name: Weak - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1008 - Global: - - Name: Global - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1010 + - Name: Local + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: LocalSection + Type: STT_SECTION + Section: .text + - Name: LocalFile + Type: STT_FILE + - Name: Global + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1010 + Binding: STB_GLOBAL + - Name: Weak + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1008 + Binding: STB_WEAK #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/discard-locals-rel.test b/llvm/test/tools/llvm-objcopy/ELF/discard-locals-rel.test index 05e1acf..8ae941f 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/discard-locals-rel.test +++ b/llvm/test/tools/llvm-objcopy/ELF/discard-locals-rel.test @@ -19,9 +19,8 @@ Sections: Symbol: .L.rel Type: R_X86_64_PC32 Symbols: - Local: - - Name: .L.rel - Type: STT_FUNC - Section: .text + - Name: .L.rel + Type: STT_FUNC + Section: .text # CHECK: not stripping symbol '.L.rel' because it is named in a relocation. diff --git a/llvm/test/tools/llvm-objcopy/ELF/discard-locals.test b/llvm/test/tools/llvm-objcopy/ELF/discard-locals.test index be489a2..ef8a293 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/discard-locals.test +++ b/llvm/test/tools/llvm-objcopy/ELF/discard-locals.test @@ -32,27 +32,26 @@ Sections: - Name: .LLVM.Custom.Section Type: SHT_PROGBITS Symbols: - Local: - - Name: Local - Type: STT_FUNC - Section: .text - - Name: .L.LocalSection - Type: STT_SECTION - Section: .text - - Type: STT_SECTION - Section: .LLVM.Custom.Section - - Name: .L.LocalFile - Type: STT_FILE - - Name: .L.str - Type: STT_OBJECT - Section: .text - - Name: .L.undefined - - Name: .L.abs - Index: SHN_ABS - Global: - - Name: .L.Global - Type: STT_FUNC - Section: .text + - Name: Local + Type: STT_FUNC + Section: .text + - Name: .L.LocalSection + Type: STT_SECTION + Section: .text + - Type: STT_SECTION + Section: .LLVM.Custom.Section + - Name: .L.LocalFile + Type: STT_FILE + - Name: .L.str + Type: STT_OBJECT + Section: .text + - Name: .L.undefined + - Name: .L.abs + Index: SHN_ABS + - Name: .L.Global + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL # CHECK: Symbols [ # CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/discard-mix-local-and-all.test b/llvm/test/tools/llvm-objcopy/ELF/discard-mix-local-and-all.test index f9e0613..8bb39f6 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/discard-mix-local-and-all.test +++ b/llvm/test/tools/llvm-objcopy/ELF/discard-mix-local-and-all.test @@ -55,17 +55,16 @@ Sections: - Name: .text Type: SHT_PROGBITS Symbols: - Local: - - Name: Local - Type: STT_FUNC - Section: .text - - Name: .L.str - Type: STT_OBJECT - Section: .text - Global: - - Name: Global - Type: STT_FUNC - Section: .text + - Name: Local + Type: STT_FUNC + Section: .text + - Name: .L.str + Type: STT_OBJECT + Section: .text + - Name: Global + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL # CHECK: Symbols [ # CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/globalize.test b/llvm/test/tools/llvm-objcopy/ELF/globalize.test index bd7f38e..e1dcc04 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/globalize.test +++ b/llvm/test/tools/llvm-objcopy/ELF/globalize.test @@ -31,25 +31,25 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Local: - - Name: Local - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 - Weak: - - Name: Weak - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1008 - - Name: WeakUndef - Global: - - Name: Global - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1010 + - Name: Local + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: Global + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1010 + Binding: STB_GLOBAL + - Name: Weak + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1008 + Binding: STB_WEAK + - Name: WeakUndef + Binding: STB_WEAK #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/group-addr-misaligned.test b/llvm/test/tools/llvm-objcopy/ELF/group-addr-misaligned.test index 43a6028..a954e08 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/group-addr-misaligned.test +++ b/llvm/test/tools/llvm-objcopy/ELF/group-addr-misaligned.test @@ -33,6 +33,5 @@ Sections: Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] AddressAlign: 0x0000000000000001 Symbols: - Local: - - Name: foo - Section: .group + - Name: foo + Section: .group diff --git a/llvm/test/tools/llvm-objcopy/ELF/group-big-endian.test b/llvm/test/tools/llvm-objcopy/ELF/group-big-endian.test index dd5ca88..e76e6e5 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/group-big-endian.test +++ b/llvm/test/tools/llvm-objcopy/ELF/group-big-endian.test @@ -38,19 +38,19 @@ Sections: Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] AddressAlign: 0x0000000000000010 Symbols: - Local: - - Name: .text.bar - Type: STT_SECTION - Section: .text.bar - - Name: .text.foo - Type: STT_SECTION - Section: .text.foo - Weak: - - Name: bar - Type: STT_FUNC - Section: .text.bar - Size: 0x0000000000000000 - - Name: foo - Type: STT_FUNC - Section: .text.foo - Size: 0x0000000000000000 + - Name: .text.bar + Type: STT_SECTION + Section: .text.bar + - Name: .text.foo + Type: STT_SECTION + Section: .text.foo + - Name: bar + Type: STT_FUNC + Section: .text.bar + Size: 0x0000000000000000 + Binding: STB_WEAK + - Name: foo + Type: STT_FUNC + Section: .text.foo + Size: 0x0000000000000000 + Binding: STB_WEAK diff --git a/llvm/test/tools/llvm-objcopy/ELF/group-unchanged.test b/llvm/test/tools/llvm-objcopy/ELF/group-unchanged.test index 31fba11..f5f74b4 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/group-unchanged.test +++ b/llvm/test/tools/llvm-objcopy/ELF/group-unchanged.test @@ -38,19 +38,19 @@ Sections: Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x0000000000000010 Symbols: - Local: - - Name: .text.foo - Type: STT_SECTION - Section: .text.foo - - Name: .text.bar - Type: STT_SECTION - Section: .text.bar - Weak: - - Name: foo - Type: STT_FUNC - Section: .text.foo - Size: 0x0000000000000000 - - Name: bar - Type: STT_FUNC - Section: .text.bar - Size: 0x0000000000000000 + - Name: .text.foo + Type: STT_SECTION + Section: .text.foo + - Name: .text.bar + Type: STT_SECTION + Section: .text.bar + - Name: foo + Type: STT_FUNC + Section: .text.foo + Size: 0x0000000000000000 + Binding: STB_WEAK + - Name: bar + Type: STT_FUNC + Section: .text.bar + Size: 0x0000000000000000 + Binding: STB_WEAK diff --git a/llvm/test/tools/llvm-objcopy/ELF/group.test b/llvm/test/tools/llvm-objcopy/ELF/group.test index 2e058f5..ea84f25 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/group.test +++ b/llvm/test/tools/llvm-objcopy/ELF/group.test @@ -38,19 +38,19 @@ Sections: Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] AddressAlign: 0x0000000000000010 Symbols: - Local: - - Name: .text.bar - Type: STT_SECTION - Section: .text.bar - - Name: .text.foo - Type: STT_SECTION - Section: .text.foo - Weak: - - Name: bar - Type: STT_FUNC - Section: .text.bar - Size: 0x0000000000000000 - - Name: foo - Type: STT_FUNC - Section: .text.foo - Size: 0x0000000000000000 + - Name: .text.bar + Type: STT_SECTION + Section: .text.bar + - Name: .text.foo + Type: STT_SECTION + Section: .text.foo + - Name: bar + Type: STT_FUNC + Section: .text.bar + Size: 0x0000000000000000 + Binding: STB_WEAK + - Name: foo + Type: STT_FUNC + Section: .text.foo + Size: 0x0000000000000000 + Binding: STB_WEAK diff --git a/llvm/test/tools/llvm-objcopy/ELF/hexagon-unsupported-on-x86.test b/llvm/test/tools/llvm-objcopy/ELF/hexagon-unsupported-on-x86.test index dab5eed..9787e6b 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/hexagon-unsupported-on-x86.test +++ b/llvm/test/tools/llvm-objcopy/ELF/hexagon-unsupported-on-x86.test @@ -8,8 +8,8 @@ FileHeader: Type: ET_EXEC Machine: EM_X86_64 Symbols: - Global: - - Name: test - Index: SHN_HEXAGON_SCOMMON + - Name: test + Index: SHN_HEXAGON_SCOMMON + Binding: STB_GLOBAL # CHECK: Symbol 'test' has unsupported value greater than or equal to SHN_LORESERVE: 65280 diff --git a/llvm/test/tools/llvm-objcopy/ELF/keep-file-symbols.test b/llvm/test/tools/llvm-objcopy/ELF/keep-file-symbols.test index 3655f39..86674f1 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/keep-file-symbols.test +++ b/llvm/test/tools/llvm-objcopy/ELF/keep-file-symbols.test @@ -23,14 +23,13 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Local: - - Name: foo - Type: STT_FILE - Section: .text - Global: - - Name: bar - Type: STT_FUNC - Section: .text + - Name: foo + Type: STT_FILE + Section: .text + - Name: bar + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL #STRIPALL: Symbols [ #STRIPALL-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols-mix-globalize.test b/llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols-mix-globalize.test index bc5cba6..b227407 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols-mix-globalize.test +++ b/llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols-mix-globalize.test @@ -24,21 +24,22 @@ Sections: Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] Symbols: - Local: - - Name: Local1 - Section: .text - - Name: Local2 - Section: .text - Weak: - - Name: Weak1 - Section: .text - - Name: Weak2 - Section: .text - Global: - - Name: Global1 - Section: .text - - Name: Global2 - Section: .text + - Name: Local1 + Section: .text + - Name: Local2 + Section: .text + - Name: Global1 + Section: .text + Binding: STB_GLOBAL + - Name: Global2 + Section: .text + Binding: STB_GLOBAL + - Name: Weak1 + Section: .text + Binding: STB_WEAK + - Name: Weak2 + Section: .text + Binding: STB_WEAK # CHECK: Symbol table '.symtab' contains 7 entries: # CHECK-NEXT: Num: Value Size Type Bind Vis Ndx Name diff --git a/llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols.test b/llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols.test index e0b36ba..52707fc 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols.test +++ b/llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols.test @@ -56,34 +56,42 @@ Sections: Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] Symbols: - Local: - - Name: Local1 - Section: .text - - Name: Local2 - Section: .text - Weak: - - Name: Weak1 - Section: .text - - Name: Weak2 - Section: .text - - Name: Weak3 - Section: .text - Global: - - Name: Global1 - Section: .text - - Name: Global2 - Section: .text - - Name: Global3 - Section: .text - - Name: Global4 - Section: .text - - Name: Global5 - Section: .text - - Name: Global6 - Section: .text - - Name: "Global5 Global6" - Section: .text - - Name: Global7 + - Name: Local1 + Section: .text + - Name: Local2 + Section: .text + - Name: Global1 + Section: .text + Binding: STB_GLOBAL + - Name: Global2 + Section: .text + Binding: STB_GLOBAL + - Name: Global3 + Section: .text + Binding: STB_GLOBAL + - Name: Global4 + Section: .text + Binding: STB_GLOBAL + - Name: Global5 + Section: .text + Binding: STB_GLOBAL + - Name: Global6 + Section: .text + Binding: STB_GLOBAL + - Name: "Global5 Global6" + Section: .text + Binding: STB_GLOBAL + - Name: Global7 + Binding: STB_GLOBAL + - Name: Weak1 + Section: .text + Binding: STB_WEAK + - Name: Weak2 + Section: .text + Binding: STB_WEAK + - Name: Weak3 + Section: .text + Binding: STB_WEAK # CHECK: Symbol table '.symtab' contains 14 entries: # CHECK-NEXT: Num: Value Size Type Bind Vis Ndx Name diff --git a/llvm/test/tools/llvm-objcopy/ELF/keep-symbol-remove-section.test b/llvm/test/tools/llvm-objcopy/ELF/keep-symbol-remove-section.test index 2dbfb2c..8b5fc97 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/keep-symbol-remove-section.test +++ b/llvm/test/tools/llvm-objcopy/ELF/keep-symbol-remove-section.test @@ -16,12 +16,11 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Local: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/keep-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/keep-symbol.test index 67b5187..70a59fe 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/keep-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/keep-symbol.test @@ -27,22 +27,21 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Local: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 - - Name: bar - Type: STT_FUNC - Section: .text - Value: 0x1008 - Size: 8 - - Name: baz - Type: STT_FUNC - Section: .text - Value: 0x1010 - Size: 8 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: bar + Type: STT_FUNC + Section: .text + Value: 0x1008 + Size: 8 + - Name: baz + Type: STT_FUNC + Section: .text + Value: 0x1010 + Size: 8 #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/localize-hidden.test b/llvm/test/tools/llvm-objcopy/ELF/localize-hidden.test index 4166200..f30461b 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/localize-hidden.test +++ b/llvm/test/tools/llvm-objcopy/ELF/localize-hidden.test @@ -29,53 +29,57 @@ Sections: Symbol: undefGlobal Type: R_X86_64_PC32 Symbols: - Local: - - Name: hiddenLocal - Type: STT_FUNC - Section: .text - Value: 0x1008 - Size: 8 - Visibility: STV_HIDDEN - Weak: - - Name: hiddenWeak - Type: STT_FUNC - Section: .text - Value: 0x1010 - Size: 8 - Visibility: STV_HIDDEN - Global: - - Name: defaultGlobal - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1000 - - Name: hiddenGlobal - Type: STT_OBJECT - Section: .data - Value: 0x2006 - Size: 2 - Visibility: STV_HIDDEN - - Name: hiddenGlobalCommon - Type: STT_OBJECT - Index: SHN_COMMON - Value: 0x2006 - Size: 2 - Visibility: STV_HIDDEN - - Name: undefGlobal - Type: STT_FUNC - Size: 8 - - Name: internalGlobal - Type: STT_OBJECT - Section: .data - Value: 0x2002 - Size: 2 - Visibility: STV_INTERNAL - - Name: protectedGlobal - Type: STT_OBJECT - Section: .data - Value: 0x2000 - Size: 4 - Visibility: STV_PROTECTED + - Name: hiddenLocal + Type: STT_FUNC + Section: .text + Value: 0x1008 + Size: 8 + Visibility: STV_HIDDEN + - Name: defaultGlobal + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1000 + Binding: STB_GLOBAL + - Name: hiddenGlobal + Type: STT_OBJECT + Section: .data + Value: 0x2006 + Size: 2 + Visibility: STV_HIDDEN + Binding: STB_GLOBAL + - Name: hiddenGlobalCommon + Type: STT_OBJECT + Index: SHN_COMMON + Value: 0x2006 + Size: 2 + Visibility: STV_HIDDEN + Binding: STB_GLOBAL + - Name: undefGlobal + Type: STT_FUNC + Size: 8 + Binding: STB_GLOBAL + - Name: internalGlobal + Type: STT_OBJECT + Section: .data + Value: 0x2002 + Size: 2 + Visibility: STV_INTERNAL + Binding: STB_GLOBAL + - Name: protectedGlobal + Type: STT_OBJECT + Section: .data + Value: 0x2000 + Size: 4 + Visibility: STV_PROTECTED + Binding: STB_GLOBAL + - Name: hiddenWeak + Type: STT_FUNC + Section: .text + Value: 0x1010 + Size: 8 + Visibility: STV_HIDDEN + Binding: STB_WEAK #CHECK: Relocations [ #CHECK-NEXT: Section (3) .rel.text { diff --git a/llvm/test/tools/llvm-objcopy/ELF/localize.test b/llvm/test/tools/llvm-objcopy/ELF/localize.test index fb81231..820ce1d 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/localize.test +++ b/llvm/test/tools/llvm-objcopy/ELF/localize.test @@ -42,31 +42,32 @@ Sections: AddressAlign: 0x0000000000000010 Content: "0000000000000000" Symbols: - Local: - - Name: Local - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 - Weak: - - Name: Weak - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1008 - Global: - - Name: Global - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1010 - - Name: GlobalUndef - Type: STT_FUNC - - Name: GlobalCommon - Type: STT_OBJECT - Index: SHN_COMMON - Value: 0x2006 - Size: 2 + - Name: Local + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: Global + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1010 + Binding: STB_GLOBAL + - Name: GlobalUndef + Type: STT_FUNC + Binding: STB_GLOBAL + - Name: GlobalCommon + Type: STT_OBJECT + Index: SHN_COMMON + Value: 0x2006 + Size: 2 + Binding: STB_GLOBAL + - Name: Weak + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1008 + Binding: STB_WEAK #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/prefix-symbols.test b/llvm/test/tools/llvm-objcopy/ELF/prefix-symbols.test index 1e6a54a..b359e5e 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/prefix-symbols.test +++ b/llvm/test/tools/llvm-objcopy/ELF/prefix-symbols.test @@ -18,17 +18,16 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Local: - - Name: foo - Type: STT_SECTION - Section: .text - - Name: bar - Type: STT_FILE - Section: .text - Global: - - Name: foobar - Type: STT_FUNC - Section: .text + - Name: foo + Type: STT_SECTION + Section: .text + - Name: bar + Type: STT_FILE + Section: .text + - Name: foobar + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL # COMMON: Symbols [ # COMMON-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/redefine-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/redefine-symbol.test index 8ed8c85..78dd853 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/redefine-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/redefine-symbol.test @@ -33,20 +33,22 @@ Sections: AddressAlign: 0x0000000000000010 Content: "0000000000000000" Symbols: - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1004 - - Name: bar - Type: STT_OBJECT - Section: .data - Value: 0x2000 - Size: 4 - - Name: empty - Type: STT_FUNC - Section: .text - Value: 0x1008 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1004 + Binding: STB_GLOBAL + - Name: bar + Type: STT_OBJECT + Section: .data + Value: 0x2000 + Size: 4 + Binding: STB_GLOBAL + - Name: empty + Type: STT_FUNC + Section: .text + Value: 0x1008 + Binding: STB_GLOBAL #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/regex.test b/llvm/test/tools/llvm-objcopy/ELF/regex.test index 6fa590b..9baccb0 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/regex.test +++ b/llvm/test/tools/llvm-objcopy/ELF/regex.test @@ -30,22 +30,21 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Local: - - Name: foobaz - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 - - Name: bar - Type: STT_FUNC - Section: .text - Value: 0x1008 - Size: 8 - - Name: rebar - Type: STT_FUNC - Section: .text - Value: 0x1010 - Size: 8 + - Name: foobaz + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: bar + Type: STT_FUNC + Section: .text + Value: 0x1008 + Size: 8 + - Name: rebar + Type: STT_FUNC + Section: .text + Value: 0x1010 + Size: 8 #REGEX1-NOT: foobaz #REGEX1-NOT: bar diff --git a/llvm/test/tools/llvm-objcopy/ELF/reloc-error-remove-symtab.test b/llvm/test/tools/llvm-objcopy/ELF/reloc-error-remove-symtab.test index 539e6ea..ff05778 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/reloc-error-remove-symtab.test +++ b/llvm/test/tools/llvm-objcopy/ELF/reloc-error-remove-symtab.test @@ -24,9 +24,9 @@ Sections: Type: R_X86_64_PC32 Symbols: - Global: - - Name: foo - Type: STT_FUNC - Size: 4 + - Name: foo + Type: STT_FUNC + Size: 4 + Binding: STB_GLOBAL # CHECK: Symbol table .symtab cannot be removed because it is referenced by the relocation section .rel.text. diff --git a/llvm/test/tools/llvm-objcopy/ELF/remove-section-with-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/remove-section-with-symbol.test index 949d34c..598da16 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/remove-section-with-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/remove-section-with-symbol.test @@ -16,17 +16,18 @@ Sections: Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] Symbols: - Global: - - Name: test - Type: STT_FUNC - Section: .test - Value: 0x1000 - Size: 4 - - Name: test2 - Type: STT_FUNC - Section: .test2 - Value: 0x1000 - Size: 4 + - Name: test + Type: STT_FUNC + Section: .test + Value: 0x1000 + Size: 4 + Binding: STB_GLOBAL + - Name: test2 + Type: STT_FUNC + Section: .test2 + Value: 0x1000 + Size: 4 + Binding: STB_GLOBAL # The sections counted here should be .test, .symtab, .strtab, and .shstrtab. # The 5th section is the null section. diff --git a/llvm/test/tools/llvm-objcopy/ELF/rename-section-flag-preserved.test b/llvm/test/tools/llvm-objcopy/ELF/rename-section-flag-preserved.test index 6c22eb8..2df9e3a 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/rename-section-flag-preserved.test +++ b/llvm/test/tools/llvm-objcopy/ELF/rename-section-flag-preserved.test @@ -51,7 +51,6 @@ Sections: SHF_OS_NONCONFORMING, SHF_STRINGS, SHF_TLS, SHF_WRITE ] Content: "a4a4a4a4" Symbols: - Local: - Name: dummy Section: .group diff --git a/llvm/test/tools/llvm-objcopy/ELF/section-index-unsupported.test b/llvm/test/tools/llvm-objcopy/ELF/section-index-unsupported.test index 1a69757..f01fea8 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/section-index-unsupported.test +++ b/llvm/test/tools/llvm-objcopy/ELF/section-index-unsupported.test @@ -8,8 +8,8 @@ FileHeader: Type: ET_EXEC Machine: EM_X86_64 Symbols: - Global: - - Name: test - Index: 0xff05 + - Name: test + Index: 0xff05 + Binding: STB_GLOBAL # CHECK: Symbol 'test' has unsupported value greater than or equal to SHN_LORESERVE: 65285 diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-all-and-keep-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/strip-all-and-keep-symbol.test index 9892a12..8ff1aa4 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-all-and-keep-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-all-and-keep-symbol.test @@ -32,22 +32,21 @@ Sections: - Name: .debug_bar Type: SHT_PROGBITS Symbols: - Local: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 - - Name: bar - Type: STT_FUNC - Section: .text - Value: 0x1008 - Size: 8 - - Name: baz - Type: STT_FUNC - Section: .text - Value: 0x1010 - Size: 8 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: bar + Type: STT_FUNC + Section: .text + Value: 0x1008 + Size: 8 + - Name: baz + Type: STT_FUNC + Section: .text + Value: 0x1010 + Size: 8 # CHECK: Name: .text # CHECK: Name: .gnu.warning.foo diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-all-and-remove.test b/llvm/test/tools/llvm-objcopy/ELF/strip-all-and-remove.test index 5455c6b..15a6f4f 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-all-and-remove.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-all-and-remove.test @@ -28,14 +28,16 @@ Sections: AddressAlign: 0x0000000000000010 Content: "00000000" Symbols: - Global: - - Name: debugfoo - Section: .debug_foo - - Name: foo - Section: .text - - Name: bar - Section: .text.bar - + - Name: debugfoo + Section: .debug_foo + Binding: STB_GLOBAL + - Name: foo + Section: .text + Binding: STB_GLOBAL + - Name: bar + Section: .text.bar + Binding: STB_GLOBAL + # CHECK: SectionHeaderCount: 3 # CHECK: Name: .text diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-debug-and-remove.test b/llvm/test/tools/llvm-objcopy/ELF/strip-debug-and-remove.test index d2d0b34..da76592 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-debug-and-remove.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-debug-and-remove.test @@ -28,14 +28,16 @@ Sections: AddressAlign: 0x0000000000000010 Content: "00000000" Symbols: - Global: - - Name: debugfoo - Section: .debug_foo - - Name: foo - Section: .text - - Name: bar - Section: .text.bar - + - Name: debugfoo + Section: .debug_foo + Binding: STB_GLOBAL + - Name: foo + Section: .text + Binding: STB_GLOBAL + - Name: bar + Section: .text.bar + Binding: STB_GLOBAL + # CHECK: SectionHeaderCount: 5 # CHECK: Name: .text diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-debug.test b/llvm/test/tools/llvm-objcopy/ELF/strip-debug.test index d7079f6..c4440bf 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-debug.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-debug.test @@ -110,11 +110,12 @@ Sections: AddressAlign: 0x0000000000000010 Content: "00000000" Symbols: - Global: - - Name: foo - Section: .text - - Name: debugfoo - Section: .debugfoo + - Name: foo + Section: .text + Binding: STB_GLOBAL + - Name: debugfoo + Section: .debugfoo + Binding: STB_GLOBAL # CHECK: SectionHeaderCount: 5 diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-group-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/strip-group-symbol.test index 0699a9f..d727ec6 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-group-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-group-symbol.test @@ -23,9 +23,9 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Weak: - - Name: foo - Type: STT_FUNC - Section: .text + - Name: foo + Type: STT_FUNC + Section: .text + Binding: STB_WEAK #CHECK: Symbol foo cannot be removed because it is referenced by the section .group[1]. diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-multiple-files.test b/llvm/test/tools/llvm-objcopy/ELF/strip-multiple-files.test index dcbd57e..f2b6e56 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-multiple-files.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-multiple-files.test @@ -39,17 +39,16 @@ Sections: Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] Symbols: - Local: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1234 - Size: 8 - - Name: bar - Type: STT_FUNC - Section: .text - Value: 0x5678 - Size: 8 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1234 + Size: 8 + - Name: bar + Type: STT_FUNC + Section: .text + Value: 0x5678 + Size: 8 # CHECK: Symbols [ # CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-reloc-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/strip-reloc-symbol.test index b492405..db1e46c 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-reloc-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-reloc-symbol.test @@ -22,11 +22,10 @@ Sections: Symbol: foo Type: R_X86_64_PC32 Symbols: - Local: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 #CHECK: not stripping symbol 'foo' because it is named in a relocation. diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-section-err.test b/llvm/test/tools/llvm-objcopy/ELF/strip-section-err.test index 9bcea10..25e93ae 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-section-err.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-section-err.test @@ -43,9 +43,7 @@ Sections: AddressAlign: 0x0000000000000001 Content: '0102' Symbols: - Local: - - Name: foo - Section: .data - Value: 0x0000000000000001 -DynamicSymbols: {} + - Name: foo + Section: .data + Value: 0x0000000000000001 ... diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-symbol-and-relocation.test b/llvm/test/tools/llvm-objcopy/ELF/strip-symbol-and-relocation.test index dfe2598..007acfb 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-symbol-and-relocation.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-symbol-and-relocation.test @@ -43,6 +43,6 @@ Sections: Symbol: bar Type: R_X86_64_32S Symbols: - Global: - - Name: bar - Section: .text + - Name: bar + Section: .text + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/strip-symbol.test index 73d3c1c..e63aaae 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-symbol.test @@ -28,24 +28,23 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Local: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 - Weak: - - Name: bar - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1008 - Global: - - Name: baz - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1010 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: bar + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1008 + Binding: STB_WEAK + - Name: baz + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1010 + Binding: STB_GLOBAL #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-unneeded.test b/llvm/test/tools/llvm-objcopy/ELF/strip-unneeded.test index 60d8388..db1ad31 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-unneeded.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-unneeded.test @@ -57,42 +57,43 @@ Sections: Symbol: foo Type: R_X86_64_PC32 Symbols: - Local: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 - - Name: bar - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1008 - - Name: barfoo - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1010 - - Name: fileSymbol - Type: STT_FILE - - Name: sectionSymbol - Type: STT_SECTION - Weak: - - Name: baz - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1018 - - Name: foobaz - Type: STT_FUNC - Global: - - Name: foobar - Type: STT_FUNC - - Name: barbaz - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1020 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: bar + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1008 + - Name: barfoo + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1010 + - Name: fileSymbol + Type: STT_FILE + - Name: sectionSymbol + Type: STT_SECTION + - Name: foobar + Type: STT_FUNC + Binding: STB_GLOBAL + - Name: barbaz + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1020 + Binding: STB_GLOBAL + - Name: baz + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1018 + Binding: STB_WEAK + - Name: foobaz + Type: STT_FUNC + Binding: STB_WEAK #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/symbol-copy.test b/llvm/test/tools/llvm-objcopy/ELF/symbol-copy.test index 4332868..26408ca 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/symbol-copy.test +++ b/llvm/test/tools/llvm-objcopy/ELF/symbol-copy.test @@ -22,38 +22,43 @@ Sections: AddressAlign: 0x0000000000000010 Content: "0000000000000000" Symbols: - Global: - - Name: _start - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 4 - - Name: bam - Type: STT_FUNC - Section: .text - Value: 0x1001 - Size: 4 - Visibility: STV_HIDDEN - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1004 - - Name: faz - Type: STT_OBJECT - Section: .data - Value: 0x2002 - Size: 2 - Visibility: STV_INTERNAL - - Name: bar - Type: STT_OBJECT - Section: .data - Value: 0x2000 - Size: 4 - - Name: baz - Type: STT_OBJECT - Section: .data - Value: 0x2004 - Size: 4 + - Name: _start + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 4 + Binding: STB_GLOBAL + - Name: bam + Type: STT_FUNC + Section: .text + Value: 0x1001 + Size: 4 + Visibility: STV_HIDDEN + Binding: STB_GLOBAL + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1004 + Binding: STB_GLOBAL + - Name: faz + Type: STT_OBJECT + Section: .data + Value: 0x2002 + Size: 2 + Visibility: STV_INTERNAL + Binding: STB_GLOBAL + - Name: bar + Type: STT_OBJECT + Section: .data + Value: 0x2000 + Size: 4 + Binding: STB_GLOBAL + - Name: baz + Type: STT_OBJECT + Section: .data + Value: 0x2004 + Size: 4 + Binding: STB_GLOBAL #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/symbol-empty-name.test b/llvm/test/tools/llvm-objcopy/ELF/symbol-empty-name.test index e378c23..cc17b3e 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/symbol-empty-name.test +++ b/llvm/test/tools/llvm-objcopy/ELF/symbol-empty-name.test @@ -37,11 +37,10 @@ Sections: Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] Symbols: - Local: - - Name: "" - Type: STT_SECTION - Section: .text - Global: - # We need to have a named symbol, otherwise the original - # issue that was fixed is not reproduced by this test. - - Name: foo + - Name: "" + Type: STT_SECTION + Section: .text +# We need to have a named symbol, otherwise the original +# issue that was fixed is not reproduced by this test. + - Name: foo + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-objcopy/ELF/weaken-all.test b/llvm/test/tools/llvm-objcopy/ELF/weaken-all.test index 6107d37..ab83c65 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/weaken-all.test +++ b/llvm/test/tools/llvm-objcopy/ELF/weaken-all.test @@ -23,27 +23,27 @@ Sections: Symbol: undefGlobal Type: R_X86_64_PC32 Symbols: - Local: - - Name: Local - Type: STT_FUNC - Section: .text - Value: 0x1008 - Size: 8 - Weak: - - Name: Weak - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1010 - Global: - - Name: Global - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1018 - - Name: undefGlobal - Type: STT_FUNC - Size: 8 + - Name: Local + Type: STT_FUNC + Section: .text + Value: 0x1008 + Size: 8 + - Name: Global + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1018 + Binding: STB_GLOBAL + - Name: undefGlobal + Type: STT_FUNC + Size: 8 + Binding: STB_GLOBAL + - Name: Weak + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1010 + Binding: STB_WEAK #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/weaken.test b/llvm/test/tools/llvm-objcopy/ELF/weaken.test index 01de61a..09f2476 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/weaken.test +++ b/llvm/test/tools/llvm-objcopy/ELF/weaken.test @@ -28,24 +28,23 @@ Sections: AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Local: - - Name: Local - Type: STT_FUNC - Section: .text - Value: 0x1000 - Size: 8 - Weak: - - Name: Weak - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1008 - Global: - - Name: Global - Type: STT_FUNC - Size: 8 - Section: .text - Value: 0x1010 + - Name: Local + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: Global + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1010 + Binding: STB_GLOBAL + - Name: Weak + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1008 + Binding: STB_WEAK #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objdump/X86/Inputs/simple-executable-x86_64.yaml b/llvm/test/tools/llvm-objdump/X86/Inputs/simple-executable-x86_64.yaml index f6a1d18..a7ea4c8 100644 --- a/llvm/test/tools/llvm-objdump/X86/Inputs/simple-executable-x86_64.yaml +++ b/llvm/test/tools/llvm-objdump/X86/Inputs/simple-executable-x86_64.yaml @@ -33,41 +33,43 @@ Sections: Flags: [ SHF_MERGE, SHF_STRINGS ] AddressAlign: 0x0000000000000001 Content: 5562756E747520636C616E672076657273696F6E20332E352D317562756E74753120287472756E6B2920286261736564206F6E204C4C564D20332E352900 -Symbols: - Local: - - Type: STT_SECTION - Section: .text - - Type: STT_SECTION - Section: .anothertext - Value: 0x0000000000000010 - - Type: STT_SECTION - Section: .eh_frame - Value: 0x0000000000000050 - - Type: STT_SECTION - Section: .data - Value: 0x00000000000000A8 - - Type: STT_SECTION - Section: .comment - - Name: /tmp/a.c - Type: STT_FILE - - Type: STT_FILE - Global: - - Name: somedata - Type: STT_OBJECT - Section: .anothertext - Value: 0x0000000000000045 - - Name: main - Type: STT_FUNC - Section: .anothertext - Value: 0x0000000000000010 - Size: 0x000000000000003F - - Name: foo - Type: STT_FUNC - Section: .text - Size: 0x000000000000000D - - Name: a - Type: STT_OBJECT - Section: .data - Value: 0x00000000000000A8 - Size: 0x0000000000000004 +Symbols: + - Type: STT_SECTION + Section: .text + - Type: STT_SECTION + Section: .anothertext + Value: 0x0000000000000010 + - Type: STT_SECTION + Section: .eh_frame + Value: 0x0000000000000050 + - Type: STT_SECTION + Section: .data + Value: 0x00000000000000A8 + - Type: STT_SECTION + Section: .comment + - Name: /tmp/a.c + Type: STT_FILE + - Type: STT_FILE + - Name: somedata + Type: STT_OBJECT + Section: .anothertext + Value: 0x0000000000000045 + Binding: STB_GLOBAL + - Name: main + Type: STT_FUNC + Section: .anothertext + Value: 0x0000000000000010 + Size: 0x000000000000003F + Binding: STB_GLOBAL + - Name: foo + Type: STT_FUNC + Section: .text + Size: 0x000000000000000D + Binding: STB_GLOBAL + - Name: a + Type: STT_OBJECT + Section: .data + Value: 0x00000000000000A8 + Size: 0x0000000000000004 + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/llvm-objdump/X86/adjust-vma.test b/llvm/test/tools/llvm-objdump/X86/adjust-vma.test index 6b1a7c6..b5439a5 100644 --- a/llvm/test/tools/llvm-objdump/X86/adjust-vma.test +++ b/llvm/test/tools/llvm-objdump/X86/adjust-vma.test @@ -119,13 +119,12 @@ Sections: Symbol: .text Type: R_X86_64_32 Symbols: - Local: - - Name: func - Type: STT_FUNC - Section: .text - Value: 0x0000000000000001 - - Name: sym - Section: .text - - Name: .text - Type: STT_SECTION - Section: .text + - Name: func + Type: STT_FUNC + Section: .text + Value: 0x0000000000000001 + - Name: sym + Section: .text + - Name: .text + Type: STT_SECTION + Section: .text diff --git a/llvm/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test b/llvm/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test index ad8b025..696a105 100644 --- a/llvm/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test +++ b/llvm/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test @@ -51,5 +51,5 @@ Sections: Symbol: x Type: R_X86_64_64 Symbols: - Global: - - Name: x + - Name: x + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-objdump/X86/disassemble-demangle.test b/llvm/test/tools/llvm-objdump/X86/disassemble-demangle.test index 1232033..74f2b94 100644 --- a/llvm/test/tools/llvm-objdump/X86/disassemble-demangle.test +++ b/llvm/test/tools/llvm-objdump/X86/disassemble-demangle.test @@ -23,15 +23,14 @@ Sections: AddressAlign: 0x0000000000000010 Content: "0000000000000000" Symbols: - Local: - - Name: _Z3fooi - Type: STT_FUNC - Section: .text1 - Value: 0x1000 - - Name: _Z3foov - Type: STT_FUNC - Section: .text2 - Value: 0x1010 + - Name: _Z3fooi + Type: STT_FUNC + Section: .text1 + Value: 0x1000 + - Name: _Z3foov + Type: STT_FUNC + Section: .text2 + Value: 0x1010 # We just want to check that the symbols are demangled # DEMANGLE: foo(int) diff --git a/llvm/test/tools/llvm-objdump/relocations-elf.test b/llvm/test/tools/llvm-objdump/relocations-elf.test index 4cbd85c..019dcc2 100644 --- a/llvm/test/tools/llvm-objdump/relocations-elf.test +++ b/llvm/test/tools/llvm-objdump/relocations-elf.test @@ -63,13 +63,12 @@ Sections: Type: R_X86_64_64 Symbols: - Local: - - Name: loc1 - - Name: loc2 - Global: - - Name: glob1 - Section: .text - Value: 0x0 - Size: 4 - - Name: glob2 - + - Name: loc1 + - Name: loc2 + - Name: glob1 + Section: .text + Value: 0x0 + Size: 4 + Binding: STB_GLOBAL + - Name: glob2 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-objdump/symbol-table-elf.test b/llvm/test/tools/llvm-objdump/symbol-table-elf.test index 649e54c..a2a7f01 100644 --- a/llvm/test/tools/llvm-objdump/symbol-table-elf.test +++ b/llvm/test/tools/llvm-objdump/symbol-table-elf.test @@ -28,22 +28,22 @@ Sections: AddressAlign: 0x0000000000000010 Content: "00000000" Symbols: - Global: - - Name: foo - Type: STT_FUNC - Section: .text - Value: 0x1004 - - Name: bar - Type: STT_OBJECT - Section: .text - Value: 0x1008 - Local: - - Name: lfoo - Type: STT_FUNC - Section: .text - Value: 0x1004 - - Name: lbar - Type: STT_OBJECT - Section: .text - Value: 0x1008 + - Name: lfoo + Type: STT_FUNC + Section: .text + Value: 0x1004 + - Name: lbar + Type: STT_OBJECT + Section: .text + Value: 0x1008 + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1004 + Binding: STB_GLOBAL + - Name: bar + Type: STT_OBJECT + Section: .text + Value: 0x1008 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-objdump/verdef-elf.test b/llvm/test/tools/llvm-objdump/verdef-elf.test index 1c54269..3103bd5 100644 --- a/llvm/test/tools/llvm-objdump/verdef-elf.test +++ b/llvm/test/tools/llvm-objdump/verdef-elf.test @@ -36,6 +36,6 @@ Sections: - VERSION_1 - VERSION_2 DynamicSymbols: - Global: - - Name: bar + - Name: bar + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/llvm-objdump/verneed-elf.test b/llvm/test/tools/llvm-objdump/verneed-elf.test index 2468eaa..799d2b2 100644 --- a/llvm/test/tools/llvm-objdump/verneed-elf.test +++ b/llvm/test/tools/llvm-objdump/verneed-elf.test @@ -43,5 +43,5 @@ Sections: Flags: 12 Other: 2 DynamicSymbols: - Global: - - Name: f1 + - Name: f1 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-objdump/verneed-wrong-info.test b/llvm/test/tools/llvm-objdump/verneed-wrong-info.test index b1593e9..9811564 100644 --- a/llvm/test/tools/llvm-objdump/verneed-wrong-info.test +++ b/llvm/test/tools/llvm-objdump/verneed-wrong-info.test @@ -46,5 +46,5 @@ Sections: Flags: 12 Other: 2 DynamicSymbols: - Global: - - Name: f1 + - Name: f1 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-readobj/Inputs/dwarf-exprs.exe-x86-64.yaml b/llvm/test/tools/llvm-readobj/Inputs/dwarf-exprs.exe-x86-64.yaml index 5b8f367..37b790d 100644 --- a/llvm/test/tools/llvm-readobj/Inputs/dwarf-exprs.exe-x86-64.yaml +++ b/llvm/test/tools/llvm-readobj/Inputs/dwarf-exprs.exe-x86-64.yaml @@ -25,11 +25,11 @@ Sections: AddressAlign: 8 Content: 1400000000000000017A5200017810011B0C070890010710140000001C000000B0F0FFFF2A00000000000000000000001400000000000000017A5200017810011B0C070890010000240000001C00000050F0FFFF20000000000E10460E184A0F0B770880003F1A3B2A332422000000001C000000440000003EF1FFFF1000000000410E108602430D064B0C07080000002C0000006400000038F1FFFF7F0C000000450C0A00491006027600450F0376780603660C0C0A00450C070800000000002C0000009400000088FDFFFF6600000000410E108602430D06428F03458E04478D058C06488307024B0C07080000000014000000C4000000C8FDFFFF01000000000000000000000000000000 Symbols: - Global: - - Name: myfunc - Type: STT_FUNC - Section: .text - Value: 0x0000000000400000 + - Name: myfunc + Type: STT_FUNC + Section: .text + Value: 0x0000000000400000 + Binding: STB_GLOBAL ProgramHeaders: - Type: PT_LOAD Flags: [ PF_X, PF_R ] diff --git a/llvm/test/tools/llvm-readobj/broken-group.test b/llvm/test/tools/llvm-readobj/broken-group.test index c50a9dd..8b8989a 100644 --- a/llvm/test/tools/llvm-readobj/broken-group.test +++ b/llvm/test/tools/llvm-readobj/broken-group.test @@ -73,9 +73,8 @@ Sections: Members: - SectionOrType: GRP_COMDAT - SectionOrType: .foo -Symbols: - Local: - - Name: bar - Section: .group - - Name: zed - Section: .group1 +Symbols: + - Name: bar + Section: .group + - Name: zed + Section: .group1 diff --git a/llvm/test/tools/llvm-readobj/demangle.test b/llvm/test/tools/llvm-readobj/demangle.test index 809a724..fb6c64b 100644 --- a/llvm/test/tools/llvm-readobj/demangle.test +++ b/llvm/test/tools/llvm-readobj/demangle.test @@ -210,13 +210,14 @@ Sections: Link: .symtab Content: "0102" Symbols: - Global: - - Name: _Z3fooc - Type: STT_FUNC - Section: .text.foo - - Name: _Z4blahf - Type: STT_FUNC - Section: .text.foo + - Name: _Z3fooc + Type: STT_FUNC + Section: .text.foo + Binding: STB_GLOBAL + - Name: _Z4blahf + Type: STT_FUNC + Section: .text.foo + Binding: STB_GLOBAL ProgramHeaders: - Type: PT_LOAD Flags: [ PF_R, PF_X ] diff --git a/llvm/test/tools/llvm-readobj/elf-no-shdrs.test b/llvm/test/tools/llvm-readobj/elf-no-shdrs.test index 38111bc..4e21ae7 100644 --- a/llvm/test/tools/llvm-readobj/elf-no-shdrs.test +++ b/llvm/test/tools/llvm-readobj/elf-no-shdrs.test @@ -28,6 +28,6 @@ Sections: - Name: .text Type: SHT_PROGBITS Symbols: - Global: - - Name: foobar - Section: .text + - Name: foobar + Section: .text + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-readobj/elf-packed-relocs.test b/llvm/test/tools/llvm-readobj/elf-packed-relocs.test index 84acd06..8fa73c3 100644 --- a/llvm/test/tools/llvm-readobj/elf-packed-relocs.test +++ b/llvm/test/tools/llvm-readobj/elf-packed-relocs.test @@ -41,9 +41,10 @@ Sections: AddressAlign: 0x0000000000000001 Content: 41505332088020020108800280010202088180808010818080802002080181808080100802818080802004020C7E048180808010088180808020 Symbols: - Global: - - Name: sym1 - - Name: sym2 + - Name: sym1 + Binding: STB_GLOBAL + - Name: sym2 + Binding: STB_GLOBAL ... # RUN: yaml2obj -docnum 2 %s | llvm-readobj -elf-output-style=LLVM -relocations - | FileCheck --check-prefix=LLVM2 %s @@ -90,9 +91,10 @@ Sections: AddressAlign: 0x0000000000000001 Content: 415053320A80200202088102830408037C08 Symbols: - Global: - - Name: sym1 - - Name: sym2 + - Name: sym1 + Binding: STB_GLOBAL + - Name: sym2 + Binding: STB_GLOBAL ... # RUN: yaml2obj -docnum 3 %s | llvm-readobj -elf-output-style=LLVM -relocations - | FileCheck --check-prefix=LLVM3 %s @@ -132,7 +134,8 @@ Sections: AddressAlign: 0x0000000000000001 Content: 415053320680200208800208008001080802008001818080801008818080802002080881808080100008818080802008 Symbols: - Global: - - Name: sym1 - - Name: sym2 + - Name: sym1 + Binding: STB_GLOBAL + - Name: sym2 + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/llvm-readobj/elf-reloc-negative-addend-no-sym.test b/llvm/test/tools/llvm-readobj/elf-reloc-negative-addend-no-sym.test index 13e6a96..86ec658 100644 --- a/llvm/test/tools/llvm-readobj/elf-reloc-negative-addend-no-sym.test +++ b/llvm/test/tools/llvm-readobj/elf-reloc-negative-addend-no-sym.test @@ -60,8 +60,8 @@ Sections: Type: R_X86_64_NONE Addend: -1 DynamicSymbols: - Global: - - Name: force_dynsym + - Name: force_dynsym + Binding: STB_GLOBAL ProgramHeaders: - Type: PT_LOAD VAddr: 0x1000 diff --git a/llvm/test/tools/llvm-readobj/elf-reloc-symbol-with-versioning.test b/llvm/test/tools/llvm-readobj/elf-reloc-symbol-with-versioning.test index c542b80..3d078d3 100644 --- a/llvm/test/tools/llvm-readobj/elf-reloc-symbol-with-versioning.test +++ b/llvm/test/tools/llvm-readobj/elf-reloc-symbol-with-versioning.test @@ -84,17 +84,25 @@ Sections: Symbol: f3 Type: R_X86_64_JUMP_SLOT Symbols: - Global: - - Name: f1 - - Name: f2 - - Name: g1 - - Name: _Z2f1v - - Name: f3 + - Name: f1 + Binding: STB_GLOBAL + - Name: f2 + Binding: STB_GLOBAL + - Name: g1 + Binding: STB_GLOBAL + - Name: _Z2f1v + Binding: STB_GLOBAL + - Name: f3 + Binding: STB_GLOBAL DynamicSymbols: - Global: - - Name: f1 - - Name: f2 - - Name: g1 - - Name: _Z2f1v - - Name: f3 + - Name: f1 + Binding: STB_GLOBAL + - Name: f2 + Binding: STB_GLOBAL + - Name: g1 + Binding: STB_GLOBAL + - Name: _Z2f1v + Binding: STB_GLOBAL + - Name: f3 + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/llvm-readobj/elf-reloc-zero-name-or-value.test b/llvm/test/tools/llvm-readobj/elf-reloc-zero-name-or-value.test index 7adc1ea..6b1a416 100644 --- a/llvm/test/tools/llvm-readobj/elf-reloc-zero-name-or-value.test +++ b/llvm/test/tools/llvm-readobj/elf-reloc-zero-name-or-value.test @@ -74,15 +74,15 @@ Sections: Addend: 1 Symbol: sym Symbols: - Global: - - Name: sym - Value: 0 - Section: .text + - Name: sym + Value: 0 + Section: .text + Binding: STB_GLOBAL DynamicSymbols: - Global: - - Name: sym - Value: 0 - Section: .text + - Name: sym + Value: 0 + Section: .text + Binding: STB_GLOBAL ProgramHeaders: - Type: PT_LOAD VAddr: 0x1000 diff --git a/llvm/test/tools/llvm-readobj/elf-section-types.test b/llvm/test/tools/llvm-readobj/elf-section-types.test index 66bfa8a..f65655a 100644 --- a/llvm/test/tools/llvm-readobj/elf-section-types.test +++ b/llvm/test/tools/llvm-readobj/elf-section-types.test @@ -218,5 +218,5 @@ Sections: - Name: hiuser Type: 0xffffffff Symbols: - Global: - - Name: foo + - Name: foo + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-readobj/elf-symbol-64bit.test b/llvm/test/tools/llvm-readobj/elf-symbol-64bit.test index 6c45374..dbd8f0e 100644 --- a/llvm/test/tools/llvm-readobj/elf-symbol-64bit.test +++ b/llvm/test/tools/llvm-readobj/elf-symbol-64bit.test @@ -18,7 +18,6 @@ FileHeader: Type: ET_REL Machine: EM_X86_64 Symbols: - Local: - - Name: a_sym - Value: 0xfedcba9876543210 - Size: 0x0123456789abcdef + - Name: a_sym + Value: 0xfedcba9876543210 + Size: 0x0123456789abcdef diff --git a/llvm/test/tools/llvm-readobj/elf-symbol-binding.test b/llvm/test/tools/llvm-readobj/elf-symbol-binding.test index 4813d75b..9ca5142 100644 --- a/llvm/test/tools/llvm-readobj/elf-symbol-binding.test +++ b/llvm/test/tools/llvm-readobj/elf-symbol-binding.test @@ -52,9 +52,8 @@ Sections: # Symbol with st_name = 19, binding = 0xf Content: "0000000000000000000000000000000001000000000000000000000030000000090000000000000000000000a0000000100000000000000000000000b0000000130000000000000000000000f0000000" Symbols: - Local: - - Name: local - Global: - - Name: global - Weak: - - Name: weak + - Name: local + - Name: global + Binding: STB_GLOBAL + - Name: weak + Binding: STB_WEAK diff --git a/llvm/test/tools/llvm-readobj/elf-symbol-shndx.test b/llvm/test/tools/llvm-readobj/elf-symbol-shndx.test index 7f4a6c9..ad04be5 100644 --- a/llvm/test/tools/llvm-readobj/elf-symbol-shndx.test +++ b/llvm/test/tools/llvm-readobj/elf-symbol-shndx.test @@ -75,20 +75,26 @@ Sections: EntSize: 4 Content: "0000000001000000" Symbols: - Global: - - Name: undef - - Name: normal - Section: .text - - Name: common - Index: SHN_COMMON - - Name: absolute - Index: SHN_ABS - - Name: proc - Index: 0xff01 - - Name: os - Index: 0xff21 - - Name: reserved - Index: 0xfffe + - Name: undef + Binding: STB_GLOBAL + - Name: normal + Section: .text + Binding: STB_GLOBAL + - Name: common + Index: SHN_COMMON + Binding: STB_GLOBAL + - Name: absolute + Index: SHN_ABS + Binding: STB_GLOBAL + - Name: proc + Index: 0xff01 + Binding: STB_GLOBAL + - Name: os + Index: 0xff21 + Binding: STB_GLOBAL + - Name: reserved + Index: 0xfffe + Binding: STB_GLOBAL --- !ELF FileHeader: @@ -97,6 +103,6 @@ FileHeader: Type: ET_REL Machine: EM_386 Symbols: - Global: - - Name: bad - Index: 0x42 + - Name: bad + Index: 0x42 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-readobj/elf-symbol-types.test b/llvm/test/tools/llvm-readobj/elf-symbol-types.test index cf09a96..8d46b16 100644 --- a/llvm/test/tools/llvm-readobj/elf-symbol-types.test +++ b/llvm/test/tools/llvm-readobj/elf-symbol-types.test @@ -51,27 +51,37 @@ Sections: - Name: .text Type: SHT_PROGBITS Symbols: - Global: - - Name: notype - Type: STT_NOTYPE - - Name: object - Type: STT_OBJECT - - Name: func - Type: STT_FUNC - - Name: .text - Type: STT_SECTION - Section: .text - - Name: file - Type: STT_FILE - - Name: common - Type: STT_COMMON - - Name: tls - Type: STT_TLS - - Name: gnu_ifunc - Type: STT_GNU_IFUNC - - Name: os_specific - Type: 11 - - Name: proc_specific - Type: 13 - - Name: unknown - Type: 7 + - Name: notype + Type: STT_NOTYPE + Binding: STB_GLOBAL + - Name: object + Type: STT_OBJECT + Binding: STB_GLOBAL + - Name: func + Type: STT_FUNC + Binding: STB_GLOBAL + - Name: .text + Type: STT_SECTION + Section: .text + Binding: STB_GLOBAL + - Name: file + Type: STT_FILE + Binding: STB_GLOBAL + - Name: common + Type: STT_COMMON + Binding: STB_GLOBAL + - Name: tls + Type: STT_TLS + Binding: STB_GLOBAL + - Name: gnu_ifunc + Type: STT_GNU_IFUNC + Binding: STB_GLOBAL + - Name: os_specific + Type: 11 + Binding: STB_GLOBAL + - Name: proc_specific + Type: 13 + Binding: STB_GLOBAL + - Name: unknown + Type: 7 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-readobj/elf-symbol-visibility.test b/llvm/test/tools/llvm-readobj/elf-symbol-visibility.test index 7a25f87..f2e4020 100644 --- a/llvm/test/tools/llvm-readobj/elf-symbol-visibility.test +++ b/llvm/test/tools/llvm-readobj/elf-symbol-visibility.test @@ -52,12 +52,15 @@ Sections: # Symbol with st_name = 1, st_other = 0x4 Content: "0000000000000000000000000000000001000000000000000000000000040000" Symbols: - Global: - - Name: default - Visibility: STV_DEFAULT - - Name: internal - Visibility: STV_INTERNAL - - Name: hidden - Visibility: STV_HIDDEN - - Name: protected - Visibility: STV_PROTECTED + - Name: default + Visibility: STV_DEFAULT + Binding: STB_GLOBAL + - Name: internal + Visibility: STV_INTERNAL + Binding: STB_GLOBAL + - Name: hidden + Visibility: STV_HIDDEN + Binding: STB_GLOBAL + - Name: protected + Visibility: STV_PROTECTED + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-readobj/gnu-notes.test b/llvm/test/tools/llvm-readobj/gnu-notes.test index 2107823..ab7dcde 100644 --- a/llvm/test/tools/llvm-readobj/gnu-notes.test +++ b/llvm/test/tools/llvm-readobj/gnu-notes.test @@ -101,20 +101,22 @@ Sections: AddressAlign: 0x0000000000000004 Content: 040000000900000004000000474E5500676F6C6420312E3131000000 Symbols: - Local: - - Name: reduced.c - Type: STT_FILE - - Type: STT_FILE - Global: - - Name: main - Type: STT_FUNC - Section: .text - Value: 0x0000000000400140 - Size: 0x0000000000000003 - - Name: _edata - Value: 0x0000000000401000 - - Name: __bss_start - Value: 0x0000000000401000 - - Name: _end - Value: 0x0000000000401000 + - Name: reduced.c + Type: STT_FILE + - Type: STT_FILE + - Name: main + Type: STT_FUNC + Section: .text + Value: 0x0000000000400140 + Size: 0x0000000000000003 + Binding: STB_GLOBAL + - Name: _edata + Value: 0x0000000000401000 + Binding: STB_GLOBAL + - Name: __bss_start + Value: 0x0000000000401000 + Binding: STB_GLOBAL + - Name: _end + Value: 0x0000000000401000 + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/obj2yaml/elf-gnu-unique-symbols.yaml b/llvm/test/tools/obj2yaml/elf-gnu-unique-symbols.yaml index fd29f30..42925e1 100644 --- a/llvm/test/tools/obj2yaml/elf-gnu-unique-symbols.yaml +++ b/llvm/test/tools/obj2yaml/elf-gnu-unique-symbols.yaml @@ -11,10 +11,9 @@ # CHECK-NEXT: Type: ET_REL # CHECK-NEXT: Machine: EM_X86_64 # CHECK-NEXT: Symbols: -# CHECK-NEXT: GNUUnique: -# CHECK-NEXT: - Name: foo -# CHECK-NEXT: Type: STT_OBJECT -# CHECK-NEXT: DynamicSymbols: {} +# CHECK-NEXT: - Name: foo +# CHECK-NEXT: Type: STT_OBJECT +# CHECK-NEXT: Binding: STB_GNU_UNIQUE # CHECK-NEXT: ... --- !ELF @@ -25,6 +24,6 @@ FileHeader: Type: ET_REL Machine: EM_X86_64 Symbols: - GNUUnique: - - Name: foo - Type: STT_OBJECT + - Name: foo + Type: STT_OBJECT + Binding: STB_GNU_UNIQUE diff --git a/llvm/test/tools/obj2yaml/missing_symtab.test b/llvm/test/tools/obj2yaml/missing_symtab.test index b992931..f61712c 100644 --- a/llvm/test/tools/obj2yaml/missing_symtab.test +++ b/llvm/test/tools/obj2yaml/missing_symtab.test @@ -2,4 +2,4 @@ # test that we don't crash when passed object files without a symbol table # CHECK-LABEL: FileHeader: # CHECK-LABEL: Sections: -# CHECK-LABEL: Symbols: +# CHECK-NOT: Symbols: diff --git a/llvm/test/tools/obj2yaml/special-symbol-indices.yaml b/llvm/test/tools/obj2yaml/special-symbol-indices.yaml index 127dc25..25550c9 100644 --- a/llvm/test/tools/obj2yaml/special-symbol-indices.yaml +++ b/llvm/test/tools/obj2yaml/special-symbol-indices.yaml @@ -4,18 +4,22 @@ ## Test checks that we are able to handle symbols with special/reserved indices. # CHECK: Symbols: -# CHECK-NEXT: Global: -# CHECK-NEXT: - Name: absolute -# CHECK-NEXT: Index: SHN_ABS -# CHECK-NEXT: Value: 0x0000000000001234 -# CHECK-NEXT: - Name: common -# CHECK-NEXT: Index: SHN_COMMON -# CHECK-NEXT: - Name: valid_index -# CHECK-NEXT: Section: .text -# CHECK-NEXT: - Name: processor_specific_index -# CHECK-NEXT: Index: SHN_HEXAGON_SCOMMON_1 -# CHECK-NEXT: - Name: unknown_index -# CHECK-NEXT: Index: 0x0000FFFE +# CHECK-NEXT: - Name: absolute +# CHECK-NEXT: Index: SHN_ABS +# CHECK-NEXT: Binding: STB_GLOBAL +# CHECK-NEXT: Value: 0x0000000000001234 +# CHECK-NEXT: - Name: common +# CHECK-NEXT: Index: SHN_COMMON +# CHECK-NEXT: Binding: STB_GLOBAL +# CHECK-NEXT: - Name: valid_index +# CHECK-NEXT: Section: .text +# CHECK-NEXT: Binding: STB_GLOBAL +# CHECK-NEXT: - Name: processor_specific_index +# CHECK-NEXT: Index: SHN_HEXAGON_SCOMMON_1 +# CHECK-NEXT: Binding: STB_GLOBAL +# CHECK-NEXT: - Name: unknown_index +# CHECK-NEXT: Index: 0x0000FFFE +# CHECK-NEXT: Binding: STB_GLOBAL !ELF FileHeader: @@ -27,18 +31,22 @@ Sections: - Name: .text Type: SHT_PROGBITS Symbols: - Global: - - Name: absolute - Index: SHN_ABS - Value: 0x1234 - - Name: common - Index: SHN_COMMON - - Name: valid_index - Index: 0x1 - - Name: processor_specific_index - Index: SHN_HEXAGON_SCOMMON_1 - - Name: unknown_index - Index: 0xfffe + - Name: absolute + Index: SHN_ABS + Value: 0x1234 + Binding: STB_GLOBAL + - Name: common + Index: SHN_COMMON + Binding: STB_GLOBAL + - Name: valid_index + Index: 0x1 + Binding: STB_GLOBAL + - Name: processor_specific_index + Index: SHN_HEXAGON_SCOMMON_1 + Binding: STB_GLOBAL + - Name: unknown_index + Index: 0xfffe + Binding: STB_GLOBAL ## shn_xindex.o contains a symbol with st_shndx == SHN_XINDEX. ## We do not support it at this moment. diff --git a/llvm/test/tools/obj2yaml/symbol-type.yaml b/llvm/test/tools/obj2yaml/symbol-type.yaml index 8231990..8183143 100644 --- a/llvm/test/tools/obj2yaml/symbol-type.yaml +++ b/llvm/test/tools/obj2yaml/symbol-type.yaml @@ -2,11 +2,12 @@ # RUN: obj2yaml %t | FileCheck %s # CHECK: Symbols: -# CHECK-NEXT: Global: -# CHECK-NEXT: - Name: a_known_type -# CHECK-NEXT: Type: STT_OBJECT -# CHECK-NEXT: - Name: an_unknown_type -# CHECK-NEXT: Type: 0x07 +# CHECK-NEXT: - Name: a_known_type +# CHECK-NEXT: Type: STT_OBJECT +# CHECK-NEXT: Binding: STB_GLOBAL +# CHECK-NEXT: - Name: an_unknown_type +# CHECK-NEXT: Type: 0x07 +# CHECK-NEXT: Binding: STB_GLOBAL !ELF FileHeader: @@ -15,8 +16,9 @@ FileHeader: Type: ET_REL Machine: EM_X86_64 Symbols: - Global: - - Name: a_known_type - Type: STT_OBJECT - - Name: an_unknown_type - Type: 0x7 + - Name: a_known_type + Type: STT_OBJECT + Binding: STB_GLOBAL + - Name: an_unknown_type + Type: 0x7 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/obj2yaml/verdef-section.yaml b/llvm/test/tools/obj2yaml/verdef-section.yaml index 87a283b..29e492c 100644 --- a/llvm/test/tools/obj2yaml/verdef-section.yaml +++ b/llvm/test/tools/obj2yaml/verdef-section.yaml @@ -67,6 +67,6 @@ Sections: - VERSION_2 - VERSION_3 DynamicSymbols: - Global: - - Name: foo + - Name: foo + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/obj2yaml/verneed-section.yaml b/llvm/test/tools/obj2yaml/verneed-section.yaml index 6ca7cb2..594757d 100644 --- a/llvm/test/tools/obj2yaml/verneed-section.yaml +++ b/llvm/test/tools/obj2yaml/verneed-section.yaml @@ -65,5 +65,5 @@ Sections: Flags: 12 Other: 2 DynamicSymbols: - Global: - - Name: f1 + - Name: f1 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/obj2yaml/versym-section.yaml b/llvm/test/tools/obj2yaml/versym-section.yaml index 5d69cb4..3883696 100644 --- a/llvm/test/tools/obj2yaml/versym-section.yaml +++ b/llvm/test/tools/obj2yaml/versym-section.yaml @@ -19,11 +19,11 @@ # CHECK-NEXT: AddressAlign: 0x0000000000000002 # CHECK-NEXT: EntSize: 0x0000000000000002 # CHECK-NEXT: Entries: [ 0, 3, 4 ] -# CHECK-NEXT: Symbols: {} # CHECK-NEXT: DynamicSymbols: -# CHECK-NEXT: Global: -# CHECK-NEXT: - Name: f1 -# CHECK-NEXT: - Name: f2 +# CHECK-NEXT: - Name: f1 +# CHECK-NEXT: Binding: STB_GLOBAL +# CHECK-NEXT: - Name: f2 +# CHECK-NEXT: Binding: STB_GLOBAL --- !ELF FileHeader: @@ -42,7 +42,8 @@ Sections: EntSize: 0x0000000000000002 Entries: [ 0, 3, 4 ] DynamicSymbols: - Global: - - Name: f1 - - Name: f2 + - Name: f1 + Binding: STB_GLOBAL + - Name: f2 + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/sanstats/elf.test b/llvm/test/tools/sanstats/elf.test index 67e6e4a..3443847 100644 --- a/llvm/test/tools/sanstats/elf.test +++ b/llvm/test/tools/sanstats/elf.test @@ -171,33 +171,34 @@ Sections: Relocations: - Offset: 0x0000000000000027 Type: R_X86_64_64 -Symbols: - Local: - - Name: f.c - Type: STT_FILE - - Type: STT_SECTION - Section: .text - - Type: STT_SECTION - Section: .debug_str - - Type: STT_SECTION - Section: .debug_abbrev - - Type: STT_SECTION - Section: .debug_info - - Type: STT_SECTION - Section: .debug_line - Global: - - Name: f1 - Type: STT_FUNC - Section: .text - Size: 0x0000000000000006 - - Name: f2 - Type: STT_FUNC - Section: .text - Value: 0x0000000000000010 - Size: 0x0000000000000006 - - Name: f3 - Type: STT_FUNC - Section: .text - Value: 0x0000000000000020 - Size: 0x0000000000000006 +Symbols: + - Name: f.c + Type: STT_FILE + - Type: STT_SECTION + Section: .text + - Type: STT_SECTION + Section: .debug_str + - Type: STT_SECTION + Section: .debug_abbrev + - Type: STT_SECTION + Section: .debug_info + - Type: STT_SECTION + Section: .debug_line + - Name: f1 + Type: STT_FUNC + Section: .text + Size: 0x0000000000000006 + Binding: STB_GLOBAL + - Name: f2 + Type: STT_FUNC + Section: .text + Value: 0x0000000000000010 + Size: 0x0000000000000006 + Binding: STB_GLOBAL + - Name: f3 + Type: STT_FUNC + Section: .text + Value: 0x0000000000000020 + Size: 0x0000000000000006 + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/yaml2obj/dynamic-symbols.yaml b/llvm/test/tools/yaml2obj/dynamic-symbols.yaml index c77f743..718b06d 100644 --- a/llvm/test/tools/yaml2obj/dynamic-symbols.yaml +++ b/llvm/test/tools/yaml2obj/dynamic-symbols.yaml @@ -14,18 +14,18 @@ Sections: Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_WRITE ] DynamicSymbols: - Global: - - Name: dynglobal - Type: STT_OBJECT - Section: .data - Weak: - - Name: dynweak - Type: STT_OBJECT - Section: .data - Local: - - Name: dynlocal - Type: STT_OBJECT - Section: .data + - Name: dynglobal + Type: STT_OBJECT + Section: .data + Binding: STB_GLOBAL + - Name: dynweak + Type: STT_OBJECT + Section: .data + Binding: STB_WEAK + - Name: dynlocal + Type: STT_OBJECT + Section: .data + Binding: STB_LOCAL # SECTION: Name: .dynsym # SECTION-NEXT: Type: SHT_DYNSYM diff --git a/llvm/test/tools/yaml2obj/dynsym-dynstr-addr.yaml b/llvm/test/tools/yaml2obj/dynsym-dynstr-addr.yaml index c54787c..e256fdc 100644 --- a/llvm/test/tools/yaml2obj/dynsym-dynstr-addr.yaml +++ b/llvm/test/tools/yaml2obj/dynsym-dynstr-addr.yaml @@ -36,5 +36,5 @@ Sections: Address: 0x2000 EntSize: 0x18 DynamicSymbols: - Global: - - Name: foo + - Name: foo + Binding: STB_GLOBAL diff --git a/llvm/test/tools/yaml2obj/elf-comdat-broken.yaml b/llvm/test/tools/yaml2obj/elf-comdat-broken.yaml index 14b4d53..5ed7a56 100644 --- a/llvm/test/tools/yaml2obj/elf-comdat-broken.yaml +++ b/llvm/test/tools/yaml2obj/elf-comdat-broken.yaml @@ -16,8 +16,8 @@ Sections: - SectionOrType: 0xFF - SectionOrType: 3 Symbols: - Global: - - Name: foo + - Name: foo + - Binding: STB_GLOBAL ## Check we are able to produce SHT_GROUP section with a custom Type (0xFF). # CHECK: Groups { diff --git a/llvm/test/tools/yaml2obj/elf-gnu-unique-symbols.yaml b/llvm/test/tools/yaml2obj/elf-gnu-unique-symbols.yaml index 9872b5e..06c504e 100644 --- a/llvm/test/tools/yaml2obj/elf-gnu-unique-symbols.yaml +++ b/llvm/test/tools/yaml2obj/elf-gnu-unique-symbols.yaml @@ -16,6 +16,6 @@ FileHeader: Type: ET_REL Machine: EM_X86_64 Symbols: - GNUUnique: - - Name: foo - Type: STT_OBJECT + - Name: foo + Type: STT_OBJECT + Binding: STB_GNU_UNIQUE diff --git a/llvm/test/tools/yaml2obj/elf-symbols-binding-order.yaml b/llvm/test/tools/yaml2obj/elf-symbols-binding-order.yaml new file mode 100644 index 0000000..1c9fbe30 --- /dev/null +++ b/llvm/test/tools/yaml2obj/elf-symbols-binding-order.yaml @@ -0,0 +1,18 @@ +## Check we restrict placing local symbols after global in .symtab +## We might want to change it later to allow doing that +## for producing broken outputs. + +# RUN: not yaml2obj %s -o %t 2>&1 | FileCheck %s +# CHECK: error: Local symbol 'bar' after global in Symbols list. + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Symbols: + - Name: foo + Binding: STB_GLOBAL + - Name: bar + Binding: STB_LOCAL diff --git a/llvm/test/tools/yaml2obj/elf-symtab-shinfo.yaml b/llvm/test/tools/yaml2obj/elf-symtab-shinfo.yaml index 649e568..982c5d4 100644 --- a/llvm/test/tools/yaml2obj/elf-symtab-shinfo.yaml +++ b/llvm/test/tools/yaml2obj/elf-symtab-shinfo.yaml @@ -36,8 +36,8 @@ Sections: Info: 26 Type: SHT_SYMTAB Symbols: - Global: - - Name: foo + - Name: foo + Binding: STB_GLOBAL DynamicSymbols: - Global: - - Name: bar + - Name: bar + Binding: STB_GLOBAL diff --git a/llvm/test/tools/yaml2obj/elf-symtab-shtype.yaml b/llvm/test/tools/yaml2obj/elf-symtab-shtype.yaml index cfa5cf4..143c025 100644 --- a/llvm/test/tools/yaml2obj/elf-symtab-shtype.yaml +++ b/llvm/test/tools/yaml2obj/elf-symtab-shtype.yaml @@ -17,5 +17,5 @@ Sections: - Name: .symtab Type: SHT_DYNAMIC Symbols: - Global: - - Name: foo + - Name: foo + Binding: STB_GLOBAL diff --git a/llvm/test/tools/yaml2obj/relocation-explicit-symbol-index.yaml b/llvm/test/tools/yaml2obj/relocation-explicit-symbol-index.yaml index ac16643..1a3470f 100644 --- a/llvm/test/tools/yaml2obj/relocation-explicit-symbol-index.yaml +++ b/llvm/test/tools/yaml2obj/relocation-explicit-symbol-index.yaml @@ -32,5 +32,5 @@ Sections: Offset: 0 Symbol: 0x1 Symbols: - Global: - - Name: foo + - Name: foo + Binding: STB_GLOBAL diff --git a/llvm/test/tools/yaml2obj/symbol-index.yaml b/llvm/test/tools/yaml2obj/symbol-index.yaml index e5c5073..980c70d 100644 --- a/llvm/test/tools/yaml2obj/symbol-index.yaml +++ b/llvm/test/tools/yaml2obj/symbol-index.yaml @@ -11,25 +11,32 @@ Sections: - Name: .text Type: SHT_PROGBITS Symbols: - Global: - - Name: absolute1 - Index: SHN_ABS - Value: 0x1234 - - Name: absolute2 - Index: 0xfff1 - Value: 0x4321 - - Name: common1 - Index: SHN_COMMON - - Name: common2 - Index: 0xfff2 - - Name: good - Index: 0x1 - - Name: bad - Index: 0x42 - - Name: undef1 - Index: SHN_UNDEF - - Name: undef2 - Index: 0 + - Name: absolute1 + Index: SHN_ABS + Value: 0x1234 + Binding: STB_GLOBAL + - Name: absolute2 + Index: 0xfff1 + Value: 0x4321 + Binding: STB_GLOBAL + - Name: common1 + Index: SHN_COMMON + Binding: STB_GLOBAL + - Name: common2 + Index: 0xfff2 + Binding: STB_GLOBAL + - Name: good + Index: 0x1 + Binding: STB_GLOBAL + - Name: bad + Index: 0x42 + Binding: STB_GLOBAL + - Name: undef1 + Index: SHN_UNDEF + Binding: STB_GLOBAL + - Name: undef2 + Index: 0 + Binding: STB_GLOBAL # CHECK: Symbol table '.symtab' contains 9 entries # CHECK-NEXT: Num: {{.*}} Ndx Name diff --git a/llvm/test/tools/yaml2obj/symbol-type.yaml b/llvm/test/tools/yaml2obj/symbol-type.yaml index 1bca0e4..5b3bb73 100644 --- a/llvm/test/tools/yaml2obj/symbol-type.yaml +++ b/llvm/test/tools/yaml2obj/symbol-type.yaml @@ -26,18 +26,24 @@ Sections: - Name: .text Type: SHT_PROGBITS Symbols: - Global: - - Name: notype - Type: STT_NOTYPE - - Name: normal_type - Type: STT_OBJECT - - Name: .text - Type: STT_SECTION - - Name: known_hex - Type: 0x1 - - Name: unknown_hex - Type: 0xb - - Name: known_int - Type: 1 - - Name: unknown_int - Type: 11 + - Name: notype + Type: STT_NOTYPE + Binding: STB_GLOBAL + - Name: normal_type + Type: STT_OBJECT + Binding: STB_GLOBAL + - Name: .text + Type: STT_SECTION + Binding: STB_GLOBAL + - Name: known_hex + Type: 0x1 + Binding: STB_GLOBAL + - Name: unknown_hex + Type: 0xb + Binding: STB_GLOBAL + - Name: known_int + Type: 1 + Binding: STB_GLOBAL + - Name: unknown_int + Type: 11 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/yaml2obj/verdef-section.yaml b/llvm/test/tools/yaml2obj/verdef-section.yaml index deac6e7..582b801 100644 --- a/llvm/test/tools/yaml2obj/verdef-section.yaml +++ b/llvm/test/tools/yaml2obj/verdef-section.yaml @@ -64,6 +64,6 @@ Sections: - VERSION_2 - VERSION_3 DynamicSymbols: - Global: - - Name: foo + - Name: foo + Binding: STB_GLOBAL ... diff --git a/llvm/test/tools/yaml2obj/verneed-section.yaml b/llvm/test/tools/yaml2obj/verneed-section.yaml index 2fc58ad..bdfddff 100644 --- a/llvm/test/tools/yaml2obj/verneed-section.yaml +++ b/llvm/test/tools/yaml2obj/verneed-section.yaml @@ -69,5 +69,5 @@ Sections: Flags: 12 Other: 2 DynamicSymbols: - Global: - - Name: f1 + - Name: f1 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/yaml2obj/versym-section.yaml b/llvm/test/tools/yaml2obj/versym-section.yaml index 3c08ddd..506e16c 100644 --- a/llvm/test/tools/yaml2obj/versym-section.yaml +++ b/llvm/test/tools/yaml2obj/versym-section.yaml @@ -82,7 +82,8 @@ Sections: Flags: 0 Other: 4 DynamicSymbols: - Global: - - Name: f1 - - Name: f2 + - Name: f1 + Binding: STB_GLOBAL + - Name: f2 + Binding: STB_GLOBAL ... diff --git a/llvm/tools/obj2yaml/elf2yaml.cpp b/llvm/tools/obj2yaml/elf2yaml.cpp index b9cdc12..17f23d5 100644 --- a/llvm/tools/obj2yaml/elf2yaml.cpp +++ b/llvm/tools/obj2yaml/elf2yaml.cpp @@ -42,7 +42,7 @@ class ELFDumper { ArrayRef ShndxTable; std::error_code dumpSymbols(const Elf_Shdr *Symtab, - ELFYAML::SymbolsDef &Symbols); + std::vector &Symbols); std::error_code dumpSymbol(const Elf_Sym *Sym, const Elf_Shdr *SymTab, StringRef StrTable, ELFYAML::Symbol &S); std::error_code dumpCommonSection(const Elf_Shdr *Shdr, ELFYAML::Section &S); @@ -226,8 +226,9 @@ template ErrorOr ELFDumper::dump() { } template -std::error_code ELFDumper::dumpSymbols(const Elf_Shdr *Symtab, - ELFYAML::SymbolsDef &Symbols) { +std::error_code +ELFDumper::dumpSymbols(const Elf_Shdr *Symtab, + std::vector &Symbols) { if (!Symtab) return std::error_code(); @@ -240,33 +241,11 @@ std::error_code ELFDumper::dumpSymbols(const Elf_Shdr *Symtab, if (!SymtabOrErr) return errorToErrorCode(SymtabOrErr.takeError()); - bool IsFirstSym = true; - for (const auto &Sym : *SymtabOrErr) { - if (IsFirstSym) { - IsFirstSym = false; - continue; - } - + for (const auto &Sym : (*SymtabOrErr).drop_front()) { ELFYAML::Symbol S; if (auto EC = dumpSymbol(&Sym, Symtab, StrTable, S)) return EC; - - switch (Sym.getBinding()) { - case ELF::STB_LOCAL: - Symbols.Local.push_back(S); - break; - case ELF::STB_GLOBAL: - Symbols.Global.push_back(S); - break; - case ELF::STB_WEAK: - Symbols.Weak.push_back(S); - break; - case ELF::STB_GNU_UNIQUE: - Symbols.GNUUnique.push_back(S); - break; - default: - llvm_unreachable("Unknown ELF symbol binding"); - } + Symbols.push_back(S); } return std::error_code(); @@ -280,6 +259,7 @@ ELFDumper::dumpSymbol(const Elf_Sym *Sym, const Elf_Shdr *SymTab, S.Value = Sym->st_value; S.Size = Sym->st_size; S.Other = Sym->st_other; + S.Binding = Sym->getBinding(); Expected SymbolNameOrErr = getSymbolName(Sym, StrTable, SymTab); if (!SymbolNameOrErr) diff --git a/llvm/tools/yaml2obj/yaml2elf.cpp b/llvm/tools/yaml2obj/yaml2elf.cpp index 7a8b0cc..1507504 100644 --- a/llvm/tools/yaml2obj/yaml2elf.cpp +++ b/llvm/tools/yaml2obj/yaml2elf.cpp @@ -133,7 +133,7 @@ class ELFState { const ELFYAML::Object &Doc; bool buildSectionIndex(); - bool buildSymbolIndex(const ELFYAML::SymbolsDef &); + bool buildSymbolIndex(ArrayRef Symbols); void initELFHeader(Elf_Ehdr &Header); void initProgramHeaders(std::vector &PHeaders); bool initSectionHeaders(std::vector &SHeaders, @@ -145,8 +145,7 @@ class ELFState { ContiguousBlobAccumulator &CBA); void setProgramHeaderLayout(std::vector &PHeaders, std::vector &SHeaders); - void addSymbols(const std::vector &Symbols, - std::vector &Syms, unsigned SymbolBinding, + void addSymbols(ArrayRef Symbols, std::vector &Syms, const StringTableBuilder &Strtab); void writeSectionContent(Elf_Shdr &SHeader, const ELFYAML::RawContentSection &Section, @@ -171,7 +170,6 @@ class ELFState { bool writeSectionContent(Elf_Shdr &SHeader, const ELFYAML::DynamicSection &Section, ContiguousBlobAccumulator &CBA); - bool hasDynamicSymbols() const; SmallVector implicitSectionNames() const; // - SHT_NULL entry (placed first, i.e. 0'th entry) @@ -323,6 +321,13 @@ bool ELFState::initSectionHeaders(std::vector &SHeaders, return true; } +static size_t findFirstNonGlobal(ArrayRef Symbols) { + for (size_t I = 0; I < Symbols.size(); ++I) + if (Symbols[I].Binding.value != ELF::STB_LOCAL) + return I; + return Symbols.size(); +} + template void ELFState::initSymtabSectionHeader(Elf_Shdr &SHeader, SymtabType STType, @@ -335,7 +340,7 @@ void ELFState::initSymtabSectionHeader(Elf_Shdr &SHeader, const auto &Symbols = IsStatic ? Doc.Symbols : Doc.DynamicSymbols; auto &Strtab = IsStatic ? DotStrtab : DotDynstr; // One greater than symbol table index of the last local symbol. - SHeader.sh_info = Symbols.Local.size() + 1; + SHeader.sh_info = findFirstNonGlobal(Symbols) + 1; SHeader.sh_entsize = sizeof(Elf_Sym); SHeader.sh_addralign = 8; @@ -359,10 +364,7 @@ void ELFState::initSymtabSectionHeader(Elf_Shdr &SHeader, Syms.push_back(Sym); } - addSymbols(Symbols.Local, Syms, ELF::STB_LOCAL, Strtab); - addSymbols(Symbols.Global, Syms, ELF::STB_GLOBAL, Strtab); - addSymbols(Symbols.Weak, Syms, ELF::STB_WEAK, Strtab); - addSymbols(Symbols.GNUUnique, Syms, ELF::STB_GNU_UNIQUE, Strtab); + addSymbols(Symbols, Syms, Strtab); writeArrayData( CBA.getOSAndAlignedOffset(SHeader.sh_offset, SHeader.sh_addralign), @@ -471,16 +473,15 @@ void ELFState::setProgramHeaderLayout(std::vector &PHeaders, } template -void ELFState::addSymbols(const std::vector &Symbols, +void ELFState::addSymbols(ArrayRef Symbols, std::vector &Syms, - unsigned SymbolBinding, const StringTableBuilder &Strtab) { for (const auto &Sym : Symbols) { Elf_Sym Symbol; zero(Symbol); if (!Sym.Name.empty()) Symbol.st_name = Strtab.getOffset(Sym.Name); - Symbol.setBindingAndType(SymbolBinding, Sym.Type); + Symbol.setBindingAndType(Sym.Binding, Sym.Type); if (!Sym.Section.empty()) { unsigned Index; if (SN2I.lookup(Sym.Section, Index)) { @@ -796,45 +797,41 @@ template bool ELFState::buildSectionIndex() { } template -bool ELFState::buildSymbolIndex(const ELFYAML::SymbolsDef &Symbols) { +bool ELFState::buildSymbolIndex(ArrayRef Symbols) { + bool GlobalSymbolSeen = false; std::size_t I = 0; - for (const std::vector &V : - {Symbols.Local, Symbols.Global, Symbols.Weak, Symbols.GNUUnique}) { - for (const auto &Sym : V) { - ++I; - if (Sym.Name.empty()) - continue; - if (SymN2I.addName(Sym.Name, I)) { - WithColor::error() << "Repeated symbol name: '" << Sym.Name << "'.\n"; - return false; - } + for (const auto &Sym : Symbols) { + ++I; + + StringRef Name = Sym.Name; + if (Sym.Binding.value == ELF::STB_LOCAL && GlobalSymbolSeen) { + WithColor::error() << "Local symbol '" + Name + + "' after global in Symbols list.\n"; + return false; + } + if (Sym.Binding.value != ELF::STB_LOCAL) + GlobalSymbolSeen = true; + + if (!Name.empty() && SymN2I.addName(Name, I)) { + WithColor::error() << "Repeated symbol name: '" << Name << "'.\n"; + return false; } } return true; } template void ELFState::finalizeStrings() { - auto AddSymbols = [](StringTableBuilder &StrTab, - const ELFYAML::SymbolsDef &Symbols) { - for (const auto &Sym : Symbols.Local) - StrTab.add(Sym.Name); - for (const auto &Sym : Symbols.Global) - StrTab.add(Sym.Name); - for (const auto &Sym : Symbols.Weak) - StrTab.add(Sym.Name); - for (const auto &Sym : Symbols.GNUUnique) - StrTab.add(Sym.Name); - }; - // Add the regular symbol names to .strtab section. - AddSymbols(DotStrtab, Doc.Symbols); + for (const ELFYAML::Symbol &Sym : Doc.Symbols) + DotStrtab.add(Sym.Name); DotStrtab.finalize(); - if (!hasDynamicSymbols()) + if (Doc.DynamicSymbols.empty()) return; // Add the dynamic symbol names to .dynstr section. - AddSymbols(DotDynstr, Doc.DynamicSymbols); + for (const ELFYAML::Symbol &Sym : Doc.DynamicSymbols) + DotDynstr.add(Sym.Name); // SHT_GNU_verdef and SHT_GNU_verneed sections might also // add strings to .dynstr section. @@ -901,7 +898,7 @@ int ELFState::writeELF(raw_ostream &OS, const ELFYAML::Object &Doc) { State.initStrtabSectionHeader(SHeaders[Index], ".strtab", State.DotStrtab, CBA); Index = State.SN2I.get(".shstrtab"); State.initStrtabSectionHeader(SHeaders[Index], ".shstrtab", State.DotShStrtab, CBA); - if (State.hasDynamicSymbols()) { + if (!Doc.DynamicSymbols.empty()) { Index = State.SN2I.get(".dynsym"); State.initSymtabSectionHeader(SHeaders[Index], SymtabType::Dynamic, CBA); SHeaders[Index].sh_flags |= ELF::SHF_ALLOC; @@ -920,16 +917,9 @@ int ELFState::writeELF(raw_ostream &OS, const ELFYAML::Object &Doc) { return 0; } -template bool ELFState::hasDynamicSymbols() const { - return !Doc.DynamicSymbols.Global.empty() || - !Doc.DynamicSymbols.Weak.empty() || - !Doc.DynamicSymbols.Local.empty() || - !Doc.DynamicSymbols.GNUUnique.empty(); -} - template SmallVector ELFState::implicitSectionNames() const { - if (!hasDynamicSymbols()) + if (Doc.DynamicSymbols.empty()) return {".symtab", ".strtab", ".shstrtab"}; return {".symtab", ".strtab", ".shstrtab", ".dynsym", ".dynstr"}; } -- 2.7.4