mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
highway: Update the risc32 RVV selection patch
Use the v3 of upstream submitted patch Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
+35
-36
@@ -1,4 +1,4 @@
|
||||
From 5d40c0c49f9acde83ba71b6f59094cdbd12e1b78 Mon Sep 17 00:00:00 2001
|
||||
From b06541a75043c9a8213187fca942a0270783bd0e Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 17 Sep 2024 18:22:36 +0000
|
||||
Subject: [PATCH] Add cmake check for deducing 32bit or 64bit RISCV
|
||||
@@ -7,52 +7,49 @@ Currently its only compilable for RV64 when RVV is
|
||||
enabled, this will extend it to build for RV32 with
|
||||
RVV as well
|
||||
|
||||
Upstream-Status: Pending
|
||||
Upstream-Status: Submitted [https://github.com/google/highway/pull/2330]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
CMakeLists.txt | 36 ++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 34 insertions(+), 2 deletions(-)
|
||||
CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 35 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index ea8b330c..cd824787 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -65,6 +65,34 @@ if (NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE RelWithDebInfo)
|
||||
@@ -59,6 +59,33 @@ if(CHECK_PIE_SUPPORTED)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
+include(CheckCSourceCompiles)
|
||||
+if (CMAKE_CXX_COMPILER_ARCHITECTURE_ID MATCHES "RISCV32|RISCV64|RISCV128" OR CMAKE_SYSTEM_PROCESSOR MATCHES "riscv32|riscv64|riscv128")
|
||||
+ include(CheckCSourceCompiles)
|
||||
+ check_c_source_compiles("
|
||||
+ #if __riscv_xlen == 64
|
||||
+ int main() { return 0; }
|
||||
+ #else
|
||||
+ #error Not RISCV-64
|
||||
+ #endif
|
||||
+ " IS_RISCV_XLEN_64)
|
||||
+
|
||||
+check_c_source_compiles("
|
||||
+#if __riscv_xlen == 64
|
||||
+int main() { return 0; }
|
||||
+#else
|
||||
+#error Not RISCV-64
|
||||
+#endif
|
||||
+" IS_RISCV_XLEN_64)
|
||||
+ check_c_source_compiles("
|
||||
+ #if __riscv_xlen == 32
|
||||
+ int main() { return 0; }
|
||||
+ #else
|
||||
+ #error Not RISCV-32
|
||||
+ #endif
|
||||
+ " IS_RISCV_XLEN_32)
|
||||
+
|
||||
+check_c_source_compiles("
|
||||
+#if __riscv_xlen == 32
|
||||
+int main() { return 0; }
|
||||
+#else
|
||||
+#error Not RISCV-32
|
||||
+#endif
|
||||
+" IS_RISCV_XLEN_32)
|
||||
+
|
||||
+if(IS_RISCV_XLEN_32)
|
||||
+ set(RISCV_XLEN 32)
|
||||
+elseif(IS_RISCV_XLEN_64)
|
||||
+ set(RISCV_XLEN 64)
|
||||
+else()
|
||||
+ message(WARNING "Unable to determine RISC-V XLEN")
|
||||
+ if(IS_RISCV_XLEN_32)
|
||||
+ set(RISCV_XLEN 32)
|
||||
+ elseif(IS_RISCV_XLEN_64)
|
||||
+ set(RISCV_XLEN 64)
|
||||
+ else()
|
||||
+ message(WARNING "Unable to determine RISC-V XLEN")
|
||||
+ endif()
|
||||
+endif()
|
||||
+
|
||||
+message(STATUS "RISC-V XLEN: ${RISCV_XLEN}")
|
||||
+
|
||||
# The following is only required with GCC < 6.1.0 or CLANG < 16.0
|
||||
set(HWY_CMAKE_ARM7 OFF CACHE BOOL "Set copts for Armv7 with NEON (requires vfpv4)?")
|
||||
include(GNUInstallDirs)
|
||||
|
||||
@@ -72,7 +100,7 @@ set(HWY_CMAKE_ARM7 OFF CACHE BOOL "Set copts for Armv7 with NEON (requires vfpv4
|
||||
if (NOT CMAKE_BUILD_TYPE)
|
||||
@@ -72,7 +99,7 @@ set(HWY_CMAKE_ARM7 OFF CACHE BOOL "Set c
|
||||
# skipped. For GCC 13.1+, you can also build with -fexcess-precision=standard.
|
||||
set(HWY_CMAKE_SSE2 OFF CACHE BOOL "Set SSE2 as baseline for 32-bit x86?")
|
||||
|
||||
@@ -61,15 +58,17 @@ index ea8b330c..cd824787 100644
|
||||
set(HWY_CMAKE_RVV ON CACHE BOOL "Set copts for RISCV with RVV?")
|
||||
|
||||
# Unconditionally adding -Werror risks breaking the build when new warnings
|
||||
@@ -378,7 +406,11 @@ else()
|
||||
@@ -378,7 +405,13 @@ else()
|
||||
# we add the gcv compiler flag, which then requires the CPU (now when using
|
||||
# either compiler) to support V.
|
||||
if(HWY_CMAKE_RVV)
|
||||
- list(APPEND HWY_FLAGS -march=rv64gcv1p0)
|
||||
+ if(RISCV_XLEN EQUAL 64)
|
||||
+ list(APPEND HWY_FLAGS -march=rv64gcv1p0)
|
||||
+ add_link_options(-march=rv64gcv1p0)
|
||||
+ elseif(RISCV_XLEN EQUAL 32)
|
||||
+ list(APPEND HWY_FLAGS -march=rv32gcv1p0)
|
||||
+ add_link_options(-march=rv32gcv1p0)
|
||||
+ endif()
|
||||
if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
|
||||
list(APPEND HWY_FLAGS -menable-experimental-extensions)
|
||||
|
||||
Reference in New Issue
Block a user