[Buildroot] [git commit] package/highway: fix riscv32 build

Yann E. MORIN yann.morin.1998 at free.fr
Sun Jan 21 19:24:15 UTC 2024


commit: https://git.buildroot.net/buildroot/commit/?id=bc680b5a1e8320b08fb7b3c710bb4323ac33cbef
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

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 <fontaine.fabrice at gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
---
 .../0001-add-required-RISC-V-flags-to-CMake.patch  | 42 ++++++++++++++++++++++
 package/highway/highway.mk                         |  4 +++
 2 files changed, 46 insertions(+)

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 <mathieu.malaterre at gmail.com>
+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 <fontaine.fabrice at gmail.com>
+---
+ 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)



More information about the buildroot mailing list