Statically link el2.o (fails to link vmlinux)

Signed-off-by: David Brazdil <dbrazdil@google.com>
diff --git a/arch/arm64/kvm/hyp/nvhe/Makefile b/arch/arm64/kvm/hyp/nvhe/Makefile
index 65e9b3d..c08f37b 100644
--- a/arch/arm64/kvm/hyp/nvhe/Makefile
+++ b/arch/arm64/kvm/hyp/nvhe/Makefile
@@ -17,9 +17,10 @@
 hyp-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \
 	 ../fpsimd.o ../hyp-entry.o
 hyp-y += $(lib-objs)
+hyp-y += stubs.o
 
 hyp-y := $(patsubst %.o,%.hyp.o,$(hyp-y))
-extra-y := $(patsubst %.hyp.o,%.hyp.tmp.o,$(hyp-y))
+extra-y := $(patsubst %.hyp.o,%.hyp.tmp.o,$(hyp-y)) el2.o
 
 $(obj)/%.hyp.tmp.o: $(src)/%.c FORCE
 	$(call if_changed_rule,cc_o_c)
@@ -27,7 +28,7 @@
 	$(call if_changed_rule,as_o_S)
 $(obj)/%.hyp.o: $(obj)/%.hyp.tmp.o FORCE
 	$(call if_changed,hypcopy)
-LDFLAGS_el2.o := --relocatable
+
 $(obj)/el2.o: $(addprefix $(obj)/,$(hyp-y)) FORCE
 	$(call if_changed,ld)
 
diff --git a/arch/arm64/kvm/hyp/nvhe/stubs.c b/arch/arm64/kvm/hyp/nvhe/stubs.c
new file mode 100644
index 0000000..0a76359
--- /dev/null
+++ b/arch/arm64/kvm/hyp/nvhe/stubs.c
@@ -0,0 +1,39 @@
+char __hyp_panic_string[] = "__hyp_panic_string";
+void panic(const char *fmt, ...) {}
+
+unsigned long __hyp_stub_vectors;
+unsigned long idmap_t0sz;
+unsigned long kimage_voffset;
+
+unsigned long __per_cpu_start;
+unsigned long __per_cpu_end;
+
+unsigned long __start_rodata;
+unsigned long  __end_rodata;
+unsigned long  __bss_start;
+unsigned long  __bss_stop;
+
+unsigned long  __hyp_idmap_text_start;
+unsigned long  __hyp_idmap_text_end;
+unsigned long  __hyp_text_start;
+unsigned long  __hyp_text_end;
+unsigned long  __hyp_bss_start;
+unsigned long  __hyp_bss_end;
+
+void arm64_enable_wa2_handling() {}
+void kvm_patch_vector_branch() {}
+void kvm_update_va_mask() {}
+void sve_save_state() {}
+void sve_load_state() {}
+
+// /* Data shared with the kernel. */
+unsigned long  cpu_hwcaps;
+unsigned long  cpu_hwcap_keys;
+unsigned long  __icache_flags;
+unsigned long  kvm_vgic_global_state;
+unsigned long  __kvm_bp_vect_base;
+
+unsigned long  arm64_const_caps_ready;
+unsigned long  gic_pmr_sync;
+unsigned long  vgic_v2_cpuif_trap;
+unsigned long  vgic_v3_cpuif_trap;