kpatch/kpatch-build
Kamalesh Babulal 67aa131137 gcc-plugin: GCC 10 - update local/non local insn names
Kernel livepatching modules build on GCC 10, with patched functions
referring to local function would fail to load with the error:
 module_64: livepatch_ext4_cond_resched: Expected nop after call, got 7fe5fb78 at ext4_setup_system_zone+0x460/0xc90 [livepatch_ext4_cond_resched]

for more details on the error, refer to discussion at:
 https://lkml.kernel.org/r/1508217523-18885-1-git-send-email-kamalesh@linux.vnet.ibm.com

the reason was that the gcc-plugin would skip the pass on error, failing
to convert the local calls into global, i.e on ppc64le every global call
is followed by a nop instruction, that gets replaced by the kernel to
restore
the TOC/r2 value of the callee, while parsing the relocations and would
skip the TOC restoration for local functions, where the TOC remains the
same across sibling functions.

GCC 10 commit 07c48b61a082("[RS6000] Put call cookie back in AIX/ELFv2
call patterns") merged a couple of call codes definition, breaking the
plugin.  Change the plugin codes to match the GCC 10 codes.

Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
2020-06-12 13:27:06 +05:30
..
gcc-plugins gcc-plugin: GCC 10 - update local/non local insn names 2020-06-12 13:27:06 +05:30
insn insn: get it to compile in create-diff-object 2014-05-30 15:19:57 -05:00
create-diff-object.c create-diff-object: Add ppc64le mcount support 2020-05-18 08:35:33 -04:00
create-klp-module.c lookup: rename 'pos' to 'sympos' 2020-04-06 15:18:58 -05:00
create-kpatch-module.c kpatch-build: Detect R_X86_64_64 dynrelas with large addends 2020-05-05 23:21:16 +03:00
kpatch-build create-diff-object: add support for .klp.arch removal 2020-04-14 12:44:04 -05:00
kpatch-elf.c kpatch-build: Allow function to have multiple child functions 2020-03-30 14:14:17 +01:00
kpatch-elf.h kpatch-build: Allow function to have multiple child functions 2020-03-30 14:14:17 +01:00
kpatch-gcc Making kpatch-build compatible with custom gcc names 2019-05-09 19:15:11 +02:00
kpatch-intermediate.h lookup: rename 'pos' to 'sympos' 2020-04-06 15:18:58 -05:00
kpatch.h kpatch-build: add exit status enum 2018-06-15 07:11:48 -04:00
list.h new .fixup group size algorithm 2014-09-15 14:54:57 -05:00
log.h kpatch-build: add exit status enum 2018-06-15 07:11:48 -04:00
lookup.c lookup: fix Module.symvers reading for newer kernels 2020-04-14 12:44:00 -05:00
lookup.h create-diff-object: refactor dynrela conversion 2020-04-06 15:18:58 -05:00
Makefile kpatch-build/Makefile: Skip build insn/plugin with -Wconversion 2020-01-23 12:59:38 +05:30