This is a more complete change than my earlier hack. Namely fixed the boot code so it's more unified rather than adding a special case for Book3S+PCREL. Lots of bug fixes, and adding some of the ftrace and BPF trampoline/stubs. And added module support, which might be the most interesting bit.
This won't see a lot of real use until POWER10 is the oldest supported CPU for distros, but being as we're quite a unique user of toolchain I'd like to start ironing things out earlier rather than later. I'm making a list of observations here, https://github.com/linuxppc/issues/issues/455 and will take them to toolchan developers after the kernel work is a bit further along. Thanks, Nick Nicholas Piggin (9): crypto: powerpc - Use address generation helper for asm powerpc/64s: Refactor initialisation after prom powerpc/64e: Simplify address calculation in secondary hold loop powerpc/64: Move initial base and TOC pointer calculation powerpc/64s: Run at the kernel virtual address earlier in boot powerpc: add CFUNC assembly label annotation powerpc/64: Add support to build with prefixed instructions powerpc/64: vmlinux support building with PCREL addresing powerpc/64: modules support building with PCREL addresing arch/powerpc/Kconfig | 6 + arch/powerpc/Makefile | 10 + arch/powerpc/crypto/crc32-vpmsum_core.S | 13 +- arch/powerpc/include/asm/atomic.h | 24 +- arch/powerpc/include/asm/io.h | 37 +++ arch/powerpc/include/asm/module.h | 9 +- arch/powerpc/include/asm/paca.h | 2 + arch/powerpc/include/asm/ppc-opcode.h | 8 + arch/powerpc/include/asm/ppc_asm.h | 24 ++ arch/powerpc/include/asm/sections.h | 5 + arch/powerpc/include/asm/uaccess.h | 28 +- arch/powerpc/include/uapi/asm/elf.h | 4 + arch/powerpc/kernel/asm-offsets.c | 2 + arch/powerpc/kernel/exceptions-64s.S | 112 ++++---- arch/powerpc/kernel/head_64.S | 179 +++++++----- arch/powerpc/kernel/interrupt_64.S | 28 +- arch/powerpc/kernel/irq.c | 8 + arch/powerpc/kernel/misc_64.S | 2 +- arch/powerpc/kernel/module_64.c | 344 ++++++++++++++++++++---- arch/powerpc/kernel/paca.c | 2 + arch/powerpc/kernel/trace/ftrace.c | 52 +++- arch/powerpc/kernel/vdso/gettimeofday.S | 6 +- arch/powerpc/kernel/vector.S | 6 + arch/powerpc/kernel/vmlinux.lds.S | 6 + arch/powerpc/kvm/book3s_hv_rmhandlers.S | 16 +- arch/powerpc/lib/copypage_64.S | 4 +- arch/powerpc/lib/copypage_power7.S | 4 +- arch/powerpc/lib/copyuser_power7.S | 8 +- arch/powerpc/lib/hweight_64.S | 8 +- arch/powerpc/lib/memcmp_64.S | 4 +- arch/powerpc/lib/memcpy_power7.S | 6 +- arch/powerpc/net/bpf_jit.h | 10 +- arch/powerpc/net/bpf_jit_comp64.c | 35 ++- arch/powerpc/platforms/Kconfig.cputype | 38 +++ arch/powerpc/platforms/pseries/hvCall.S | 4 +- arch/powerpc/xmon/xmon.c | 2 + 36 files changed, 793 insertions(+), 263 deletions(-) -- 2.37.2