qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [hotfix PATCH-for-8.1 v4] configure: Fix cross-building for RISCV host
@ 2023-07-11 11:06 Philippe Mathieu-Daudé
  2023-07-11 16:36 ` Richard Henderson
  0 siblings, 1 reply; 2+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-07-11 11:06 UTC (permalink / raw)
  To: qemu-devel
  Cc: Thomas Huth, Alistair Francis, Alex Bennée, Paolo Bonzini,
	Philippe Mathieu-Daudé, Warner Losh, Daniel P. Berrangé,
	Michael Tokarev, Peter Maydell, Marc-André Lureau,
	Richard Henderson

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



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [hotfix PATCH-for-8.1 v4] configure: Fix cross-building for RISCV host
  2023-07-11 11:06 [hotfix PATCH-for-8.1 v4] configure: Fix cross-building for RISCV host Philippe Mathieu-Daudé
@ 2023-07-11 16:36 ` Richard Henderson
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Henderson @ 2023-07-11 16:36 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Thomas Huth, Alistair Francis, Alex Bennée, Paolo Bonzini,
	Warner Losh, Daniel P. Berrangé, Michael Tokarev,
	Peter Maydell, Marc-André Lureau

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



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-07-11 16:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-11 11:06 [hotfix PATCH-for-8.1 v4] configure: Fix cross-building for RISCV host Philippe Mathieu-Daudé
2023-07-11 16:36 ` Richard Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).