[cooker] Kernel compiled with LLVM/clang


I've spent some time to get our kernel compiled with LLVM/clang-9.0.0

It's not tested at all. Feel free to try it.

Some observations:
-O3 in clang works differently so it catches some error when compiling
APPLESMC module, so I've disabled it.

objtool makefile needed a patch to skip user CFLAGS redefinition.

Saa716x patch needs to be disabled as it generated some warnings which was
quite suspicious.

VirtualBox module for disabled because using some GCC specific pragmas.
Iirc FreeBSD got some patches to build Vbox with clang.

I had to use LLVM tools like ar, objcopy, nm etc.

LLD generates lots of warnings due to enabled ICF and gc-secrions together.


Currently kernel builds fine with LLVM/clang on these archs:
armv7hl https://abf.openmandriva.org/build_lists/611357
x86_64 https://abf.openmandriva.org/build_lists/610526
znver1 https://abf.openmandriva.org/build_lists/610531

aarch64 is hit by this bug

i686 is hit by this bug https://github.com/ClangBuiltLinux/linux/issues/3
riscv64 currently broken by glibc

All these were compiled with ld.bfd as ld.lld have some bugs.

I'm running x86_64 compiled kernel on two different laptops, and it looks
like it boots and works.