From bc680b5a1e8320b08fb7b3c710bb4323ac33cbef Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sat, 20 Jan 2024 17:10:15 +0100 Subject: [PATCH] package/highway: fix riscv32 build Do not set -march=rv64gcv1p0 when building for riscv32 to fix the following build failure raised since bump to version 1.0.7 in commit 0db3c08daf335571a2b2d18a16d8980ddf4567ab and https://github.com/google/highway/commit/7c15872e81d88c77bca5e74fe0a6543cc374601a: cc1plus: error: ABI requires '-march=rv32' Fixes: - http://autobuild.buildroot.org/results/3f8def50c93f73c26339f72d6a13951d5fb41c30 Signed-off-by: Fabrice Fontaine Signed-off-by: Yann E. MORIN --- ...1-add-required-RISC-V-flags-to-CMake.patch | 42 +++++++++++++++++++ package/highway/highway.mk | 4 ++ 2 files changed, 46 insertions(+) create mode 100644 package/highway/0001-add-required-RISC-V-flags-to-CMake.patch diff --git a/package/highway/0001-add-required-RISC-V-flags-to-CMake.patch b/package/highway/0001-add-required-RISC-V-flags-to-CMake.patch new file mode 100644 index 0000000000..bfcbfb055c --- /dev/null +++ b/package/highway/0001-add-required-RISC-V-flags-to-CMake.patch @@ -0,0 +1,42 @@ +From 5d58d233fbcec0c6a39df8186a877329147324b3 Mon Sep 17 00:00:00 2001 +From: Mathieu Malaterre +Date: Wed, 13 Sep 2023 08:37:54 +0200 +Subject: [PATCH] Add an option to opt-out of HWY_RISCV + +Fixes #1740 + +Upstream: https://github.com/google/highway/commit/5d58d233fbcec0c6a39df8186a877329147324b3 +Signed-off-by: Fabrice Fontaine +--- + CMakeLists.txt | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c2bf57b3f5..be639c945f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -61,6 +61,9 @@ set(HWY_CMAKE_ARM7 OFF CACHE BOOL "Set copts for Armv7 with NEON (requires vfpv4 + # 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?") + ++# Currently this will compile the entire codebase with `-march=rv64gcv1p0`: ++set(HWY_CMAKE_RVV ON CACHE BOOL "Set copts for RISCV with RVV?") ++ + # Unconditionally adding -Werror risks breaking the build when new warnings + # arise due to compiler/platform changes. Enable this in CI/tests. + set(HWY_WARNINGS_ARE_ERRORS OFF CACHE BOOL "Add -Werror flag?") +@@ -260,9 +263,11 @@ else() + # gcc(13) and recent clang both support V, but not yet runtime dispatch, so + # we add the gcv compiler flag, which then requires the CPU (now when using + # either compiler) to support V. +- list(APPEND HWY_FLAGS -march=rv64gcv1p0) +- if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") +- list(APPEND HWY_FLAGS -menable-experimental-extensions) ++ if(HWY_CMAKE_RVV) ++ list(APPEND HWY_FLAGS -march=rv64gcv1p0) ++ if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") ++ list(APPEND HWY_FLAGS -menable-experimental-extensions) ++ endif() + endif() + endif() + diff --git a/package/highway/highway.mk b/package/highway/highway.mk index bb87e5fc0d..b45fa8df74 100644 --- a/package/highway/highway.mk +++ b/package/highway/highway.mk @@ -41,6 +41,10 @@ else HIGHWAY_CONF_OPTS += -DHWY_CMAKE_ARM7=OFF endif +ifeq ($(BR2_RISCV_32),y) +HIGHWAY_CONF_OPTS += -DHWY_CMAKE_RVV=OFF +endif + # Workaround for gcc bug 104028 on m68k. # See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104028 ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_104028),y)