xref: /llvm-project/llvm/test/Object/Inputs/shared.ll (revision 2fc34c5f847adc68529d4786becd48459b79a0a6)
18c4729fdSMichael J. Spencer; How to make the shared objects from this file:
28c4729fdSMichael J. Spencer;
3*2fc34c5fSDavid Meyer; LDARGS="--unresolved-symbols=ignore-all -soname=libfoo.so --no-as-needed -lc -lm"
4*2fc34c5fSDavid Meyer;
58c4729fdSMichael J. Spencer; X86-32 ELF:
68c4729fdSMichael J. Spencer;   llc -mtriple=i386-linux-gnu shared.ll -filetype=obj -o tmp32.o -relocation-model=pic
7*2fc34c5fSDavid Meyer;   ld -melf_i386 -shared tmp32.o -o shared-object-test.elf-i386 $LDARGS
88c4729fdSMichael J. Spencer;
98c4729fdSMichael J. Spencer; X86-64 ELF:
108c4729fdSMichael J. Spencer;   llc -mtriple=x86_64-linux-gnu shared.ll -filetype=obj -o tmp64.o -relocation-model=pic
11*2fc34c5fSDavid Meyer;   ld -melf_x86_64 -shared tmp64.o -o shared-object-test.elf-x86-64 $LDARGS
128c4729fdSMichael J. Spencer
138c4729fdSMichael J. Spencer@defined_sym = global i32 1, align 4
148c4729fdSMichael J. Spencer
158c4729fdSMichael J. Spencer@tls_sym = thread_local global i32 2, align 4
168c4729fdSMichael J. Spencer
178c4729fdSMichael J. Spencer@undef_sym = external global i32
188c4729fdSMichael J. Spencer
198c4729fdSMichael J. Spencer@undef_tls_sym = external thread_local global i32
208c4729fdSMichael J. Spencer
218c4729fdSMichael J. Spencer@common_sym = common global i32 0, align 4
228c4729fdSMichael J. Spencer
238c4729fdSMichael J. Spencerdefine i32 @global_func() nounwind uwtable {
248c4729fdSMichael J. Spencerentry:
258c4729fdSMichael J. Spencer  ret i32 0
268c4729fdSMichael J. Spencer}
278c4729fdSMichael J. Spencer
288c4729fdSMichael J. Spencerdeclare i32 @undef_func(...)
298c4729fdSMichael J. Spencer
308c4729fdSMichael J. Spencerdefine internal i32 @local_func() nounwind uwtable {
318c4729fdSMichael J. Spencerentry:
328c4729fdSMichael J. Spencer  ret i32 0
338c4729fdSMichael J. Spencer}
34