mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-28 09:06:11 -05:00
Livepatch needs some ELF magic which linkers don't like:
- Two relocation sections (.rela*, .klp.rela*) for the same text
section.
- Use of SHN_LIVEPATCH to mark livepatch symbols.
Unfortunately linkers tend to mangle such things. To work around that,
klp diff generates a linker-compliant intermediate binary which encodes
the relevant KLP section/reloc/symbol metadata.
After module linking, the .ko then needs to be converted to an actual
livepatch module. Introduce a new klp post-link subcommand to do so.
Acked-by: Petr Mladek <pmladek@suse.com>
Tested-by: Joe Lawrence <joe.lawrence@redhat.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
34 lines
769 B
Plaintext
34 lines
769 B
Plaintext
objtool-y += arch/$(SRCARCH)/
|
|
|
|
objtool-y += weak.o
|
|
|
|
objtool-y += check.o
|
|
objtool-y += special.o
|
|
objtool-y += builtin-check.o
|
|
objtool-y += elf.o
|
|
objtool-y += objtool.o
|
|
|
|
objtool-$(BUILD_ORC) += orc_gen.o orc_dump.o
|
|
objtool-$(BUILD_KLP) += builtin-klp.o klp-diff.o klp-post-link.o
|
|
|
|
objtool-y += libstring.o
|
|
objtool-y += libctype.o
|
|
objtool-y += str_error_r.o
|
|
objtool-y += librbtree.o
|
|
|
|
$(OUTPUT)libstring.o: ../lib/string.c FORCE
|
|
$(call rule_mkdir)
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
$(OUTPUT)libctype.o: ../lib/ctype.c FORCE
|
|
$(call rule_mkdir)
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
$(OUTPUT)str_error_r.o: ../lib/str_error_r.c FORCE
|
|
$(call rule_mkdir)
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
$(OUTPUT)librbtree.o: ../lib/rbtree.c FORCE
|
|
$(call rule_mkdir)
|
|
$(call if_changed_dep,cc_o_c)
|