78 lines · plain
1// REQUIRES: arm2// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t.o3// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %p/Inputs/relocation-copy-arm.s -o %t2.o4// RUN: ld.lld -shared %t2.o -soname fixed-length-string.so -o %t2.so5// RUN: ld.lld --hash-style=sysv %t.o %t2.so -o %t36// RUN: llvm-readobj -S -r --expand-relocs --symbols %t3 | FileCheck %s7// RUN: llvm-objdump --no-print-imm-hex -d --triple=armv7a-none-linux-gnueabi --no-show-raw-insn %t3 | FileCheck --check-prefix=CODE %s8// RUN: llvm-objdump -s --triple=armv7a-none-linux-gnueabi --section=.rodata %t3 | FileCheck --check-prefix=RODATA %s9 10// Copy relocations R_ARM_COPY are required for y and z11 .syntax unified12 .text13 .globl _start14_start:15 movw r2,:lower16: y16 movt r2,:upper16: y17 ldr r3,[pc,#4]18 ldr r3,[r3,#0]19 .rodata20 .word z21 22// CHECK: Name: .bss23// CHECK-NEXT: Type: SHT_NOBITS24// CHECK-NEXT: Flags [25// CHECK-NEXT: SHF_ALLOC26// CHECK-NEXT: SHF_WRITE27// CHECK-NEXT: ]28// CHECK-NEXT: Address: 0x4022029// CHECK-NEXT: Offset:30// CHECK-NEXT: Size: 831// CHECK-NEXT: Link:32// CHECK-NEXT: Info:33// CHECK-NEXT: AddressAlignment: 1634 35// CHECK: Relocations [36// CHECK-NEXT: Section {{.*}} .rel.dyn {37// CHECK-NEXT: Relocation {38// CHECK-NEXT: Offset: 0x4022039// CHECK-NEXT: Type: R_ARM_COPY40// CHECK-NEXT: Symbol: y41// CHECK-NEXT: }42// CHECK-NEXT: Relocation {43// CHECK-NEXT: Offset: 0x4022444// CHECK-NEXT: Type: R_ARM_COPY45// CHECK-NEXT: Symbol: z46// CHECK-NEXT: }47// CHECK-NEXT: }48 49// CHECK: Symbols [50// CHECK: Name: y51// CHECK-NEXT: Value: 0x4022052// CHECK-NEXT: Size: 453// CHECK-NEXT: Binding: Global54// CHECK-NEXT: Type: Object55// CHECK-NEXT: Other:56// CHECK-NEXT: Section: .bss57// CHECK: Name: z58// CHECK-NEXT: Value: 0x4022459// CHECK-NEXT: Size: 460// CHECK-NEXT: Binding: Global61// CHECK-NEXT: Type: Object62// CHECK-NEXT: Other: 063// CHECK-NEXT: Section: .bss64 65// CODE: Disassembly of section .text:66// CODE-EMPTY:67// CODE-NEXT: <_start>:68/// S + A = 0x40220 + 0 = 65536 * 1 + 54469// CODE-NEXT: 201b4: movw r2, #54470// CODE-NEXT: 201b8: movt r2, #471// CODE-NEXT: 201bc: ldr r3, [pc, #4]72// CODE-NEXT: 201c0: ldr r3, [r3]73 74 75// RODATA: Contents of section .rodata:76/// S(z) = 0x4000477// RODATA-NEXT: 101b0 2402040078