From 4235ba32f2610ee2ed1e0c4bfca5c67835e9f97d Mon Sep 17 00:00:00 2001 From: Sean Silva Date: Fri, 21 Jun 2013 00:27:50 +0000 Subject: [yaml2obj][ELF] Don't explicitly set `Binding` with STB_* Instead, just have 3 sub-lists, one for each of {STB_LOCAL,STB_GLOBAL,STB_WEAK}. This allows us to be a lot more explicit w.r.t. the symbol ordering in the object file, because if we allowed explicitly setting the STB_* `Binding` key for the symbol, then we might have ended up having to shuffle STB_LOCAL symbols to the front of the list, which is likely to cause confusion and potential for error. Also, this new approach is simpler ;) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184506 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../yaml2obj-elf-symbol-LocalGlobalWeak.yaml | 39 ++++++++++++++++++++++ test/Object/yaml2obj-elf-symbol-basic.yaml | 12 +++---- 2 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml (limited to 'test') diff --git a/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml b/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml new file mode 100644 index 0000000000..44479dce7d --- /dev/null +++ b/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml @@ -0,0 +1,39 @@ +# RUN: yaml2obj -format=elf %s | llvm-readobj -symbols - | FileCheck %s +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .data + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_WRITE ] + Content: "DEADBEEF" + - Name: .symtab + Type: SHT_SYMTAB + 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 + +# CHECK: Symbol { +# CHECK: Name: (0) +# CHECK: Symbol { +# CHECK: Name: local_symbol +# CHECK: Binding: Local +# CHECK: Symbol { +# CHECK: Name: global_symbol +# CHECK: Binding: Global +# CHECK: Symbol { +# CHECK: Name: weak_symbol +# CHECK: Binding: Weak diff --git a/test/Object/yaml2obj-elf-symbol-basic.yaml b/test/Object/yaml2obj-elf-symbol-basic.yaml index 12acb7e11e..238348b9b0 100644 --- a/test/Object/yaml2obj-elf-symbol-basic.yaml +++ b/test/Object/yaml2obj-elf-symbol-basic.yaml @@ -20,12 +20,12 @@ Sections: - Name: .symtab Type: SHT_SYMTAB Symbols: - - Name: main - Binding: STB_GLOBAL - Type: STT_FUNC - Section: .text - Value: 0x1 - Size: 2 + Global: + - Name: main + Type: STT_FUNC + Section: .text + Value: 0x1 + Size: 2 # CHECK: Symbols [ # CHECK-NEXT: Symbol { -- cgit v1.2.3