The CPU model has to be canonicalized to what Meson wants in the cross file, to what Linux uses for its asm-$ARCH directories, and to what QEMU uses for its user-mode emulation host/$ARCH directories. Do all three in a single case statement, and check that the Linux and QEMU directories actually exist.
At a small cost in repeated lines, this ensures that there are no hidden ordering requirements between the case statements. In particular, commit 89e5b7935e9 ("configure: Fix linux-user host detection for riscv64", 2023-08-06) broke ppc64le because it assigned host_arch based on a non-canonicalized version of $cpu. While doing this, I noticed that linux-user won't work on x32, alpha and 32-bit s390 these days, due to missing common-user/ fragments. The first two patches clean up the directories. v1->v2: fix s390x compilation; rearrange case terminators Paolo Bonzini (3): configure: fix detection for x32 linux-user linux-user: cleanup unused linux-user/include/host directories configure: unify case statements for CPU canonicalization configure | 173 ++++++++++++-------- linux-user/include/host/alpha/host-signal.h | 55 ------- linux-user/include/host/s390/host-signal.h | 138 ---------------- linux-user/include/host/s390x/host-signal.h | 139 +++++++++++++++- linux-user/include/host/x32/host-signal.h | 1 - 5 files changed, 240 insertions(+), 266 deletions(-) delete mode 100644 linux-user/include/host/alpha/host-signal.h delete mode 100644 linux-user/include/host/s390/host-signal.h delete mode 100644 linux-user/include/host/x32/host-signal.h -- 2.41.0