xref: /llvm-project/llvm/test/ExecutionEngine/JITLink/x86-64/ELF_weak_definitions.s (revision 8ad75c1037289b06bd1b95ff445797d380d93039)
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