61 lines · plain
1# REQUIRES: x862# RUN: rm -rf %t && split-file %s %t3# RUN: llvm-mc -filetype=obj -triple=x86_64 %t/1.s -o %t/1.o4# RUN: llvm-mc -filetype=obj -triple=x86_64 %t/2.s -o %t/2.o5# RUN: ld.lld -shared -soname=t2 %t/2.o -o %t/2.so6# RUN: ld.lld %t/1.o %t/2.so -o %t/17# RUN: llvm-readelf -S -r --dyn-syms %t/1 | FileCheck %s8# RUN: ld.lld --gc-sections -pie %t/1.o %t/2.so -o %t/19# RUN: llvm-readelf -S -r --dyn-syms %t/1 | FileCheck %s10 11# CHECK: [[#BSS:]]] .bss12 13# CHECK: R_X86_64_COPY [[#%x,]] a1 + 014# CHECK-NEXT: R_X86_64_GLOB_DAT [[#%x,]] b1 + 015# CHECK-NEXT: R_X86_64_COPY [[#%x,]] b1 + 016# CHECK-NEXT: R_X86_64_GLOB_DAT [[#%x,]] a2 + 017 18# CHECK: Value Size Type Bind Vis Ndx Name19# CHECK: [[#%x,ADDR:]] 1 OBJECT GLOBAL DEFAULT [[#BSS]] a120# CHECK-NEXT: {{0*}}[[#ADDR+1]] 1 OBJECT WEAK DEFAULT [[#BSS]] b121# CHECK-NEXT: {{0*}}[[#ADDR+1]] 1 OBJECT GLOBAL DEFAULT [[#BSS]] b222# CHECK-NEXT: {{0*}}[[#ADDR]] 1 OBJECT WEAK DEFAULT [[#BSS]] a223# CHECK-NEXT: {{0*}}[[#ADDR+1]] 1 OBJECT GLOBAL DEFAULT [[#BSS]] b324 25#--- 1.s26.global _start27_start:28movl $5, a129mov $b1 - ., %eax30mov $b2 - ., %eax31 32## Test that a copy relocated alias may have GOT entry.33.weak a2, b134movq a2@gotpcrel(%rip), %rax35movq b1@gotpcrel(%rip), %rcx36 37#--- 2.s38.data39 40.globl a1, b341.weak a2, b1, b242 43.type a1, @object44.type a2, @object45a1:46a2:47.byte 148.size a1, 149.size a2, 150 51.type b1, @object52.type b2, @object53.type b3, @object54b1:55b2:56b3:57.byte 258.size b1, 159.size b2, 160.size b3, 161