From fb93d3ff8b63bdfdf88a8f25a715f816a52d5dd8 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Mon, 13 Dec 2021 14:50:06 +1000
Subject: [PATCH] loader/aarch64: attempt to avoid text relocations in the
unknown code
The commit below added a TEXTREL into the loader library, TEXTRELs
and security people don't get on well, so we'd like to avoid that.
This is my attempt at fixing it, I'm not an aarch64 expert at all,
so I'd really appreciate someone who is to take a look.
Fixes: 4f78f14c0533 ("loader: Add aarch64 unknown ext chain implementation")
---
loader/unknown_ext_chain_gas_aarch64.S | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/loader/unknown_ext_chain_gas_aarch64.S b/loader/unknown_ext_chain_gas_aarch64.S
index 1e065007d..a1fa46205 100644
--- a/loader/unknown_ext_chain_gas_aarch64.S
+++ b/loader/unknown_ext_chain_gas_aarch64.S
@@ -50,7 +50,8 @@ terminError\num:
mov x0, x11 // Vulkan instance pointer (first arg)
mov x1, VK_DEBUG_REPORT_ERROR_BIT_EXT // The error logging bit (second arg)
mov x2, #0 // Zero (third arg)
- ldr x3, =termin_error_string // The error string (fourth arg)
+ adrp x9, termin_error_string
+ ldr x3, [x9, #:lo12:termin_error_string] // The error string (fourth arg)
ldr x4, [x11, x10] // The function name (fifth arg)
bl loader_log // Log the error message before we crash
mov x0, #0
--
2.33.1