[LLVM-494] LLD is now turned on for clang linux kernel defconfig builds [LLVM-542] Worked out how to get Zephyr (Linaro's choice of IoT embedded OS) compiling with clang. Looks like it is going to be difficult to get linking with clang/lld so I've used the gcc/ld.bfd for now. Linux kernel sent a draft patch to try and alleviate some object ordering problems that arise when linking the linux kernel with LTO.
[Misc] Intel patch to add CET to LLD https://reviews.llvm.org/D58102 I mention this as this is related to BTI and CFI and .note.gnu.property sections. There has been some pushback to the use of .note.gnu.property sections, and in Intel's case their 2 level PLT scheme although it seems like as this has been mitigated by the presence of this option in gcc for some time. I have noticed that we tend to do design of a feature in one community (LLVM, GNU) and then attempt to win over the other one with leverage that the other community supports it. We may need to cast our early feedback net a bit wider to mitigate the chance that one of the communities blocks one of our features.
There was an interesting RFC on a linker feature for improving code-size for mobile phones http://lists.llvm.org/pipermail/llvm-dev/2019-February/130583.html in essence an application is developed with loadable features implemented in DSOs loaded by dlopen. The entry points of the DSO are recorded, then all the input objects are given to the static linker which then performs LTO and creates stripped down DSOs that must be loaded at a specific offset from the application (shrinking them but losing the shared part of DSO).