From 232f6e9ade89cfb3c7b07259b4a42352a024c516 Mon Sep 17 00:00:00 2001
From: 4lDO2 <4lDO2@protonmail.com>
Date: Fri, 19 Jul 2024 18:44:21 +0200
Subject: [PATCH] Fix hardcoding of SUPPORTS_AVX.

---
 redox-rt/src/arch/x86_64.rs | 2 +-
 redox-rt/src/signal.rs      | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/redox-rt/src/arch/x86_64.rs b/redox-rt/src/arch/x86_64.rs
index 541fc1bf..07af5254 100644
--- a/redox-rt/src/arch/x86_64.rs
+++ b/redox-rt/src/arch/x86_64.rs
@@ -428,7 +428,7 @@ pub unsafe fn arch_pre(stack: &mut SigStack, area: &mut SigArea) {
     }
 }
 
-static SUPPORTS_AVX: AtomicU8 = AtomicU8::new(1); // FIXME
+pub(crate) static SUPPORTS_AVX: AtomicU8 = AtomicU8::new(0);
 
 // __relibc will be prepended to the name, so mangling is fine
 #[no_mangle]
diff --git a/redox-rt/src/signal.rs b/redox-rt/src/signal.rs
index 0aac7edc..b07bda6b 100644
--- a/redox-rt/src/signal.rs
+++ b/redox-rt/src/signal.rs
@@ -491,6 +491,7 @@ pub fn setup_sighandler(tcb: &RtTcb) {
     {
         let cpuid_eax1_ecx = unsafe { core::arch::x86_64::__cpuid(1) }.ecx;
         CPUID_EAX1_ECX.store(cpuid_eax1_ecx, core::sync::atomic::Ordering::Relaxed);
+        SUPPORTS_AVX.store(u8::from(cpuid_eax1_ecx & 1 << 28 != 0), Ordering::Relaxed);
     }
 
     let data = current_setsighandler_struct();
-- 
GitLab