1# RUN: rm -rf %t && mkdir -p %t 2# RUN: llvm-mc -triple x86_64-pc-linux-gnu -filetype=obj \ 3# RUN: -o %t/ELF_weak_defs_extra.o %S/Inputs/ELF_weak_defs_extra.s 4# RUN: llvm-mc -triple x86_64-pc-linux-gnu -filetype=obj \ 5# RUN: -o %t/ELF_weak_definitions.o %s 6# RUN: llvm-jitlink -noexec -check=%s %t/ELF_weak_definitions.o \ 7# RUN: %t/ELF_weak_defs_extra.o 8# 9# Check that objects linked separately agree on the address of weak symbols. 10# 11# jitlink-check: *{8}WeakDefAddrInThisFile = *{8}WeakDefAddrInExtraFile 12 13 .text 14 .file "ELF_weak_definitions.c" 15 .globl main 16 .p2align 4, 0x90 17 .type main,@function 18main: 19 movq WeakDef@GOTPCREL(%rip), %rax 20 movl (%rax), %eax 21 retq 22.Lfunc_end0: 23 .size main, .Lfunc_end0-main 24 25 .type WeakDef,@object 26 .data 27 .weak WeakDef 28 .p2align 2 29WeakDef: 30 .long 1 31 .size WeakDef, 4 32 33 .type WeakDefAddrInThisFile,@object 34 .globl WeakDefAddrInThisFile 35 .p2align 3 36WeakDefAddrInThisFile: 37 .quad WeakDef 38 .size WeakDefAddrInThisFile, 8 39 40 41 .type extra_file_anchor,@object 42 .globl extra_file_anchor 43 .p2align 3 44extra_file_anchor: 45 .quad WeakDefAddrInExtraFile 46 .size extra_file_anchor, 8 47 48 .ident "clang version 10.0.0-4ubuntu1 " 49 .section ".note.GNU-stack","",@progbits 50 .addrsig 51 .addrsig_sym WeakDef 52 .addrsig_sym WeakDefAddrInExtraFile 53