53 lines
1.2 KiB
ArmAsm
53 lines
1.2 KiB
ArmAsm
# RUN: rm -rf %t && mkdir -p %t
|
|
# RUN: llvm-mc -triple x86_64-pc-linux-gnu -filetype=obj \
|
|
# RUN: -o %t/ELF_weak_defs_extra.o %S/Inputs/ELF_weak_defs_extra.s
|
|
# RUN: llvm-mc -triple x86_64-pc-linux-gnu -filetype=obj \
|
|
# RUN: -o %t/ELF_weak_definitions.o %s
|
|
# RUN: llvm-jitlink -noexec -check=%s %t/ELF_weak_definitions.o \
|
|
# RUN: %t/ELF_weak_defs_extra.o
|
|
#
|
|
# Check that objects linked separately agree on the address of weak symbols.
|
|
#
|
|
# jitlink-check: *{8}WeakDefAddrInThisFile = *{8}WeakDefAddrInExtraFile
|
|
|
|
.text
|
|
.file "ELF_weak_definitions.c"
|
|
.globl main
|
|
.p2align 4, 0x90
|
|
.type main,@function
|
|
main:
|
|
movq WeakDef@GOTPCREL(%rip), %rax
|
|
movl (%rax), %eax
|
|
retq
|
|
.Lfunc_end0:
|
|
.size main, .Lfunc_end0-main
|
|
|
|
.type WeakDef,@object
|
|
.data
|
|
.weak WeakDef
|
|
.p2align 2
|
|
WeakDef:
|
|
.long 1
|
|
.size WeakDef, 4
|
|
|
|
.type WeakDefAddrInThisFile,@object
|
|
.globl WeakDefAddrInThisFile
|
|
.p2align 3
|
|
WeakDefAddrInThisFile:
|
|
.quad WeakDef
|
|
.size WeakDefAddrInThisFile, 8
|
|
|
|
|
|
.type extra_file_anchor,@object
|
|
.globl extra_file_anchor
|
|
.p2align 3
|
|
extra_file_anchor:
|
|
.quad WeakDefAddrInExtraFile
|
|
.size extra_file_anchor, 8
|
|
|
|
.ident "clang version 10.0.0-4ubuntu1 "
|
|
.section ".note.GNU-stack","",@progbits
|
|
.addrsig
|
|
.addrsig_sym WeakDef
|
|
.addrsig_sym WeakDefAddrInExtraFile
|