diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-06-06 22:42:57 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-06-06 22:42:57 +0000 |
commit | b75bd9cb41ff4a16606d75aa1b3dbd82e7a93430 (patch) | |
tree | 506776fef5fd43dec3b7f1370d1b52b5706cec22 | |
parent | 029e6f2d18e4f6d0a3f0b99ee1d930fb3f6dc75c (diff) |
Ignore the "globally available" version.
Reduced from a firefox build.
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@271950 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | ELF/InputFiles.cpp | 2 | ||||
-rw-r--r-- | test/ELF/Inputs/version-use.script | 6 | ||||
-rwxr-xr-x | test/ELF/Inputs/version-use.so | bin | 0 -> 2720 bytes | |||
-rw-r--r-- | test/ELF/version-use.s | 9 |
4 files changed, 16 insertions, 1 deletions
diff --git a/ELF/InputFiles.cpp b/ELF/InputFiles.cpp index a5e6cd974..48d04f894 100644 --- a/ELF/InputFiles.cpp +++ b/ELF/InputFiles.cpp @@ -527,7 +527,7 @@ template <class ELFT> void SharedFile<ELFT>::parseRest() { if (Versym) { // Ignore local symbols and non-default versions. - if (VersymIndex == 0 || (VersymIndex & VERSYM_HIDDEN)) + if (VersymIndex == 0 || VersymIndex == 1 || (VersymIndex & VERSYM_HIDDEN)) continue; } elf::Symtab<ELFT>::X->addShared(this, Name, Sym, Verdefs[VersymIndex]); diff --git a/test/ELF/Inputs/version-use.script b/test/ELF/Inputs/version-use.script new file mode 100644 index 000000000..5b2721b05 --- /dev/null +++ b/test/ELF/Inputs/version-use.script @@ -0,0 +1,6 @@ +ABC { +global: +foo; +local: +*; +}; diff --git a/test/ELF/Inputs/version-use.so b/test/ELF/Inputs/version-use.so Binary files differnew file mode 100755 index 000000000..153544e99 --- /dev/null +++ b/test/ELF/Inputs/version-use.so diff --git a/test/ELF/version-use.s b/test/ELF/version-use.s new file mode 100644 index 000000000..684679fdb --- /dev/null +++ b/test/ELF/version-use.s @@ -0,0 +1,9 @@ +// REQUIRES: x86 +// RUN: llvm-mc %s -o %t.o -filetype=obj -triple=x86_64-pc-linux +// RUN: ld.lld %t.o %p/Inputs/version-use.so -o %t.so -shared +// RUN: llvm-readobj -s %t.so | FileCheck %s + + + call bar@PLT + +// CHECK-NOT: SHT_GNU_versym |