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.

Reply via email to