218 lines · plain
1# REQUIRES: x862# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t3# RUN: ld.lld -r %t -o %tout4# RUN: llvm-objdump -d %tout | FileCheck --check-prefix=DISASM %s5# RUN: llvm-readobj -r %t | FileCheck -check-prefix=RELOC %s6# RUN: llvm-readobj --symbols -r %tout | FileCheck -check-prefix=SYMBOL %s7 8# DISASM: <_start>:9# DISASM-NEXT: 0: {{.*}} callq 010# DISASM-NEXT: 5: {{.*}} callq 011# DISASM-NEXT: a: {{.*}} callq 012# DISASM-NEXT: f: {{.*}} callq 013# DISASM-NEXT: 14: {{.*}} callq 014# DISASM-NEXT: 19: {{.*}} callq 015# DISASM-NEXT: 1e: {{.*}} callq 016# DISASM-NEXT: 23: {{.*}} callq 017# DISASM-NEXT: 28: {{.*}} callq 018# DISASM-NEXT: 2d: {{.*}} callq 019# DISASM-NEXT: 32: {{.*}} callq 020# DISASM-NEXT: 37: {{.*}} callq 021# DISASM-EMPTY:22# DISASM-NEXT: Disassembly of section foo:23# DISASM-EMPTY:24# DISASM-NEXT: <foo>:25# DISASM-NEXT: 0: 90 nop26# DISASM-NEXT: 1: 90 nop27# DISASM-NEXT: 2: 90 nop28# DISASM-EMPTY:29# DISASM-NEXT: Disassembly of section bar:30# DISASM-EMPTY:31# DISASM-NEXT: <bar>:32# DISASM-NEXT: 0: 90 nop33# DISASM-NEXT: 1: 90 nop34# DISASM-NEXT: 2: 90 nop35 36# RELOC: Relocations [37# RELOC-NEXT: Section ({{.*}}) .rela.text {38# RELOC-NEXT: 0x1 R_X86_64_PC32 __start_foo 0xFFFFFFFFFFFFFFFC39# RELOC-NEXT: 0x6 R_X86_64_PC32 __stop_foo 0xFFFFFFFFFFFFFFFC40# RELOC-NEXT: 0xB R_X86_64_PC32 __start_bar 0xFFFFFFFFFFFFFFFC41# RELOC-NEXT: 0x10 R_X86_64_PC32 __stop_bar 0xFFFFFFFFFFFFFFFC42# RELOC-NEXT: 0x15 R_X86_64_PC32 __start_doo 0xFFFFFFFFFFFFFFFC43# RELOC-NEXT: 0x1A R_X86_64_PC32 __stop_doo 0xFFFFFFFFFFFFFFFC44# RELOC-NEXT: 0x1F R_X86_64_PC32 __preinit_array_start 0xFFFFFFFFFFFFFFFC45# RELOC-NEXT: 0x24 R_X86_64_PC32 __preinit_array_end 0xFFFFFFFFFFFFFFFC46# RELOC-NEXT: 0x29 R_X86_64_PC32 __init_array_start 0xFFFFFFFFFFFFFFFC47# RELOC-NEXT: 0x2E R_X86_64_PC32 __init_array_end 0xFFFFFFFFFFFFFFFC48# RELOC-NEXT: 0x33 R_X86_64_PC32 __fini_array_start 0xFFFFFFFFFFFFFFFC49# RELOC-NEXT: 0x38 R_X86_64_PC32 __fini_array_end 0xFFFFFFFFFFFFFFFC50# RELOC-NEXT: }51# RELOC-NEXT: ]52 53# SYMBOL: Relocations [54# SYMBOL-NEXT: Section ({{.*}}) .rela.text {55# SYMBOL-NEXT: 0x1 R_X86_64_PC32 __start_foo 0xFFFFFFFFFFFFFFFC56# SYMBOL-NEXT: 0x6 R_X86_64_PC32 __stop_foo 0xFFFFFFFFFFFFFFFC57# SYMBOL-NEXT: 0xB R_X86_64_PC32 __start_bar 0xFFFFFFFFFFFFFFFC58# SYMBOL-NEXT: 0x10 R_X86_64_PC32 __stop_bar 0xFFFFFFFFFFFFFFFC59# SYMBOL-NEXT: 0x15 R_X86_64_PC32 __start_doo 0xFFFFFFFFFFFFFFFC60# SYMBOL-NEXT: 0x1A R_X86_64_PC32 __stop_doo 0xFFFFFFFFFFFFFFFC61# SYMBOL-NEXT: 0x1F R_X86_64_PC32 __preinit_array_start 0xFFFFFFFFFFFFFFFC62# SYMBOL-NEXT: 0x24 R_X86_64_PC32 __preinit_array_end 0xFFFFFFFFFFFFFFFC63# SYMBOL-NEXT: 0x29 R_X86_64_PC32 __init_array_start 0xFFFFFFFFFFFFFFFC64# SYMBOL-NEXT: 0x2E R_X86_64_PC32 __init_array_end 0xFFFFFFFFFFFFFFFC65# SYMBOL-NEXT: 0x33 R_X86_64_PC32 __fini_array_start 0xFFFFFFFFFFFFFFFC66# SYMBOL-NEXT: 0x38 R_X86_64_PC32 __fini_array_end 0xFFFFFFFFFFFFFFFC67# SYMBOL-NEXT: }68# SYMBOL-NEXT: ]69 70# SYMBOL: Name: __start_foo71# SYMBOL-NEXT: Value: 0x072# SYMBOL-NEXT: Size: 073# SYMBOL-NEXT: Binding: Global74# SYMBOL-NEXT: Type: None75# SYMBOL-NEXT: Other: 076# SYMBOL-NEXT: Section: Undefined77# SYMBOL-NEXT: }78# SYMBOL-NEXT: Symbol {79# SYMBOL-NEXT: Name: __stop_foo80# SYMBOL-NEXT: Value: 0x081# SYMBOL-NEXT: Size: 082# SYMBOL-NEXT: Binding: Global83# SYMBOL-NEXT: Type: None84# SYMBOL-NEXT: Other: 085# SYMBOL-NEXT: Section: Undefined86# SYMBOL-NEXT: }87# SYMBOL-NEXT: Symbol {88# SYMBOL-NEXT: Name: __start_bar89# SYMBOL-NEXT: Value: 0x090# SYMBOL-NEXT: Size: 091# SYMBOL-NEXT: Binding: Global92# SYMBOL-NEXT: Type: None93# SYMBOL-NEXT: Other: 094# SYMBOL-NEXT: Section: Undefined95# SYMBOL-NEXT: }96# SYMBOL-NEXT: Symbol {97# SYMBOL-NEXT: Name: __stop_bar98# SYMBOL-NEXT: Value: 0x099# SYMBOL-NEXT: Size: 0100# SYMBOL-NEXT: Binding: Global101# SYMBOL-NEXT: Type: None102# SYMBOL-NEXT: Other: 0103# SYMBOL-NEXT: Section: Undefined104# SYMBOL-NEXT: }105# SYMBOL-NEXT: Symbol {106# SYMBOL-NEXT: Name: __start_doo107# SYMBOL-NEXT: Value: 0x0108# SYMBOL-NEXT: Size: 0109# SYMBOL-NEXT: Binding: Global110# SYMBOL-NEXT: Type: None111# SYMBOL-NEXT: Other: 0112# SYMBOL-NEXT: Section: Undefined113# SYMBOL-NEXT: }114# SYMBOL-NEXT: Symbol {115# SYMBOL-NEXT: Name: __stop_doo116# SYMBOL-NEXT: Value: 0x0117# SYMBOL-NEXT: Size: 0118# SYMBOL-NEXT: Binding: Global119# SYMBOL-NEXT: Type: None120# SYMBOL-NEXT: Other: 0121# SYMBOL-NEXT: Section: Undefined122# SYMBOL-NEXT: }123# SYMBOL-NEXT: Symbol {124# SYMBOL-NEXT: Name: __preinit_array_start125# SYMBOL-NEXT: Value: 0x0126# SYMBOL-NEXT: Size: 0127# SYMBOL-NEXT: Binding: Global128# SYMBOL-NEXT: Type: None129# SYMBOL-NEXT: Other: 0130# SYMBOL-NEXT: Section: Undefined131# SYMBOL-NEXT: }132# SYMBOL-NEXT: Symbol {133# SYMBOL-NEXT: Name: __preinit_array_end134# SYMBOL-NEXT: Value: 0x0135# SYMBOL-NEXT: Size: 0136# SYMBOL-NEXT: Binding: Global137# SYMBOL-NEXT: Type: None138# SYMBOL-NEXT: Other: 0139# SYMBOL-NEXT: Section: Undefined140# SYMBOL-NEXT: }141# SYMBOL-NEXT: Symbol {142# SYMBOL-NEXT: Name: __init_array_start143# SYMBOL-NEXT: Value: 0x0144# SYMBOL-NEXT: Size: 0145# SYMBOL-NEXT: Binding: Global146# SYMBOL-NEXT: Type: None147# SYMBOL-NEXT: Other: 0148# SYMBOL-NEXT: Section: Undefined149# SYMBOL-NEXT: }150# SYMBOL-NEXT: Symbol {151# SYMBOL-NEXT: Name: __init_array_end152# SYMBOL-NEXT: Value: 0x0153# SYMBOL-NEXT: Size: 0154# SYMBOL-NEXT: Binding: Global155# SYMBOL-NEXT: Type: None156# SYMBOL-NEXT: Other: 0157# SYMBOL-NEXT: Section: Undefined158# SYMBOL-NEXT: }159# SYMBOL: Symbol {160# SYMBOL-NEXT: Name: __fini_array_start161# SYMBOL-NEXT: Value: 0x0162# SYMBOL-NEXT: Size: 0163# SYMBOL-NEXT: Binding: Global164# SYMBOL-NEXT: Type: None165# SYMBOL-NEXT: Other: 0166# SYMBOL-NEXT: Section: Undefined167# SYMBOL-NEXT: }168# SYMBOL-NEXT: Symbol {169# SYMBOL-NEXT: Name: __fini_array_end170# SYMBOL-NEXT: Value: 0x0171# SYMBOL-NEXT: Size: 0172# SYMBOL-NEXT: Binding: Global173# SYMBOL-NEXT: Type: None174# SYMBOL-NEXT: Other: 0175# SYMBOL-NEXT: Section: Undefined176# SYMBOL-NEXT: }177 178.global _start179.text180_start:181 .byte 0xe8182 .long __start_foo - . -4183 .byte 0xe8184 .long __stop_foo - . -4185 186 .byte 0xe8187 .long __start_bar - . -4188 .byte 0xe8189 .long __stop_bar - . -4190 191 .byte 0xe8192 .long __start_doo - . -4193 .byte 0xe8194 .long __stop_doo - . -4195 196 .byte 0xe8197 .long __preinit_array_start - . -4198 .byte 0xe8199 .long __preinit_array_end - . -4200 .byte 0xe8201 .long __init_array_start - . -4202 .byte 0xe8203 .long __init_array_end - . -4204 .byte 0xe8205 .long __fini_array_start - . -4206 .byte 0xe8207 .long __fini_array_end - . -4208 209.section foo,"ax"210 nop211 nop212 nop213 214.section bar,"ax"215 nop216 nop217 nop218