TCG: 0.899 graphic: 0.884 virtual: 0.877 risc-v: 0.873 PID: 0.872 register: 0.867 user-level: 0.865 peripherals: 0.859 performance: 0.849 vnc: 0.846 arm: 0.844 permissions: 0.832 ppc: 0.825 architecture: 0.824 KVM: 0.822 VMM: 0.808 hypervisor: 0.807 semantic: 0.807 debug: 0.806 x86: 0.805 assembly: 0.802 kernel: 0.790 device: 0.782 files: 0.768 socket: 0.753 network: 0.735 boot: 0.734 mistranslation: 0.667 i386: 0.653 -------------------- TCG: 0.932 arm: 0.825 architecture: 0.270 virtual: 0.169 hypervisor: 0.164 files: 0.082 user-level: 0.040 kernel: 0.027 semantic: 0.021 debug: 0.016 PID: 0.011 x86: 0.009 performance: 0.007 register: 0.006 device: 0.006 boot: 0.004 permissions: 0.003 peripherals: 0.002 socket: 0.001 VMM: 0.001 graphic: 0.001 assembly: 0.001 network: 0.001 ppc: 0.001 risc-v: 0.001 vnc: 0.001 mistranslation: 0.001 KVM: 0.000 i386: 0.000 QEMU-user doesn't report HWCAP2_MTE Reproducible on ffa090bc56e73e287a63261e70ac02c0970be61a Host Debian 5.10.24 x86_64 GNU Configured with "configure --disable-system --enable-linux-user --static" This one works and prints "OK" as expected: clang tests/tcg/aarch64/mte-3.c -target aarch64-linux-gnu -fsanitize=memtag -march=armv8+memtag qemu-aarch64 --cpu max -L /usr/aarch64-linux-gnu ./a.out && echo OK This one fails and print "0": cat mytest.c #include #include #ifndef HWCAP2_MTE #define HWCAP2_MTE (1 << 18) #endif int main(int ac, char **av) { printf("%d\n", (int)(getauxval(AT_HWCAP2) & HWCAP2_MTE)); } clang mytest.c -target aarch64-linux-gnu -fsanitize=memtag -march=armv8+memtag qemu-aarch64 --cpu max -L /usr/aarch64-linux-gnu ./a.out Actually if we make it like this: #include #include int main(int ac, char **av) { for (int i = 0; i < 32; ++i) if ((int)(getauxval(AT_HWCAP2) & (1 << i))) printf("%d\n", i); } clang mytest.c -target aarch64-linux-gnu -fsanitize=memtag -march=armv8+memtag qemu-aarch64 --cpu max -L /usr/aarch64-linux-gnu ./a.out I see only: HWCAP_FP HWCAP_CRC32 HWCAP_ATOMICS So no HWCAP2_BTI as well. Sorry, 0 7 8 should be "HWCAP2_DCPODP HWCAP2_FLAGM2 HWCAP2_FRINT" Yep, there's a whole bunch that have been missed. https://