On 8/7/23 10:39, Joel Stanley wrote:
-case "$cpu" in
-  riscv*)
-    host_arch=riscv ;;
-  *)
-    host_arch="$cpu" ;;
-esac
-
  # Normalise host CPU name and set multilib cflags.  The canonicalization
  # isn't really necessary, because the architectures that we check for
  # should not hit the 'uname -m' case, but better safe than sorry.
@@ -508,6 +501,9 @@ case "$cpu" in
      cpu="ppc64"
      CPU_CFLAGS="-m64 -mlittle-endian" ;;
+ riscv*)
+    cpu="riscv" ;;
+

This is also wrong because it confuses riscv32 and riscv64, which matters both for tests/tcg, and when creating the Meson cross file[1]

Instead, the "case $cpu" that sets $host_arch must be placed after $cpu is canonicalized (and possibly just before $host_arch is used to find linux-user).

Even better, there is already a variable $linux_arch that has the same meaning. I'll send a patch to unify the two.

Paolo

[1] https://mesonbuild.com/Reference-tables.html#cpu-families
    s390)
      CPU_CFLAGS="-m31" ;;
    s390x)
@@ -810,7 +806,7 @@ default_target_list=""
  mak_wilds=""
if [ "$linux_user" != no ]; then
-    if [ "$targetos" = linux ] && [ -d 
"$source_path/linux-user/include/host/$host_arch" ]; then
+    if [ "$targetos" = linux ] && [ -d 
"$source_path/linux-user/include/host/$cpu" ]; then
          linux_user=yes
      elif [ "$linux_user" = yes ]; then


Reply via email to