From 2625d238e21f302130e5e5c4ec03b6207302c828 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Wed, 4 Dec 2024 10:45:34 -0800 Subject: [PATCH] arch-riscv: Remove CPU_SET use for non-linux host (#1835) For non-Linux systems, we use cpu_set_cpu. CPU_SET is a macro that is not available for non-Linux systems. Fixes #1720 --- src/arch/riscv/linux/se_workload.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/arch/riscv/linux/se_workload.cc b/src/arch/riscv/linux/se_workload.cc index d88186a2496..31328478c6b 100644 --- a/src/arch/riscv/linux/se_workload.cc +++ b/src/arch/riscv/linux/se_workload.cc @@ -257,7 +257,14 @@ get_cpu_online_mask(ThreadContext *tc) RiscvLinux::cpumask_t *cpu_online_mask = cpumask_malloc(tc); if (cpu_online_mask != nullptr) { for (int i = 0; i < tc->getSystemPtr()->threads.size(); i++) { - CPU_SET(i, (cpu_set_t *)&cpu_online_mask->bits); + #ifdef __linux__ + CPU_SET(i, (cpu_set_t *)&cpu_online_mask->bits); + #else + // For non-Linux systems, we use cpumask_set_cpu. + // CPU_SET is a macro that is not available on all + // non-Linux systems. + cpumask_set_cpu(i, cpu_online_mask); + #endif } }