Diff Detail
Event Timeline
ELF/OutputSections.cpp | ||
---|---|---|
182–188 | Add a comment about this being a placeholder for the second entry in a gd pair (which was handled in the previous iteration. |
ELF/InputSection.cpp | ||
---|---|---|
129 | Probably. We would need to change getTlsLocalDynamicReloc too. |
LGTM, but please change getTlsLocalDynamicReloc to isTlsLocalDynamicReloc (and global equivalent) in a followup commit.
ELF/OutputSections.cpp | ||
---|---|---|
86 | Probably would be better to make another method for that case because it is still possible for symbol to be TLS but consume only one GOT entry. I fixed this for my patch: | |
185 | I would use && here, its more strict check. There should be no other cases when one of these is null but other is not. static DynamicReloc<ELFT> TlsDynamicRelocationPlaceholder; ... Out<ELFT>::RelaDyn->addReloc({&C, &RI}); Out<ELFT>::RelaDyn->addReloc(TlsDynamicRelocationPlaceholder); ... if (&Rel == &TlsDynamicRelocationPlaceholder) continue; | |
test/elf2/tls-dynamic.s | ||
75 | Its not visible here but tabs are used instead of spaces in test in few places. Other tests dont has tabs I think. |
You are not using a return value of getTlsGlobalDynamicReloc except comparing it with Type. Isn't isTlsGlobalDynamicReloc(uint32_t) better than getTlsGlobalDynamicReloc()?