bc1c6a0b44
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
44 lines
1013 B
Plaintext
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
|