OpenCloudOS-Kernel/arch/powerpc/include/uapi/asm
Nicholas Piggin 77e69ee7ce powerpc/64: modules support building with PCREL addresing
Build modules using PCREL addressing when CONFIG_PPC_KERNEL_PCREL=y.

- The module loader must handle several new relocation types:

  * R_PPC64_REL24_NOTOC is a function call handled like R_PPC_REL24, but
    does not restore r2 upon return. The external function call stub is
    changed to use pcrel addressing to load the function pointer rather
    than based on the module TOC.

  * R_PPC64_GOT_PCREL34 is a reference to external data. A GOT table
    must be built by hand, because the linker adds this during the final
    link (which is not done for kernel modules). The GOT table is built
    similarly to the way the external function call stub table is. This
    section is called .mygot because .got has a special meaning for the
    linker and can become upset.

  * R_PPC64_PCREL34 is used for local data addressing, but there is a
    special case where the percpu section is moved at load-time to the
    percpu area which is out of range of this relocation. This requires
    the PCREL34 relocations are converted to use GOT_PCREL34 addressing.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
[mpe: Some coding style & formatting fixups]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230408021752.862660-7-npiggin@gmail.com
2023-04-20 13:21:42 +10:00
..
Kbuild treewide: Add SPDX license identifier - Kbuild 2019-05-30 11:32:33 -07:00
auxvec.h powerpc/signal: Report minimum signal frame size to userspace via AT_MINSIGSTKSZ 2022-05-19 23:11:26 +10:00
bitsperlong.h License cleanup: add SPDX license identifier to uapi header files with no license 2017-11-02 11:19:54 +01:00
bootx.h License cleanup: add SPDX license identifier to uapi header files with no license 2017-11-02 11:19:54 +01:00
byteorder.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
cputable.h powerpc: Add new HWCAP bits 2020-06-02 20:59:19 +10:00
eeh.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
elf.h powerpc/64: modules support building with PCREL addresing 2023-04-20 13:21:42 +10:00
epapr_hcalls.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
errno.h powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h 2021-04-17 10:40:51 +10:00
fcntl.h License cleanup: add SPDX license identifier to uapi header files with no license 2017-11-02 11:19:54 +01:00
ioctl.h License cleanup: add SPDX license identifier to uapi header files with no license 2017-11-02 11:19:54 +01:00
ioctls.h tty/serial_core: add ISO7816 infrastructure 2018-10-02 13:38:55 -07:00
ipcbuf.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
kvm.h KVM: PPC: Book3S HV: Add infrastructure to support 2nd DAWR 2021-02-10 14:31:08 +11:00
kvm_para.h docs: fix broken references to text files 2020-04-20 15:35:59 -06:00
mman.h Revert "powerpc/64s: Remove PROT_SAO support" 2020-08-24 14:12:53 +10:00
msgbuf.h arch: msgbuf.h: make uapi asm/msgbuf.h self-contained 2019-12-04 19:44:14 -08:00
nvram.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
opal-prd.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
papr_pdsm.h powerpc/papr_scm: Implement initial support for injecting smart errors 2022-02-16 23:10:47 +11:00
perf_event.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
perf_regs.h powerpc/perf: Expose instruction and data address registers as part of extended regs 2021-10-12 18:39:02 +11:00
posix_types.h powerpc/32: Remove powerpc specific definition of 'ptrdiff_t' 2021-04-08 21:17:46 +10:00
ps3fb.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
ptrace.h powerpc/watchpoint/ptrace: Introduce PPC_DEBUG_FEATURE_DATA_BP_ARCH_31 2020-09-15 22:13:20 +10:00
sembuf.h arch: sembuf.h: make uapi asm/sembuf.h self-contained 2019-12-04 19:44:14 -08:00
setup.h License cleanup: add SPDX license identifier to uapi header files with no license 2017-11-02 11:19:54 +01:00
shmbuf.h shmbuf.h: add asm/shmbuf.h to UAPI compile-test coverage 2022-02-17 09:09:37 +01:00
sigcontext.h powerpc/uapi: Fix sigcontext definition to use user_pt_regs 2018-10-19 15:09:04 +11:00
signal.h powerpc/64: Bump SIGSTKSZ and MINSIGSTKSZ 2022-05-19 23:11:26 +10:00
socket.h socket: Rename SO_RCVTIMEO/ SO_SNDTIMEO with _OLD suffixes 2019-02-03 11:17:31 -08:00
spu_info.h powerpc: Replace GPL boilerplate with SPDX identifiers 2019-11-13 16:58:07 +11:00
stat.h powerpc: use __kernel_{uid,gid}32_t in uapi/asm/stat.h 2022-06-02 17:38:15 +02:00
swab.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
termbits.h termbits.h: Align lines & format 2022-05-19 18:25:26 +02:00
termios.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
tm.h License cleanup: add SPDX license identifier to uapi header files with no license 2017-11-02 11:19:54 +01:00
types.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
ucontext.h License cleanup: add SPDX license identifier to uapi header files with no license 2017-11-02 11:19:54 +01:00
unistd.h powerpc: generate uapi header and system call table files 2018-12-21 14:46:50 +11:00
vas-api.h powerpc/vas: Define QoS credit flag to allocate window 2021-06-20 21:58:56 +10:00