On 3 June 2016 at 01:53, Rui Ueyama ruiu@google.com wrote:
Not so fast to conclude that the community is not trustworthy, it doesn't consist of a single person or a single action.
This is not an isolated incident. This seems to be the general behaviour around LLD, which is less so in the rest of the LLVM projects.
The obliteration of the old ELF back-end was discussed only between a few people, not on the list. The technical reasoning could have been solid for a new back-end, but not for destroying fresh code. The removal was weeks after Adhemerval had LLD bootstrapping Clang on AArch64 upstream.
There were backlashes to that decision, as well as other decisions in this list, and many people have already demonstrated discontent with how LLD patches and decisions are handled.
During EuroLLVM's LLD presentation, a lot of people asked technical questions about the implementation of wanted features like library order, linker scripts, version scripts, and all answers were "it's not that hard, it's all in my head, don't worry about it".
If this was a closed source project, and you, Rafael, Nick and PCC were the team developing it, it'd be expected that the team lead would have some leeway on the implementation and the consumers would have to wait until it's ready. But this is open source, and that's absolutely *not* how things work out here. That is *precisely* the problem, not this one incident. This incident was just the tipping point.
That is why I personally don't trust the LLD community to act in the open source way. I have seen it consistently repeated over the last two years that I'm following. It makes no difference if this is a new project or not, this is open source, and in open source we work collaboratively. If you refuse people's patches because "you know better", you're not doing open source and people doing it will move elsewhere. This is not about you, me or Rafael, this is about the LLVM linker.
So, I'll now be going back looking at MCLinker and see if we can make a Linux/BSD ARM/AArch64 upstream linker out of it, compatible with the GNU environment. As you can see [1], the development is still active, up-to-date with modern LLVM and there are ARM and MIPS support already, and the community there is far more receptive than LLD's.
We'll continue to work on ARM and AArch64 patches to LLD, but if MCLinker proves an easier route to achieve our final goal, which is to have a Lesser-licensed open source ARM/AArch64 linker for GNU/BSD environments, and LLD's community continues to offer resistance and bad behaviour, we'll slowly de-phase LLD in favour of MCLinker, at least at Linaro.
Such is the nature of open source.
cheers, --renato