blob: 13a6dc41fd10d301d494a877c4cf6cb3b718dfa6 [file] [log] [blame]
// REQUIRES: x86
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
// RUN: llvm-readobj --dyn-symbols %p/Inputs/version-undef-sym.so | FileCheck %s
// Inputs/version-undef-sym.so consists of the assembly file
//
// .global bar
// bar:
// .weak abc1
// .weak abc2
// .weak abc3
// .weak abc4
// .weak abc5
//
// linked into a shared library with the version script
//
// VER_1 {
// global:
// bar;
// };
//
// Assuming we can reproduce the desired property (a few undefined symbols
// before bar) we should create it with lld itself once it supports that.
// Show that the input .so has undefined symbols before bar. That is what would
// get our version parsing out of sync.
// CHECK: Section: Undefined
// CHECK: Section: Undefined
// CHECK: Section: Undefined
// CHECK: Section: Undefined
// CHECK: Section: Undefined
// CHECK: Name: bar
// But now we can successfully find bar.
// RUN: ld.lld %t.o %p/Inputs/version-undef-sym.so -o /dev/null
.global _start
_start:
call bar@plt