[PATCH] D19560: ELF: Re-implement -u directly and remove CanKeepUndefined flag.

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 26 14:53:44 PDT 2016


pcc created this revision.
pcc added reviewers: rafael, ruiu.
pcc added a subscriber: llvm-commits.

The semantics of the -u flag are to load the lazy symbol named by the flag. We
were previously relying on this behavior falling out of symbol resolution
against a synthetic undefined symbol, but that didn't quite give us the
correct behavior, so we needed a flag to mark symbols created with -u so
we could treat them specially in the writer. However, it's simpler and less
error prone to implement the required behavior directly and remove the flag.

This fixes an issue where symbols loaded with -u would receive hidden
visibility even when the definition in an object file had wider visibility.

http://reviews.llvm.org/D19560

Files:
  ELF/Driver.cpp
  ELF/SymbolTable.cpp
  ELF/SymbolTable.h
  ELF/Symbols.cpp
  ELF/Symbols.h
  ELF/Writer.cpp
  test/ELF/undefined-opt.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19560.55099.patch
Type: text/x-patch
Size: 5209 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160426/3a3cd355/attachment.bin>


More information about the llvm-commits mailing list