From: Mark Wielaard Date: Fri, 11 Feb 2022 16:50:47 +0000 (+0100) Subject: arm64: Mismatch detected between RDMA and atomics features X-Git-Tag: VALGRIND_3_19_0~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=13427e2ae745f9c5a665174b245d6dcebcf159d9;p=thirdparty%2Fvalgrind.git arm64: Mismatch detected between RDMA and atomics features check_hwcaps contains code that tries to enforce Arm architecture's rules for the support of features (FEAT_) on v8.1. Specifically for v8.1 FEAT_RDM and FEAT_LSE (named FEAT_ATOMICS in Valgrind) are mandatory. But an v8.x implementation can implement any of the v8.{x+1} features, or not, as it chooses. Also under QEMU, which tends to implement features on an "as-demanded" basis, you sometimes end up with an odd combination of features, which does not strictly comply with the architecture. So ignore the "v8.x" architecture levels, and look only only at "is feature X present or not". Unless the features are really not independent. https://bugs.kde.org/show_bug.cgi?id=449494 --- diff --git a/VEX/priv/main_main.c b/VEX/priv/main_main.c index 1253cf5889..482047c7aa 100644 --- a/VEX/priv/main_main.c +++ b/VEX/priv/main_main.c @@ -2163,11 +2163,6 @@ static void check_hwcaps ( VexArch arch, UInt hwcaps ) if (have_fp16 != have_vfp16) invalid_hwcaps(arch, hwcaps, "Mismatch detected between scalar and vector FP16 features.\n"); - Bool have_rdm = ((hwcaps & VEX_HWCAPS_ARM64_RDM) != 0); - Bool have_atomics = ((hwcaps & VEX_HWCAPS_ARM64_ATOMICS) != 0); - if (have_rdm != have_atomics) - invalid_hwcaps(arch, hwcaps, - "Mismatch detected between RDMA and atomics features.\n"); return; }