llvm-project/llvm/test/tools/llvm-nm/readonly.test
Fangrui Song bc1c6a0b44 [llvm-nm] Fix handling of symbol types 't' 'd' 'r'
This restores part of r359311 that was reverted by r359830.

Rewrite the symbol types to fix several issues.

Notable difference is that the type of __init_array_start changes from
't' to 'd'.

GNU nm used to mark ELF symbols relative to .init_array as 't'
https://sourceware.org/bugzilla/show_bug.cgi?id=24505 (before 2.33)
because ".init" is the prefix. The bug was copied by r287803.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D61551

llvm-svn: 360339
2019-05-09 12:43:37 +00:00

44 lines
1013 B
Plaintext

# RUN: yaml2obj %s -o %t
# RUN: llvm-nm --no-sort %t | FileCheck %s
# CHECK: r myrodata0_local
# CHECK-NEXT: r myrodata1_local
# CHECK-NEXT: r myrodata2_local
# CHECK-NEXT: R myrodata0_global
# CHECK-NEXT: R myrodata1_global
# CHECK-NEXT: R myrodata2_global
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: myrodata0
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC ]
- Name: myrodata1
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_MERGE ]
- Name: myrodata2
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_MERGE, SHF_STRINGS ]
Symbols:
- Name: myrodata0_local
Section: myrodata0
- Name: myrodata1_local
Section: myrodata1
- Name: myrodata2_local
Section: myrodata2
- Name: myrodata0_global
Binding: STB_GLOBAL
Section: myrodata0
- Name: myrodata1_global
Binding: STB_GLOBAL
Section: myrodata1
- Name: myrodata2_global
Binding: STB_GLOBAL
Section: myrodata2