[PATCH] D24832: [ELF] Resolve weak undefined TLS symbols when no phdr is available
Davide Italiano via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 22 20:42:51 PDT 2016
davide added a comment.
I don't think the invariant you point out is respected (we should never call getSymVA() on a Lazy symbol).
I was lazy, and to convince myself I put the following assertion in the code:
diff --git a/ELF/InputSection.cpp b/ELF/InputSection.cpp
index 3cc6ce5..b44d2d9 100644
--- a/ELF/InputSection.cpp
+++ b/ELF/InputSection.cpp
@@ -185,6 +185,7 @@ template <class ELFT>
static typename ELFT::uint getSymVA(uint32_t Type, typename ELFT::uint A,
typename ELFT::uint P,
const SymbolBody &Body, RelExpr Expr) {
+ assert (!Body.isLazy() && "patatino");
switch (Expr) {
case R_HINT:
llvm_unreachable("cannot relocate hint relocs");
and saw three tests failing:
********************
Testing Time: 17.63s
********************
Failing Tests (3):
lld :: ELF/archive.s
lld :: ELF/lto/undef-weak.ll
lld :: ELF/tls-in-archive.s
Still, maybe this is not the best place to check.
https://reviews.llvm.org/D24832
More information about the llvm-commits
mailing list