From 6262c4ae503d77c9f2665c4911abbfaeb237cf49 Mon Sep 17 00:00:00 2001 From: Anhad Singh Date: Mon, 1 Dec 2025 14:25:55 +1100 Subject: [PATCH] fix(ld_so): getting TP on linux `ARCH_GET_FS` is x86_64 specific. On aarch64 it is not platform specific and just need to read out the TP from `TPIDR_EL0` Signed-off-by: Anhad Singh --- src/ld_so/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ld_so/mod.rs b/src/ld_so/mod.rs index 5b20a70798..9e75a79394 100644 --- a/src/ld_so/mod.rs +++ b/src/ld_so/mod.rs @@ -139,14 +139,14 @@ pub unsafe fn init( ) { let tp: usize; - #[cfg(target_os = "linux")] + #[cfg(all(target_os = "linux", target_arch = "x86_64"))] { const ARCH_GET_FS: usize = 0x1003; let mut val = 0usize; syscall!(ARCH_PRCTL, ARCH_GET_FS, &mut val as *mut usize); tp = val; } - #[cfg(all(target_os = "redox", target_arch = "aarch64"))] + #[cfg(target_arch = "aarch64")] unsafe { core::arch::asm!( "mrs {}, tpidr_el0",