[kvm-unit-tests PATCH v6 30/32] arm64: debug: Make inline assembly symbols global

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



efi binaries need to be compiled with fPIC. To allow symbols defined in
inline assembly to be correctly resolved, this patch makes them globally
visibile to the linker.

Signed-off-by: Nikos Nikoleris <nikos.nikoleris@xxxxxxx>
---
 arm/debug.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/arm/debug.c b/arm/debug.c
index b3e9749c..572786a9 100644
--- a/arm/debug.c
+++ b/arm/debug.c
@@ -292,11 +292,14 @@ static noinline void test_hw_bp(bool migrate)
 	hw_bp_idx = 0;
 
 	/* Trap on up to 16 debug exception unmask instructions. */
-	asm volatile("hw_bp0:\n"
-	     "msr daifclr, #8; msr daifclr, #8; msr daifclr, #8; msr daifclr, #8\n"
-	     "msr daifclr, #8; msr daifclr, #8; msr daifclr, #8; msr daifclr, #8\n"
-	     "msr daifclr, #8; msr daifclr, #8; msr daifclr, #8; msr daifclr, #8\n"
-	     "msr daifclr, #8; msr daifclr, #8; msr daifclr, #8; msr daifclr, #8\n");
+	asm volatile(
+		".globl hw_bp0\n"
+		"hw_bp0:\n"
+			"msr daifclr, #8; msr daifclr, #8; msr daifclr, #8; msr daifclr, #8\n"
+			"msr daifclr, #8; msr daifclr, #8; msr daifclr, #8; msr daifclr, #8\n"
+			"msr daifclr, #8; msr daifclr, #8; msr daifclr, #8; msr daifclr, #8\n"
+			"msr daifclr, #8; msr daifclr, #8; msr daifclr, #8; msr daifclr, #8\n"
+		);
 
 	for (i = 0, addr = (uint64_t)&hw_bp0; i < num_bp; i++, addr += 4)
 		report(hw_bp_addr[i] == addr, "hw breakpoint: %d", i);
@@ -367,11 +370,14 @@ static noinline void test_ss(bool migrate)
 
 	asm volatile("msr daifclr, #8");
 
-	asm volatile("ss_start:\n"
+	asm volatile(
+		".globl ss_start\n"
+		"ss_start:\n"
 			"mrs x0, esr_el1\n"
 			"add x0, x0, #1\n"
 			"msr daifset, #8\n"
-			: : : "x0");
+			: : : "x0"
+		);
 
 	report(ss_addr[0] == (uint64_t)&ss_start, "single step");
 }
-- 
2.25.1




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux