xref: /llvm-project/lld/test/ELF/dynsym-pie.s (revision 88796a798856abecbebf9de666562bf6df41a303)
1786e866fSGeorge Rimar# REQUIRES: x86
2786e866fSGeorge Rimar# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
3786e866fSGeorge Rimar# RUN: ld.lld -pie %t -o %t.out
4b159906aSFangrui Song# RUN: llvm-readobj --symbols --dyn-syms %t.out | FileCheck %s
5786e866fSGeorge Rimar
655f207fbSGeorge Rimar# CHECK:       Symbols [
755f207fbSGeorge Rimar# CHECK:        Symbol {
855f207fbSGeorge Rimar# CHECK:          Name: hidden
9*88796a79SFangrui Song# CHECK-NEXT:     Value: [[ADDR:.*]]
1055f207fbSGeorge Rimar# CHECK-NEXT:     Size: 0
1155f207fbSGeorge Rimar# CHECK-NEXT:     Binding: Local
1255f207fbSGeorge Rimar# CHECK-NEXT:     Type: None
1355f207fbSGeorge Rimar# CHECK-NEXT:     Other [
1455f207fbSGeorge Rimar# CHECK-NEXT:       STV_HIDDEN
1555f207fbSGeorge Rimar# CHECK-NEXT:     ]
1655f207fbSGeorge Rimar# CHECK-NEXT:     Section: .text
1755f207fbSGeorge Rimar# CHECK-NEXT:   }
1855f207fbSGeorge Rimar# CHECK:        Symbol {
1955f207fbSGeorge Rimar# CHECK:          Name: internal
20*88796a79SFangrui Song# CHECK-NEXT:     Value: [[ADDR]]
2155f207fbSGeorge Rimar# CHECK-NEXT:     Size: 0
2255f207fbSGeorge Rimar# CHECK-NEXT:     Binding: Local
2355f207fbSGeorge Rimar# CHECK-NEXT:     Type: None
2455f207fbSGeorge Rimar# CHECK-NEXT:     Other [
2555f207fbSGeorge Rimar# CHECK-NEXT:       STV_INTERNAL
2655f207fbSGeorge Rimar# CHECK-NEXT:     ]
2755f207fbSGeorge Rimar# CHECK-NEXT:     Section: .text
2855f207fbSGeorge Rimar# CHECK-NEXT:   }
2955f207fbSGeorge Rimar# CHECK:        Symbol {
3055f207fbSGeorge Rimar# CHECK:          Name: default
31*88796a79SFangrui Song# CHECK-NEXT:     Value: [[ADDR]]
3255f207fbSGeorge Rimar# CHECK-NEXT:     Size: 0
3355f207fbSGeorge Rimar# CHECK-NEXT:     Binding: Global
3455f207fbSGeorge Rimar# CHECK-NEXT:     Type: None
3555f207fbSGeorge Rimar# CHECK-NEXT:     Other: 0
3655f207fbSGeorge Rimar# CHECK-NEXT:     Section: .text
3755f207fbSGeorge Rimar# CHECK-NEXT:   }
3855f207fbSGeorge Rimar# CHECK:        Symbol {
3955f207fbSGeorge Rimar# CHECK:          Name: protected
40*88796a79SFangrui Song# CHECK-NEXT:     Value: [[ADDR]]
4155f207fbSGeorge Rimar# CHECK-NEXT:     Size: 0
4255f207fbSGeorge Rimar# CHECK-NEXT:     Binding: Global
4355f207fbSGeorge Rimar# CHECK-NEXT:     Type: None
4455f207fbSGeorge Rimar# CHECK-NEXT:     Other [
4555f207fbSGeorge Rimar# CHECK-NEXT:       STV_PROTECTED
4655f207fbSGeorge Rimar# CHECK-NEXT:     ]
4755f207fbSGeorge Rimar# CHECK-NEXT:     Section: .text
4855f207fbSGeorge Rimar# CHECK-NEXT:   }
4955f207fbSGeorge Rimar# CHECK-NEXT: ]
5055f207fbSGeorge Rimar
51786e866fSGeorge Rimar# CHECK:      DynamicSymbols [
52786e866fSGeorge Rimar# CHECK-NEXT:  Symbol {
534ba1777aSJames Henderson# CHECK-NEXT:    Name:
54786e866fSGeorge Rimar# CHECK-NEXT:    Value: 0x0
55786e866fSGeorge Rimar# CHECK-NEXT:    Size: 0
56786e866fSGeorge Rimar# CHECK-NEXT:    Binding: Local
57786e866fSGeorge Rimar# CHECK-NEXT:    Type: None
58786e866fSGeorge Rimar# CHECK-NEXT:    Other: 0
59786e866fSGeorge Rimar# CHECK-NEXT:    Section: Undefined
60786e866fSGeorge Rimar# CHECK-NEXT:  }
61786e866fSGeorge Rimar# CHECK-NEXT: ]
62786e866fSGeorge Rimar
63786e866fSGeorge Rimar.text
64786e866fSGeorge Rimar.globl _start
65786e866fSGeorge Rimar_start:
66786e866fSGeorge Rimar
67786e866fSGeorge Rimar.global default
68786e866fSGeorge Rimardefault:
69786e866fSGeorge Rimar
70786e866fSGeorge Rimar.global protected
7155f207fbSGeorge Rimar.protected protected
72786e866fSGeorge Rimarprotected:
73786e866fSGeorge Rimar
74786e866fSGeorge Rimar.global hidden
7555f207fbSGeorge Rimar.hidden hidden
76786e866fSGeorge Rimarhidden:
77786e866fSGeorge Rimar
78786e866fSGeorge Rimar.global internal
7955f207fbSGeorge Rimar.internal internal
80786e866fSGeorge Rimarinternal:
81