mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
60c8d3580e
Currently, YAML has the following syntax for describing the symbols: Symbols: Local: LocalSymbol1: ... LocalSymbol2: ... ... Global: GlobalSymbol1: ... Weak: ... GNUUnique: I.e. symbols are grouped by their bindings. That is not very convenient, because: It does not allow to set a custom binding, what can be useful for producing broken/special outputs for test cases. Adding a new binding would require to change a syntax (what we observed when added GNUUnique recently). It does not allow to change the order of the symbols in .symtab/.dynsym, i.e. currently all Local symbols are placed first, then Global, Weak and GNUUnique are following, but we are not able to change the order. It is not consistent. Binding is just one of the properties of the symbol, we do not group them by other properties. It makes the code more complex that it can be. This patch shows it can be simplified with the change performed. The patch changes the syntax to just: Symbols: Symbol1: ... Symbol2: ... ... With that, we are able to work with the binding field just like with any other symbol property. Differential revision: https://reviews.llvm.org/D60122 llvm-svn: 357595
75 lines
2.2 KiB
Plaintext
75 lines
2.2 KiB
Plaintext
# Show that llvm-readelf properly prints the addend for relocations that do not
|
|
# have an associated symbol but have a negative addend.
|
|
|
|
# RUN: yaml2obj %s -o %t
|
|
# RUN: llvm-readelf --relocations %t | FileCheck %s --check-prefix=REL
|
|
# RUN: llvm-readelf --dyn-relocations %t | FileCheck %s --check-prefix=DYN
|
|
|
|
# REL: Relocation section '.rela.text' at offset {{.*}} contains 1 entries:
|
|
# REL-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend
|
|
# REL-NEXT: 0000000000000000 0000000000000000 R_X86_64_NONE ffffffffffffffff
|
|
# REL-EMPTY:
|
|
# REL-NEXT: Relocation section '.rela.dyn' at offset {{.*}} contains 1 entries:
|
|
# REL-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend
|
|
# REL-NEXT: 0000000000000008 0000000000000000 R_X86_64_NONE ffffffffffffffff
|
|
|
|
# DYN: 'RELA' relocation section at offset {{.*}} contains 24 bytes:
|
|
# DYN-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend
|
|
# DYN-NEXT: 0000000000000008 0000000000000000 R_X86_64_NONE ffffffffffffffff
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_EXEC
|
|
Machine: EM_X86_64
|
|
Sections:
|
|
- Name: .text
|
|
Type: SHT_PROGBITS
|
|
Size: 0x10
|
|
- Name: .rela.text
|
|
Type: SHT_RELA
|
|
Link: .symtab
|
|
Info: .text
|
|
Relocations:
|
|
- Offset: 0
|
|
Type: R_X86_64_NONE
|
|
Addend: -1
|
|
- Name: .dynamic
|
|
Type: SHT_DYNAMIC
|
|
Flags: [SHF_ALLOC]
|
|
Address: 0x1000
|
|
AddressAlign: 0x1000
|
|
Entries:
|
|
- Tag: DT_RELA
|
|
Value: 0x1100
|
|
- Tag: DT_RELASZ
|
|
Value: 24
|
|
- Tag: DT_RELAENT
|
|
Value: 24
|
|
- Tag: DT_NULL
|
|
Value: 0
|
|
- Name: .rela.dyn
|
|
Type: SHT_RELA
|
|
Flags: [SHF_ALLOC]
|
|
Info: .text
|
|
Address: 0x1100
|
|
AddressAlign: 0x100
|
|
Relocations:
|
|
- Offset: 8
|
|
Type: R_X86_64_NONE
|
|
Addend: -1
|
|
DynamicSymbols:
|
|
- Name: force_dynsym
|
|
Binding: STB_GLOBAL
|
|
ProgramHeaders:
|
|
- Type: PT_LOAD
|
|
VAddr: 0x1000
|
|
Sections:
|
|
- Section: .rela.dyn
|
|
- Section: .dynamic
|
|
- Type: PT_DYNAMIC
|
|
VAddr: 0x1000
|
|
Sections:
|
|
- Section: .dynamic
|