Now local symbols have SymbolBody so we can handle all kind of symbols in the GotSection::addEntry method. The patch moves the code from addMipsLocalEntry to addEntry.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
I'm not very sure whether this is positive for readability or not. This seems to be neutral to me. If you could just remove the code that would be fine, but this patch add a new if (Body.isPreemptible()), which is a bit difficult to understand. Is there any way to simplify it further?
Note that I'm not against this patch.
Unfortunately the if (Body.isPreemptible()) is mandatory because we do not need to add to dynamic symbol table symbols which have entries in the "local" part of MIPS GOT. I can add a comment to describe this if statement. Even after that the code is shorter.
- Simplified condition in the GotSection::addEntry method.
- Move the Sym.MustBeInDynSym = true to the GotSection::addEntry method.
I will try to find a way to handle this MIPS ABI oddity in some more readable way, but this is OK for now (and I'm not sure if such better way exists). LGTM.
By the way, I'm on vacation this week, so my response would be a bit slow this week.
ELF/OutputSections.cpp | ||
---|---|---|
93 | I think we need a brief explanation what we are doing here for MIPS even if it is a duplicate with a comment in other place. |
A local symbol is not preemptable, so you can simplify the if.