1// REQUIRES: x86 2// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t 3// RUN: ld.lld %t -o %tout -shared 4// RUN: llvm-objdump -d %tout | FileCheck -check-prefix=DISASM %s 5// RUN: llvm-readobj -symbols -r %tout | FileCheck -check-prefix=SYMBOL %s 6 7// DISASM: _start: 8// DISASM: 1000: {{.*}} callq 10 9// DISASM: 1005: {{.*}} callq 8 10// DISASM: 100a: {{.*}} callq 3 11// DISASM: Disassembly of section foo: 12// DISASM: __start_foo: 13// DISASM: 100f: 90 nop 14// DISASM: 1010: 90 nop 15// DISASM: 1011: 90 nop 16// DISASM: Disassembly of section bar: 17// DISASM: __start_bar: 18// DISASM: 1012: 90 nop 19// DISASM: 1013: 90 nop 20// DISASM: 1014: 90 nop 21 22 23// SYMBOL: Relocations [ 24// SYMBOL-NEXT: Section ({{.*}}) .rela.dyn { 25// SYMBOL-NEXT: 0x2010 R_X86_64_64 __stop_zed1 0x0 26// SYMBOL-NEXT: 0x2018 R_X86_64_64 __stop_zed1 0x1 27// SYMBOL-NEXT: 0x2000 R_X86_64_64 __stop_zed2 0x0 28// SYMBOL-NEXT: 0x2008 R_X86_64_64 __stop_zed2 0x1 29// SYMBOL-NEXT: } 30// SYMBOL-NEXT: ] 31 32// SYMBOL: Symbol { 33// SYMBOL: Name: __start_bar 34// SYMBOL: Value: 0x1012 35// SYMBOL: STV_HIDDEN 36// SYMBOL: Section: bar 37// SYMBOL: } 38// SYMBOL-NOT: Section: __stop_bar 39// SYMBOL: Symbol { 40// SYMBOL: Name: __start_foo 41// SYMBOL: Value: 0x100F 42// SYMBOL: STV_HIDDEN 43// SYMBOL: Section: foo 44// SYMBOL: } 45// SYMBOL: Symbol { 46// SYMBOL: Name: __stop_foo 47// SYMBOL: Value: 0x1012 48// STMBOL: STV_HIDDEN 49// SYMBOL: Section: foo 50// SYMBOL: } 51 52// SYMBOL: Symbol { 53// SYMBOL: Name: __stop_zed1 54// SYMBOL: Value: 0x2010 55// STMBOL: Other: 0 56// SYMBOL: Section: zed1 57// SYMBOL: } 58// SYMBOL: Symbol { 59// SYMBOL: Name: __stop_zed2 60// SYMBOL: Value: 0x2020 61// STMBOL: Other: 0 62// SYMBOL: Section: zed2 63// SYMBOL: } 64 65.hidden __start_foo 66.hidden __stop_foo 67.hidden __start_bar 68.global _start 69.text 70_start: 71 call __start_foo 72 call __stop_foo 73 call __start_bar 74 75.section foo,"ax" 76 nop 77 nop 78 nop 79 80.section bar,"ax" 81 nop 82 nop 83 nop 84 85.section zed1, "aw" 86 .quad __stop_zed2 87 .quad __stop_zed2 + 1 88 89.section zed2, "aw" 90 .quad __stop_zed1 91 .quad __stop_zed1 + 1 92