Add file-level comments
Replace trivial Input/*.s with echo ... | llvm-mc
Delete insignificant addresses to make them more tolerant to layout changes
Simplify test output
Merge merge-section-types.s into compatible-section-types.s and add a missed case
Merge gnu-ifunc-gotpcrel.s (added in D19517) into gnu-ifunc-dso.s (added in D35119) and add missed cases
Delete typed-undef.s - covered by executable-undefined-ignoreall.s
Delete emit-relocs-shared.s - covered by emit-relocs-merge.s
Replace copy-rel-pie.s and copy-rel-pie2.s with canonical-plt-pcrel.s, canonical-plt-symbolic.s and copy-rel.s:
add -no-pie cases.
add a case that a canonical PLT can be created for STT_GNU_IFUNC. The logic in Symbols.h was untested:
// ctor of SharedSymbol
if (this->type == llvm::ELF::STT_GNU_IFUNC)
this->type = llvm::ELF::STT_FUNC;
llvm-svn: 371361
81 lines
1.8 KiB
ArmAsm
81 lines
1.8 KiB
ArmAsm
# REQUIRES: x86
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
|
# RUN: ld.lld -pie %t -o %t.out
|
|
# RUN: llvm-readobj --symbols --dyn-syms %t.out | FileCheck %s
|
|
|
|
# CHECK: Symbols [
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: hidden
|
|
# CHECK-NEXT: Value: [[ADDR:.*]]
|
|
# CHECK-NEXT: Size: 0
|
|
# CHECK-NEXT: Binding: Local
|
|
# CHECK-NEXT: Type: None
|
|
# CHECK-NEXT: Other [
|
|
# CHECK-NEXT: STV_HIDDEN
|
|
# CHECK-NEXT: ]
|
|
# CHECK-NEXT: Section: .text
|
|
# CHECK-NEXT: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: internal
|
|
# CHECK-NEXT: Value: [[ADDR]]
|
|
# CHECK-NEXT: Size: 0
|
|
# CHECK-NEXT: Binding: Local
|
|
# CHECK-NEXT: Type: None
|
|
# CHECK-NEXT: Other [
|
|
# CHECK-NEXT: STV_INTERNAL
|
|
# CHECK-NEXT: ]
|
|
# CHECK-NEXT: Section: .text
|
|
# CHECK-NEXT: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: default
|
|
# CHECK-NEXT: Value: [[ADDR]]
|
|
# CHECK-NEXT: Size: 0
|
|
# CHECK-NEXT: Binding: Global
|
|
# CHECK-NEXT: Type: None
|
|
# CHECK-NEXT: Other: 0
|
|
# CHECK-NEXT: Section: .text
|
|
# CHECK-NEXT: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: protected
|
|
# CHECK-NEXT: Value: [[ADDR]]
|
|
# CHECK-NEXT: Size: 0
|
|
# CHECK-NEXT: Binding: Global
|
|
# CHECK-NEXT: Type: None
|
|
# CHECK-NEXT: Other [
|
|
# CHECK-NEXT: STV_PROTECTED
|
|
# CHECK-NEXT: ]
|
|
# CHECK-NEXT: Section: .text
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: ]
|
|
|
|
# CHECK: DynamicSymbols [
|
|
# CHECK-NEXT: Symbol {
|
|
# CHECK-NEXT: Name:
|
|
# CHECK-NEXT: Value: 0x0
|
|
# CHECK-NEXT: Size: 0
|
|
# CHECK-NEXT: Binding: Local
|
|
# CHECK-NEXT: Type: None
|
|
# CHECK-NEXT: Other: 0
|
|
# CHECK-NEXT: Section: Undefined
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: ]
|
|
|
|
.text
|
|
.globl _start
|
|
_start:
|
|
|
|
.global default
|
|
default:
|
|
|
|
.global protected
|
|
.protected protected
|
|
protected:
|
|
|
|
.global hidden
|
|
.hidden hidden
|
|
hidden:
|
|
|
|
.global internal
|
|
.internal internal
|
|
internal:
|