I am mostly interested in checking that this is sufficient to implement the asan use case. If it does I will benchmark this to see if I have to move the std::vector out or not.
Diff Detail
Event Timeline
lld/ELF/MarkLive.cpp | ||
---|---|---|
241 | This does not have to be an InputSection. |
A bigger problem is current LLD crashing on SHF_LINK_ORDER with zero sh_link, and ld.bfd complaining about that with warning messages. This means we can not safely create such sections in the compiler.
Add SHF_ASSOCIATED?
Add and use SHF_ASSOCIATIVE. If this works for asan I will try to get the value added to the spec.
Small nit.
llvm/include/llvm/Support/ELF.h | ||
---|---|---|
749 ↗ | (On Diff #84606) | Explain the semantics. There is currently no spec reference to look up. |
Thank you, this looks and works great!
My earlier comment still needs to be addressed though, casts to InputSection must be replaced with dyn_cast<> with null checks.
The design of this feature looks good to me, thanks.
lld/ELF/InputFiles.cpp | ||
---|---|---|
322 | I think it's fine to have this restriction, but aren't we still crashing on associated sections with relocations referring to merge sections? |
llvm/include/llvm/Support/ELF.h | ||
---|---|---|
752 ↗ | (On Diff #84865) | this is conflicting with XCORE_SHF_DP_SECTION a few lines below, which is printed in assembly as "d" flag instead of "o" |
I think it's fine to have this restriction, but aren't we still crashing on associated sections with relocations referring to merge sections?