On Wed, Jan 17, 2024 at 8:51 PM Hongtao Liu <crazy...@gmail.com> wrote: > > On Wed, Jan 10, 2024 at 12:47 AM H.J. Lu <hjl.to...@gmail.com> wrote: > > > > When -fsanitize=hwaddress is used, libhwasan will try to enable LAM_U57 > > in the startup code. Update the target check to enable hwaddress tests > > if LAM_U57 is enabled. Also compile hwaddress tests with -mlam=u57 on > > x86-64 since hwasan requires LAM_U57 on x86-64. > I've tested it on lam enabled SRF, and it passed all hwasan testcases > except below > > FAIL: c-c++-common/hwasan/alloca-outside-caught.c -O0 output pattern test > FAIL: c-c++-common/hwasan/hwasan-poison-optimisation.c -O1 > scan-assembler-times bl > s*__hwasan_tag_mismatch4 1 > FAIL: c-c++-common/hwasan/hwasan-poison-optimisation.c -O2 > scan-assembler-times bl > s*__hwasan_tag_mismatch4 1 > FAIL: c-c++-common/hwasan/hwasan-poison-optimisation.c -O3 -g > scan-assembler-times bl > s*__hwasan_tag_mismatch4 1 > FAIL: c-c++-common/hwasan/hwasan-poison-optimisation.c -Os > scan-assembler-times bl > s*__hwasan_tag_mismatch4 1 > FAIL: c-c++-common/hwasan/hwasan-poison-optimisation.c -O2 -flto > -fno-use-linker-plugin -flto-partition=none scan-assembler-times bl > s*__hwasan_tag_mismatch4 1 > FAIL: c-c++-common/hwasan/hwasan-poison-optimisation.c -O2 -flto > -fuse-linker-plugin -fno-fat-lto-objects scan-assembler-times bl > s*__hwasan_tag_mismatch4 1 > FAIL: c-c++-common/hwasan/vararray-outside-caught.c -O0 output pattern test > > Basically they're testcase issues, the testcases needs to be adjusted > for x86/ I'll commit a separate patch for those after this commit is > upstream. > Also I've also tested the patch on lam unsupported platforms, all > hwasan testcases shows unsupported. > So the patch LGTM. > > > > > * lib/hwasan-dg.exp (check_effective_target_hwaddress_exec): > > Return 1 if Intel LAM_U57 is enabled. > > (hwasan_init): Add -mlam=u57 on x86-64.
Pushed. LAM has been enabled in GCC 13: [hjl@gnu-cfl-3 tmp]$ gcc -fsanitize=hwaddress -mlam=u57 alloca-outside-caught.c [hjl@gnu-cfl-3 tmp]$ ./a.out FATAL: HWAddressSanitizer requires a kernel with tagged address ABI. [hjl@gnu-cfl-3 tmp]$ strace ./a.out ... arch_prctl(ARCH_GET_MAX_TAG_BITS, 0x7ffc56267708) = 0 write(2, "FATAL: HWAddressSanitizer requir"..., 69FATAL: HWAddressSanitizer requires a kernel with tagged address ABI. I'd like to backport it to GCC 13. We should mention LAM in changes for GCC 13. -- H.J.