38 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/dynamic-reloc-weak.s -o %t2.o4// RUN: ld.lld -shared %t2.o -o %t2.so5// RUN: ld.lld %t.o %t2.so -o %t6// RUN: llvm-readobj -r %t | FileCheck %s7 8 .globl _start9_start:10 .type sym1,@function11 .weak sym112 .long sym1@gotpcrel13 14 .type sym2,@function15 .weak sym216 .long sym2@plt17 18 .type sym3,@function19 .weak sym320 .quad sym321 22 .type sym4,@function23 .weak sym424 .quad sym425 26// Test that we produce dynamic relocation for every weak undefined symbol27// we found.28 29// CHECK: Relocations [30// CHECK-NEXT: Section ({{.*}}) .rela.dyn {31// CHECK-NEXT: 0x{{.*}} R_X86_64_GLOB_DAT sym1 0x032// CHECK-NEXT: }33// CHECK-NEXT: Section ({{.*}}) .rela.plt {34// CHECK-NEXT: 0x{{.*}} R_X86_64_JUMP_SLOT sym2 0x035// CHECK-NEXT: 0x{{.*}} R_X86_64_JUMP_SLOT sym3 0x036// CHECK-NEXT: }37// CHECK-NEXT: ]38