61 lines · plain
1// REQUIRES: x862// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o3// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/relocation-size-shared.s -o %tso.o4// RUN: ld.lld -shared %tso.o -soname=so -o %t1.so5// RUN: ld.lld %t.o %t1.so -o %t6// RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOCSHARED %s7// RUN: llvm-readelf -x .data %t | FileCheck --check-prefix=DATA %s8// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn %t | FileCheck --check-prefix=DISASM %s9 10// RELOCSHARED: Relocations [11// RELOCSHARED-NEXT: Section ({{.*}}) .rela.dyn {12// RELOCSHARED-NEXT: R_X86_64_SIZE32 fooshared 0xFFFFFFFFFFFFFFFF13// RELOCSHARED-NEXT: R_X86_64_SIZE32 fooshared 0x014// RELOCSHARED-NEXT: R_X86_64_SIZE32 fooshared 0x115// RELOCSHARED-NEXT: R_X86_64_SIZE64 fooshared 0xFFFFFFFFFFFFFFFF16// RELOCSHARED-NEXT: R_X86_64_SIZE64 fooshared 0x017// RELOCSHARED-NEXT: R_X86_64_SIZE64 fooshared 0x118// RELOCSHARED-NEXT: }19// RELOCSHARED-NEXT:]20 21// DATA: section '.data':22// DATA-NEXT: 00000000 00000000 00000000 0000000023// DATA-NEXT: 00000000 00000000 00001900 0000000024// DATA-NEXT: 00001a00 00000000 00001b00 0000000025// DATA-NEXT: 00000000 00000000 00000000 0000000026// DATA-NEXT: 00000000 00000000 000027 28// DISASM: <_start>:29// DISASM-NEXT: movl 25, %eax30// DISASM-NEXT: movl 26, %eax31// DISASM-NEXT: movl 27, %eax32// DISASM-NEXT: movl 0, %eax33// DISASM-NEXT: movl 0, %eax34// DISASM-NEXT: movl 0, %eax35 36.data37.global foo38.type foo,%object39.size foo,2640foo:41.zero 2642 43 // R_X86_64_SIZE64:44 .quad foo@SIZE-145 .quad foo@SIZE46 .quad foo@SIZE+147 .quad fooshared@SIZE-148 .quad fooshared@SIZE49 .quad fooshared@SIZE+150 51.section test, "awx"52.globl _start53_start:54 // R_X86_64_SIZE32:55 movl foo@SIZE-1,%eax56 movl foo@SIZE,%eax57 movl foo@SIZE+1,%eax58 movl fooshared@SIZE-1,%eax59 movl fooshared@SIZE,%eax60 movl fooshared@SIZE+1,%eax61