[PATCH] D34067: Use symbols with the default version to resolve unversioned symbols.

Rui Ueyama via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 9 15:07:03 PDT 2017


ruiu created this revision.
Herald added a subscriber: emaste.

This patch is made based on https://reviews.llvm.org/D33680.

Symbols can contain symbol versions in themselves. If a symbol name
is in the form of "foo at bar", foo's version is "bar".

There's one special version -- the default version. If a symbol is in
the form of "foo@@bar", it is used not only to resolve "foo" in
version "bar" but also any unversioned "foo". Thus, it is called the
default.

This patch implements the behavior.

Fixes https://bugs.llvm.org/show_bug.cgi?id=33383.


https://reviews.llvm.org/D34067

Files:
  lld/ELF/SymbolTable.cpp
  lld/ELF/SymbolTable.h
  lld/ELF/Symbols.cpp
  lld/ELF/Symbols.h
  lld/ELF/version-script-symver-err.s
  lld/ELF/version-script-symver.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D34067.102078.patch
Type: text/x-patch
Size: 7040 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170609/c65be61f/attachment.bin>


More information about the llvm-commits mailing list