Sorry, I am late in this thead.
And I want to sorry for my bad english as well. But I have to say here as I think of myself as one of lld develpers.
I just want to add something to that really long discussion:
My points here are about lld how I see it:
* We are care about crashes.
Visible errors are abnormal for us. But: we do not try to catch everything we see.
We are trying to solve the possible issues that users can have. If they use hex editor to modify inputs - that is
definetely not our care and we can segfault. Though some of our tests are checking the things that are probably ubnormal.
And that is fine. We can fix something "just in case", but main priority is real wold needs. LLD is not crash free, it is just fast.
Actually what the difference ? I often see crashes in software that is not suppose to do that, lld at least is honest here: we do not say
it can't crash.
* That is very important stuff. Real world needs. In real world nobody cares about crashes in linker, does not that true ?
Users want to have a understandable text representation of a error. And that is something we are trying to provide.
If we don't do that than probably their needs are something really special. We do fixes for problem we meet usually,
but lld is not a something that going to fix everything. Don't forget: it is not safe linker, it is fast linker !
* Most important part is a speed. We can skip something, and we make decisions on the brink, but as far I undestand
that is just because of partial assumption thet we have a valid input. We can argue with that a lot, but each case would be a discussion.
Take an relaxation of R_X86_64_GOTPCRELX/R_X86_64_REX_GOTPCRELX for example. We have to assume it is correctly generated relocation to relax it.
Do you really want us to check that it is true ? That was just an sample. I believe we do reasonable changes in general.
* Last one but most important. Excuse me please, but if anyone thinks that lld is not good enough, we are always ready to see
the patches. I see many argues about something about lld. But where are patches ? I think any patch would be really
appreciated. Althrough probably we can't promise they be accepted.