Due to issues like https://reviews.llvm.org/D70570, clang's support for freestanding / static model code is still slightly lacking on ppc32.
As such, I'm investigating building powerpc* kernel modules as PIC.
* Add elf_cpu_parse_dynamic() to allow MD code to do its own DYNAMIC parsing. Add stubs to all link_elf.c platforms.
* Implement jump table relocation for ppc32 secure-plt LD_BIND_NOW style and add a check to ensure it is only loading secure-plt modules (using elf_cpu_parse_dynamic())
* Build kernel modules -fPIC on powerpc*.
* Poison the powerpc32 runtime resolver to ensure any attempts to call it cause an appropriate panic instead of a branch-to-zero.
Todo:
* Figure out why dtrace is broken again.
* Use elf_cpu_parse_dynamic() to make ppc64 module loading more robust?
* Document rationale behind this change