configure | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
While when building on native Linux the host architecture
is reported as "riscv32" or "riscv64":
Host machine cpu family: riscv64
Host machine cpu: riscv64
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Since commit ba0e733362 ("configure: Merge riscv32 and riscv64
host architectures"), when cross-compiling it is detected as
"riscv". Meson handles the cross-detection but displays a warning:
WARNING: Unknown CPU family riscv, please report this at https://github.com/mesonbuild/meson/issues/new
Host machine cpu family: riscv
Host machine cpu: riscv
Target machine cpu family: riscv
Target machine cpu: riscv
Found pkg-config: /usr/bin/riscv64-linux-gnu-pkg-config (1.8.1)
Now since commit 278c1bcef5 ("target/riscv: Only unify 'riscv32/64'
-> 'riscv' for host cpu in meson") Meson expects the cpu to be in
[riscv32, riscv64]. So when cross-building (for example on our
cross-riscv64-system Gitlab-CI job) we get:
WARNING: Unknown CPU family riscv, please report this at https://github.com/mesonbuild/meson/issues/new
Host machine cpu family: riscv
Host machine cpu: riscv
Target machine cpu family: riscv
Target machine cpu: riscv
../meson.build:684:6: ERROR: Problem encountered: Unsupported CPU riscv, try --enable-tcg-interpreter
Fix by partially revert commit ba0e733362 so when cross-building
the ./configure script passes the proper host architecture to meson.
Fixes: ba0e733362 ("configure: Merge riscv32 and riscv64 host architectures")
Fixes: 278c1bcef5 ("target/riscv: Only unify 'riscv32/64' -> 'riscv' for host cpu in meson")
Reported-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
v4: pass from configure
---
configure | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index 2b41c49c0d..dffd44c059 100755
--- a/configure
+++ b/configure
@@ -451,7 +451,11 @@ elif check_define __s390__ ; then
cpu="s390"
fi
elif check_define __riscv ; then
- cpu="riscv"
+ if check_define _LP64 ; then
+ cpu="riscv64"
+ else
+ cpu="riscv32"
+ fi
elif check_define __arm__ ; then
cpu="arm"
elif check_define __aarch64__ ; then
--
2.38.1
On 7/11/23 12:06, Philippe Mathieu-Daudé wrote:
> While when building on native Linux the host architecture
> is reported as "riscv32" or "riscv64":
>
> Host machine cpu family: riscv64
> Host machine cpu: riscv64
> Found pkg-config: /usr/bin/pkg-config (0.29.2)
>
> Since commit ba0e733362 ("configure: Merge riscv32 and riscv64
> host architectures"), when cross-compiling it is detected as
> "riscv". Meson handles the cross-detection but displays a warning:
>
> WARNING: Unknown CPU family riscv, please report this at https://github.com/mesonbuild/meson/issues/new
> Host machine cpu family: riscv
> Host machine cpu: riscv
> Target machine cpu family: riscv
> Target machine cpu: riscv
> Found pkg-config: /usr/bin/riscv64-linux-gnu-pkg-config (1.8.1)
>
> Now since commit 278c1bcef5 ("target/riscv: Only unify 'riscv32/64'
> -> 'riscv' for host cpu in meson") Meson expects the cpu to be in
> [riscv32, riscv64]. So when cross-building (for example on our
> cross-riscv64-system Gitlab-CI job) we get:
>
> WARNING: Unknown CPU family riscv, please report this at https://github.com/mesonbuild/meson/issues/new
> Host machine cpu family: riscv
> Host machine cpu: riscv
> Target machine cpu family: riscv
> Target machine cpu: riscv
> ../meson.build:684:6: ERROR: Problem encountered: Unsupported CPU riscv, try --enable-tcg-interpreter
>
> Fix by partially revert commit ba0e733362 so when cross-building
> the ./configure script passes the proper host architecture to meson.
>
> Fixes: ba0e733362 ("configure: Merge riscv32 and riscv64 host architectures")
> Fixes: 278c1bcef5 ("target/riscv: Only unify 'riscv32/64' -> 'riscv' for host cpu in meson")
> Reported-by: Richard Henderson <richard.henderson@linaro.org>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> v4: pass from configure
Applied to master.
r~
> ---
> configure | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 2b41c49c0d..dffd44c059 100755
> --- a/configure
> +++ b/configure
> @@ -451,7 +451,11 @@ elif check_define __s390__ ; then
> cpu="s390"
> fi
> elif check_define __riscv ; then
> - cpu="riscv"
> + if check_define _LP64 ; then
> + cpu="riscv64"
> + else
> + cpu="riscv32"
> + fi
> elif check_define __arm__ ; then
> cpu="arm"
> elif check_define __aarch64__ ; then
© 2016 - 2025 Red Hat, Inc.