summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/ObjectYAML/ELFYAML.h21
-rw-r--r--llvm/lib/ObjectYAML/ELFYAML.cpp21
-rw-r--r--llvm/test/DebugInfo/invalid-relocations.test10
-rw-r--r--llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml18
-rw-r--r--llvm/test/Object/AMDGPU/elf64-relocs.yaml18
-rw-r--r--llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml18
-rw-r--r--llvm/test/Object/Mips/abi-flags.yaml7
-rw-r--r--llvm/test/Object/Mips/elf-abi.yaml40
-rw-r--r--llvm/test/Object/Mips/elf-flags.yaml10
-rw-r--r--llvm/test/Object/Mips/elf-mips64-rel.yaml26
-rw-r--r--llvm/test/Object/X86/yaml-elf-x86-rel-broken.yaml4
-rw-r--r--llvm/test/Object/X86/yaml2obj-elf-x86-rel.yaml18
-rw-r--r--llvm/test/Object/obj2yaml-invalid-reloc.test4
-rw-r--r--llvm/test/Object/obj2yaml.test31
-rw-r--r--llvm/test/Object/yaml2obj-elf-alignment.yaml19
-rw-r--r--llvm/test/Object/yaml2obj-elf-multi-doc.test24
-rw-r--r--llvm/test/Object/yaml2obj-elf-rel-noref.yaml37
-rw-r--r--llvm/test/Object/yaml2obj-elf-rel.yaml22
-rw-r--r--llvm/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml23
-rw-r--r--llvm/test/Object/yaml2obj-elf-symbol-basic.yaml15
-rw-r--r--llvm/test/Object/yaml2obj-elf-symbol-visibility.yaml128
-rw-r--r--llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml13
-rw-r--r--llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml13
-rw-r--r--llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml13
-rw-r--r--llvm/test/tools/llvm-ar/Inputs/elf.yaml5
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml25
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/abs-symbol.test8
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/armexidx-link.test19
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/basic-archive-copy.test10
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/basic-relocations.test40
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/common-symbol.test36
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test19
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/cross-arch-sections-symbols.test21
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/discard-all.test45
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/discard-locals-rel.test7
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/discard-locals.test41
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/discard-mix-local-and-all.test21
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/globalize.test38
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/group-addr-misaligned.test5
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/group-big-endian.test32
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/group-unchanged.test32
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/group.test32
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/hexagon-unsupported-on-x86.test6
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/keep-file-symbols.test15
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols-mix-globalize.test31
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/keep-global-symbols.test64
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/keep-symbol-remove-section.test11
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/keep-symbol.test31
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/localize-hidden.test98
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/localize.test51
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/prefix-symbols.test21
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/redefine-symbol.test30
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/regex.test31
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/reloc-error-remove-symtab.test8
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/remove-section-with-symbol.test23
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/rename-section-flag-preserved.test1
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/section-index-unsupported.test6
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-all-and-keep-symbol.test31
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-all-and-remove.test18
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-debug-and-remove.test18
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-debug.test11
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-group-symbol.test8
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-multiple-files.test21
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-reloc-symbol.test11
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-section-err.test8
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-symbol-and-relocation.test6
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-symbol.test35
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-unneeded.test73
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/symbol-copy.test69
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/symbol-empty-name.test15
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/weaken-all.test42
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/weaken.test35
-rw-r--r--llvm/test/tools/llvm-objdump/X86/Inputs/simple-executable-x86_64.yaml76
-rw-r--r--llvm/test/tools/llvm-objdump/X86/adjust-vma.test19
-rw-r--r--llvm/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test4
-rw-r--r--llvm/test/tools/llvm-objdump/X86/disassemble-demangle.test17
-rw-r--r--llvm/test/tools/llvm-objdump/relocations-elf.test19
-rw-r--r--llvm/test/tools/llvm-objdump/symbol-table-elf.test36
-rw-r--r--llvm/test/tools/llvm-objdump/verdef-elf.test4
-rw-r--r--llvm/test/tools/llvm-objdump/verneed-elf.test4
-rw-r--r--llvm/test/tools/llvm-objdump/verneed-wrong-info.test4
-rw-r--r--llvm/test/tools/llvm-readobj/Inputs/dwarf-exprs.exe-x86-64.yaml10
-rw-r--r--llvm/test/tools/llvm-readobj/broken-group.test11
-rw-r--r--llvm/test/tools/llvm-readobj/demangle.test15
-rw-r--r--llvm/test/tools/llvm-readobj/elf-no-shdrs.test6
-rw-r--r--llvm/test/tools/llvm-readobj/elf-packed-relocs.test21
-rw-r--r--llvm/test/tools/llvm-readobj/elf-reloc-negative-addend-no-sym.test4
-rw-r--r--llvm/test/tools/llvm-readobj/elf-reloc-symbol-with-versioning.test32
-rw-r--r--llvm/test/tools/llvm-readobj/elf-reloc-zero-name-or-value.test16
-rw-r--r--llvm/test/tools/llvm-readobj/elf-section-types.test4
-rw-r--r--llvm/test/tools/llvm-readobj/elf-symbol-64bit.test7
-rw-r--r--llvm/test/tools/llvm-readobj/elf-symbol-binding.test11
-rw-r--r--llvm/test/tools/llvm-readobj/elf-symbol-shndx.test40
-rw-r--r--llvm/test/tools/llvm-readobj/elf-symbol-types.test58
-rw-r--r--llvm/test/tools/llvm-readobj/elf-symbol-visibility.test21
-rw-r--r--llvm/test/tools/llvm-readobj/gnu-notes.test34
-rw-r--r--llvm/test/tools/obj2yaml/elf-gnu-unique-symbols.yaml13
-rw-r--r--llvm/test/tools/obj2yaml/missing_symtab.test2
-rw-r--r--llvm/test/tools/obj2yaml/special-symbol-indices.yaml56
-rw-r--r--llvm/test/tools/obj2yaml/symbol-type.yaml22
-rw-r--r--llvm/test/tools/obj2yaml/verdef-section.yaml4
-rw-r--r--llvm/test/tools/obj2yaml/verneed-section.yaml4
-rw-r--r--llvm/test/tools/obj2yaml/versym-section.yaml15
-rw-r--r--llvm/test/tools/sanstats/elf.test59
-rw-r--r--llvm/test/tools/yaml2obj/dynamic-symbols.yaml24
-rw-r--r--llvm/test/tools/yaml2obj/dynsym-dynstr-addr.yaml4
-rw-r--r--llvm/test/tools/yaml2obj/elf-comdat-broken.yaml4
-rw-r--r--llvm/test/tools/yaml2obj/elf-gnu-unique-symbols.yaml6
-rw-r--r--llvm/test/tools/yaml2obj/elf-symbols-binding-order.yaml18
-rw-r--r--llvm/test/tools/yaml2obj/elf-symtab-shinfo.yaml8
-rw-r--r--llvm/test/tools/yaml2obj/elf-symtab-shtype.yaml4
-rw-r--r--llvm/test/tools/yaml2obj/relocation-explicit-symbol-index.yaml4
-rw-r--r--llvm/test/tools/yaml2obj/symbol-index.yaml45
-rw-r--r--llvm/test/tools/yaml2obj/symbol-type.yaml36
-rw-r--r--llvm/test/tools/yaml2obj/verdef-section.yaml4
-rw-r--r--llvm/test/tools/yaml2obj/verneed-section.yaml4
-rw-r--r--llvm/test/tools/yaml2obj/versym-section.yaml7
-rw-r--r--llvm/tools/obj2yaml/elf2yaml.cpp34
-rw-r--r--llvm/tools/yaml2obj/yaml2elf.cpp84
119 files changed, 1409 insertions, 1342 deletions
diff --git a/llvm/include/llvm/ObjectYAML/ELFYAML.h b/llvm/include/llvm/ObjectYAML/ELFYAML.h
index a63a7657655..5eb53dac542 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<ELF_SHN> Index;
+ ELF_STB Binding;
llvm::yaml::Hex64 Value;
llvm::yaml::Hex64 Size;
uint8_t Other;
};
-struct SymbolsDef {
- std::vector<Symbol> Local;
- std::vector<Symbol> Global;
- std::vector<Symbol> Weak;
- std::vector<Symbol> 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<Symbol> Symbols;
+ std::vector<Symbol> DynamicSymbols;
};
} // end namespace ELFYAML
@@ -362,6 +357,10 @@ template <> struct ScalarEnumerationTraits<ELFYAML::ELF_SHN> {
static void enumeration(IO &IO, ELFYAML::ELF_SHN &Value);
};
+template <> struct ScalarEnumerationTraits<ELFYAML::ELF_STB> {
+ static void enumeration(IO &IO, ELFYAML::ELF_STB &Value);
+};
+
template <>
struct ScalarEnumerationTraits<ELFYAML::ELF_STT> {
static void enumeration(IO &IO, ELFYAML::ELF_STT &Value);
@@ -437,10 +436,6 @@ struct MappingTraits<ELFYAML::Symbol> {
static StringRef validate(IO &IO, ELFYAML::Symbol &Symbol);
};
-template <> struct MappingTraits<ELFYAML::SymbolsDef> {
- static void mapping(IO &IO, ELFYAML::SymbolsDef &Symbols);
-};
-
template <> struct MappingTraits<ELFYAML::DynamicEntry> {
static void mapping(IO &IO, ELFYAML::DynamicEntry &Rel);
};
diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp
index 1d159eccb46..758be51469d 100644
--- a/llvm/lib/ObjectYAML/ELFYAML.cpp
+++ b/llvm/lib/ObjectYAML/ELFYAML.cpp
@@ -560,6 +560,17 @@ void ScalarEnumerationTraits<ELFYAML::ELF_SHN>::enumeration(
IO.enumFallback<Hex32>(Value);
}
+void ScalarEnumerationTraits<ELFYAML::ELF_STB>::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<Hex8>(Value);
+}
+
void ScalarEnumerationTraits<ELFYAML::ELF_STT>::enumeration(
IO &IO, ELFYAML::ELF_STT &Value) {
#define ECase(X) IO.enumCase(Value, #X, ELF::X)
@@ -845,9 +856,9 @@ void MappingTraits<ELFYAML::Symbol>::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<NormalizedOther, uint8_t> 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<ELFYAML::Symbol>::validate(IO &IO,
return StringRef();
}
-void MappingTraits<ELFYAML::SymbolsDef>::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 2252e1a205c..9ac4877c9db 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 c1e318a7472..b8162bd3cd2 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 d2c45e447ff..0e6bc2fcfc4 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 ec2a19d741d..b5e6465a0e6 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 ee66638c9d1..cdfaebe6e70 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 3a7b05e01cd..ceb64a38700 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 dceabc05c8b..ad71f343f02 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 3e565553475..169978ac5b5 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 b9afd768e0b..05572675d1c 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 0cb26fca995..d0e69305081 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 0cf6b7693d6..c854d793d93 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 551512e5de4..fbceca5413e 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 341966d9a5b..d626849af2c 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 b3c8335a36b..be298d1cdc7 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 cf4324b67de..41674494c93 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 f98c8e262a7..b84d5b85bee 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 c044d711a34..62101b32f2a 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 e1f5ce4e725..05d9b44926c 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 82b3d48f0a3..e37656c7d4d 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 7ae9fd95a62..9c75630a42f 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 8d224b95a4d..8027fff4f44 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 0f1cfe7d806..9cc9dba8850 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 2651e68f78f..b124b295b8a 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 8da77b36a37..04855e0d2f6 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 5f2536d1df9..62c5873ba55 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 596a7807ee7..734f43632f8 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 6d7e86c7e99..ada141471fb 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 e043041ba5d..ac1831a23e1 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 9ec49c71165..42d563975d1 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 feb532046f5..3cb0d4eab11 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 fa5832b9dfe..d2da14e60a4 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 cc676b59f59..f27c1617996 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 05e1acf6b1d..8ae941faeea 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 be489a2f0de..ef8a293f0df 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 f9e0613eecf..8bb39f6a615 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 bd7f38ee52d..e1dcc04186f 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 43a6028ca67..a954e08194f 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 dd5ca88144b..e76e6e5d207 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 31fba11adca..f5f74b414bb 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 2e058f5d6a5..ea84f25eb0f 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 dab5eedf695..9787e6b6ab5 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 3655f39512d..86674f1eb2d 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 bc5cba6f921..b227407f414 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 e0b36bad402..52707fc774f 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 2dbfb2c8c86..8b5fc970858 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 67b51872b4c..70a59fe1e4b 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 41662003fe8..f30461b7c1a 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 fb812317c8f..820ce1d5b60 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 1e6a54a8cf8..b359e5ea754 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 8ed8c85e93d..78dd853787d 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 6fa590b5dc5..9baccb06483 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 539e6ea1ce1..ff05778c6f3 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 949d34cd5e8..598da168426 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 6c22eb892bf..2df9e3a039e 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 1a69757b4e8..f01fea893d2 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 9892a126507..8ff1aa4a5e3 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 5455c6bb7bc..15a6f4f7cca 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 d2d0b34d976..da7659294b7 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 d7079f6abcb..c4440bf7eca 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 0699a9f5476..d727ec6be08 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 dcbd57e1f3d..f2b6e56145d 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 b4924059ced..db1e46cf2a3 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 9bcea100bb9..25e93aecccd 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 dfe25984c6c..007acfbe3ac 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 73d3c1cb392..e63aaae4028 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 60d83884715..db1ad31228a 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 43328680adf..26408caf66b 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 e378c2332ac..cc17b3ec526 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 6107d370adc..ab83c656562 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 01de61ab275..09f2476e0b2 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 f6a1d18a0cd..a7ea4c8811e 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 6b1a7c65c1a..b5439a54809 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 ad8b025ab50..696a1057f07 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 1232033a85c..74f2b94075e 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 4cbd85ca3f1..019dcc20208 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 649e54c99bf..a2a7f018618 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 1c542691bfe..3103bd527dd 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 2468eaaf2df..799d2b2ed74 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 b1593e960b3..9811564a16d 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 5b8f3671bc3..37b790d46c4 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 c50a9ddee59..8b8989a182f 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 809a7243edf..fb6c64b8e9a 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 38111bccf38..4e21ae70e4d 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 84acd06d822..8fa73c386a5 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 13e6a96cf3c..86ec658f19a 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 c542b80f209..3d078d3cfb9 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 7adc1ea6e65..6b1a41637b4 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 66bfa8a4b93..f65655afbcc 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 6c45374be5e..dbd8f0e54b6 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 4813d75be82..9ca5142abae 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 7f4a6c920c6..ad04be54262 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 cf09a96b010..8d46b162476 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 7a25f87c193..f2e402004dc 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 21078231f19..ab7dcdeee90 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 fd29f30cc83..42925e1089a 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 b992931a0db..f61712c9b2a 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 127dc25a0df..25550c944f3 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 8231990960d..8183143623f 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 87a283b32d5..29e492c0ad4 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 6ca7cb2d88e..594757d4b64 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 5d69cb4fc94..38836960615 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 67e6e4ae1c1..344384721e1 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 c77f743e369..718b06d55c4 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 c54787cf30e..e256fdc00e0 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 14b4d53eeeb..5ed7a56c9a6 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 9872b5e76c4..06c504e65b3 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 00000000000..1c9fbe30e4e
--- /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 649e5684f63..982c5d4efeb 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 cfa5cf427b7..143c0255b0e 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 ac16643b9b0..1a3470fe098 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 e5c50735f4c..980c70d52cc 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 1bca0e41015..5b3bb73c43b 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 deac6e736c0..582b8019266 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 2fc58ad64f0..bdfddff9810 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 3c08ddd63d2..506e16cc5e1 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 b9cdc123d31..17f23d5afd9 100644
--- a/llvm/tools/obj2yaml/elf2yaml.cpp
+++ b/llvm/tools/obj2yaml/elf2yaml.cpp
@@ -42,7 +42,7 @@ class ELFDumper {
ArrayRef<Elf_Word> ShndxTable;
std::error_code dumpSymbols(const Elf_Shdr *Symtab,
- ELFYAML::SymbolsDef &Symbols);
+ std::vector<ELFYAML::Symbol> &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 <class ELFT> ErrorOr<ELFYAML::Object *> ELFDumper<ELFT>::dump() {
}
template <class ELFT>
-std::error_code ELFDumper<ELFT>::dumpSymbols(const Elf_Shdr *Symtab,
- ELFYAML::SymbolsDef &Symbols) {
+std::error_code
+ELFDumper<ELFT>::dumpSymbols(const Elf_Shdr *Symtab,
+ std::vector<ELFYAML::Symbol> &Symbols) {
if (!Symtab)
return std::error_code();
@@ -240,33 +241,11 @@ std::error_code ELFDumper<ELFT>::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<ELFT>::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<StringRef> SymbolNameOrErr = getSymbolName(Sym, StrTable, SymTab);
if (!SymbolNameOrErr)
diff --git a/llvm/tools/yaml2obj/yaml2elf.cpp b/llvm/tools/yaml2obj/yaml2elf.cpp
index 7a8b0cc5a89..1507504239b 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<ELFYAML::Symbol> Symbols);
void initELFHeader(Elf_Ehdr &Header);
void initProgramHeaders(std::vector<Elf_Phdr> &PHeaders);
bool initSectionHeaders(std::vector<Elf_Shdr> &SHeaders,
@@ -145,8 +145,7 @@ class ELFState {
ContiguousBlobAccumulator &CBA);
void setProgramHeaderLayout(std::vector<Elf_Phdr> &PHeaders,
std::vector<Elf_Shdr> &SHeaders);
- void addSymbols(const std::vector<ELFYAML::Symbol> &Symbols,
- std::vector<Elf_Sym> &Syms, unsigned SymbolBinding,
+ void addSymbols(ArrayRef<ELFYAML::Symbol> Symbols, std::vector<Elf_Sym> &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<const char *, 5> implicitSectionNames() const;
// - SHT_NULL entry (placed first, i.e. 0'th entry)
@@ -323,6 +321,13 @@ bool ELFState<ELFT>::initSectionHeaders(std::vector<Elf_Shdr> &SHeaders,
return true;
}
+static size_t findFirstNonGlobal(ArrayRef<ELFYAML::Symbol> Symbols) {
+ for (size_t I = 0; I < Symbols.size(); ++I)
+ if (Symbols[I].Binding.value != ELF::STB_LOCAL)
+ return I;
+ return Symbols.size();
+}
+
template <class ELFT>
void ELFState<ELFT>::initSymtabSectionHeader(Elf_Shdr &SHeader,
SymtabType STType,
@@ -335,7 +340,7 @@ void ELFState<ELFT>::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<ELFT>::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<ELFT>::setProgramHeaderLayout(std::vector<Elf_Phdr> &PHeaders,
}
template <class ELFT>
-void ELFState<ELFT>::addSymbols(const std::vector<ELFYAML::Symbol> &Symbols,
+void ELFState<ELFT>::addSymbols(ArrayRef<ELFYAML::Symbol> Symbols,
std::vector<Elf_Sym> &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 <class ELFT> bool ELFState<ELFT>::buildSectionIndex() {
}
template <class ELFT>
-bool ELFState<ELFT>::buildSymbolIndex(const ELFYAML::SymbolsDef &Symbols) {
+bool ELFState<ELFT>::buildSymbolIndex(ArrayRef<ELFYAML::Symbol> Symbols) {
+ bool GlobalSymbolSeen = false;
std::size_t I = 0;
- for (const std::vector<ELFYAML::Symbol> &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 <class ELFT> void ELFState<ELFT>::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<ELFT>::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<ELFT>::writeELF(raw_ostream &OS, const ELFYAML::Object &Doc) {
return 0;
}
-template <class ELFT> bool ELFState<ELFT>::hasDynamicSymbols() const {
- return !Doc.DynamicSymbols.Global.empty() ||
- !Doc.DynamicSymbols.Weak.empty() ||
- !Doc.DynamicSymbols.Local.empty() ||
- !Doc.DynamicSymbols.GNUUnique.empty();
-}
-
template <class ELFT>
SmallVector<const char *, 5> ELFState<ELFT>::implicitSectionNames() const {
- if (!hasDynamicSymbols())
+ if (Doc.DynamicSymbols.empty())
return {".symtab", ".strtab", ".shstrtab"};
return {".symtab", ".strtab", ".shstrtab", ".dynsym", ".dynstr"};
}
OpenPOWER on IntegriCloud