pcrel surprisingly didn't take much to get working, at least if we ignore the hard bits (modules, ftrace, kprobes...). I'd like to get it merged so we can incrementally fix the missing bits. The series is functional but not quite polished, so this is a good point to see if people agree with the approach.
Aside from polishing, the major bit missing before merge is Kconfig detection of compiler pcrel feature. Thanks, Nick Nicholas Piggin (7): powerpc: use 16-bit immediate for STACK_FRAME_REGS_MARKER powerpc/64: abstract asm global variable declaration and access powerpc/64: provide a helper macro to load r2 with the kernel TOC powerpc: add CFUNC assembly label annotation powerpc/64s: update generic cpu option name and compiler flags powerpc/64s: POWER10 CPU Kconfig build option powerpc/64s: Add option to build vmlinux with pcrel addressing arch/powerpc/Makefile | 22 ++- arch/powerpc/boot/opal-calls.S | 6 +- arch/powerpc/boot/ppc_asm.h | 4 + arch/powerpc/include/asm/atomic.h | 20 ++- arch/powerpc/include/asm/io.h | 36 ++++ arch/powerpc/include/asm/ppc_asm.h | 157 +++++++++++++++++- arch/powerpc/include/asm/ptrace.h | 6 +- arch/powerpc/include/asm/uaccess.h | 22 +++ arch/powerpc/kernel/entry_32.S | 9 +- arch/powerpc/kernel/exceptions-64e.S | 12 +- arch/powerpc/kernel/exceptions-64s.S | 116 ++++++------- arch/powerpc/kernel/head_32.h | 3 +- arch/powerpc/kernel/head_64.S | 58 +++++-- arch/powerpc/kernel/head_booke.h | 3 +- arch/powerpc/kernel/interrupt_64.S | 56 +++---- arch/powerpc/kernel/irq.c | 4 + arch/powerpc/kernel/misc_64.S | 2 +- arch/powerpc/kernel/optprobes_head.S | 2 +- arch/powerpc/kernel/swsusp_asm64.S | 22 +-- arch/powerpc/kernel/trace/ftrace_mprofile.S | 7 +- arch/powerpc/kernel/vdso/gettimeofday.S | 2 +- arch/powerpc/kernel/vector.S | 41 ++--- arch/powerpc/kernel/vmlinux.lds.S | 6 + arch/powerpc/kvm/book3s_hv_rmhandlers.S | 16 +- arch/powerpc/lib/copypage_64.S | 11 +- 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/lib/string_64.S | 9 +- arch/powerpc/perf/bhrb.S | 2 +- arch/powerpc/platforms/Kconfig.cputype | 30 +++- .../powerpc/platforms/powernv/opal-wrappers.S | 2 +- arch/powerpc/platforms/pseries/hvCall.S | 14 +- arch/powerpc/xmon/spr_access.S | 4 +- 36 files changed, 502 insertions(+), 232 deletions(-) -- 2.37.2