Blob Blame History Raw
From 943edf5bc8079fee8806af6a902852dc22b5db3c Mon Sep 17 00:00:00 2001
From: Joe Lawrence <joe.lawrence@redhat.com>
Date: Thu, 10 Oct 2024 17:09:46 -0400
Subject: [PATCH 103/118] aarch64: kpatch-build aarch64 implementation

TODO

Signed-off-by: Suraj Jitindar Singh <surajjs@amazon.com>
Signed-off-by: Pete Swain <swine@google.com>
Signed-off-by: Mihails Strasuns <mstrasun@amazon.com>
Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
---
 kpatch-build/Makefile     | 2 +-
 kpatch-build/kpatch-build | 3 +++
 kpatch-build/kpatch-cc    | 1 +
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/kpatch-build/Makefile b/kpatch-build/Makefile
index 4e964b7..1969fff 100644
--- a/kpatch-build/Makefile
+++ b/kpatch-build/Makefile
@@ -21,7 +21,7 @@ PLUGIN_CFLAGS := $(filter-out -std=gnu11 -Wconversion, $(CFLAGS))
 PLUGIN_CFLAGS += -shared -I$(GCC_PLUGINS_DIR)/include \
 		   -Igcc-plugins -fPIC -fno-rtti -O2 -Wall
 endif
-ifeq ($(filter $(ARCH),s390x x86_64 ppc64le),)
+ifeq ($(filter $(ARCH),aarch64 s390x x86_64 ppc64le),)
 $(error Unsupported architecture ${ARCH}, check https://github.com/dynup/kpatch/#supported-architectures)
 endif
 
diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build
index bc112fc..643d85c 100755
--- a/kpatch-build/kpatch-build
+++ b/kpatch-build/kpatch-build
@@ -382,6 +382,9 @@ find_special_section_data() {
 
 	# Arch-specific features
 	case "$ARCH" in
+		"aarch64")
+			check[a]=true					# alt_instr
+			;;
 		"x86_64")
 			check[a]=true					# alt_instr
 			kernel_version_gte 5.10.0 && check[s]=true	# static_call_site
diff --git a/kpatch-build/kpatch-cc b/kpatch-build/kpatch-cc
index 17aae25..5456179 100755
--- a/kpatch-build/kpatch-cc
+++ b/kpatch-build/kpatch-cc
@@ -31,6 +31,7 @@ if [[ "$TOOLCHAINCMD" =~ ^(.*-)?gcc$ || "$TOOLCHAINCMD" =~ ^(.*-)?clang$ ]] ; th
 				vmlinux.o|\
 				.tmp_kallsyms1.o|\
 				.tmp_kallsyms2.o|\
+				arch/arm64/kernel/vdso*/*|\
 				arch/x86/boot/*|\
 				arch/x86/entry/vdso/*|\
 				arch/x86/purgatory/*|\
-- 
2.48.1