[yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping.

Currently, YAML has the following syntax for describing the symbols:

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

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

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

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

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

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

The patch changes the syntax to just:

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

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

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357595 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
George Rimar 2019-04-03 14:53:42 +00:00
parent f576f8bf7d
commit 26db7fb2ec
119 changed files with 1409 additions and 1342 deletions

View File

@ -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);
};

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
...

View File

@ -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
...

View File

@ -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
...

View File

@ -28,5 +28,5 @@ Sections:
Symbol: main
Type: 0xFF
Symbols:
Global:
- Name: main
- Name: main
Binding: STB_GLOBAL

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
...

View File

@ -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
...

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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 {

View File

@ -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

View File

@ -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
...

View File

@ -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
...

View File

@ -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
...

View File

@ -20,7 +20,6 @@ Sections:
AddressAlign: 0x0000000000000001
Content: ''
Symbols:
Local:
- Name: '-'
Type: STT_FILE
- Name: '-'
Type: STT_FILE
...

View File

@ -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
...

View File

@ -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 {

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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 {

View File

@ -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-

View File

@ -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 {

View File

@ -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 {

View File

@ -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.

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -33,6 +33,5 @@ Sections:
Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ]
AddressAlign: 0x0000000000000001
Symbols:
Local:
- Name: foo
Section: .group
- Name: foo
Section: .group

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -51,7 +51,6 @@ Sections:
SHF_OS_NONCONFORMING, SHF_STRINGS, SHF_TLS, SHF_WRITE ]
Content: "a4a4a4a4"
Symbols:
Local:
- Name: dummy
Section: .group

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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].

View File

@ -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 {

View File

@ -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.

View File

@ -43,9 +43,7 @@ Sections:
AddressAlign: 0x0000000000000001
Content: '0102'
Symbols:
Local:
- Name: foo
Section: .data
Value: 0x0000000000000001
DynamicSymbols: {}
- Name: foo
Section: .data
Value: 0x0000000000000001
...

View File

@ -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

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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

View File

@ -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 {

View File

@ -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 {

View File

@ -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
...

View File

@ -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

View File

@ -51,5 +51,5 @@ Sections:
Symbol: x
Type: R_X86_64_64
Symbols:
Global:
- Name: x
- Name: x
Binding: STB_GLOBAL

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -36,6 +36,6 @@ Sections:
- VERSION_1
- VERSION_2
DynamicSymbols:
Global:
- Name: bar
- Name: bar
Binding: STB_GLOBAL
...

View File

@ -43,5 +43,5 @@ Sections:
Flags: 12
Other: 2
DynamicSymbols:
Global:
- Name: f1
- Name: f1
Binding: STB_GLOBAL

View File

@ -46,5 +46,5 @@ Sections:
Flags: 12
Other: 2
DynamicSymbols:
Global:
- Name: f1
- Name: f1
Binding: STB_GLOBAL

View File

@ -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 ]

View File

@ -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

View File

@ -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 ]

View File

@ -28,6 +28,6 @@ Sections:
- Name: .text
Type: SHT_PROGBITS
Symbols:
Global:
- Name: foobar
Section: .text
- Name: foobar
Section: .text
Binding: STB_GLOBAL

View File

@ -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
...

View File

@ -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

View File

@ -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
...

View File

@ -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

View File

@ -218,5 +218,5 @@ Sections:
- Name: hiuser
Type: 0xffffffff
Symbols:
Global:
- Name: foo
- Name: foo
Binding: STB_GLOBAL

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
...

View File

@ -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

View File

@ -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:

View File

@ -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.

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More