On 11/11/2019 16:13, Matthew Malcomson wrote: > On 07/11/2019 18:37, Matthew Malcomson wrote: >> I have rebased this series onto Martin Liska's patches that take the most >> recent libhwasan from upstream LLVM. >> https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00340.html >> >> I've also cleared up some nomenclature (I had previously used the word >> 'colour' >> a few times instead of the word 'tag' and that clashes with other >> descriptions) >> and based the patch series off a more recent GCC revision (r277678). >> >> There's an ongoing discussion on whether to have __SANITIZER_ADDRESS__, or >> __SANITIZER_HWADDRESS__, but I'm keeping that discussion to the existing >> thread. >> >> Similarly there's still the question around C++ exceptions that I'm keeping >> to >> the existing thread (on the first patch series). >> >> >> NOTE: >> Unfortunately, there's a bug in the more recent version of GCC I rebased >> onto. >> Hwasan catches this when bootstrapping, which means bootstrapping with >> hwasan >> fails. >> I'm working on tracking the bug down now, but sending this series >> upstream >> for visibility while that happens. >> >> Bugzilla link: >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92410 >> >> Entire patch series attached to cover letter. >> > > It seems that PR 92410 is a little more extensive than it originally > looked (in fixing it I saw instances of the same basic problem elsewhere > too). > > Just in case anyone wants to take a look at this HWASAN series in the > meantime there are two ways: > > 1) Bootstrap with hwasan not crashing on error. > > 2) Apply the last patch I posted on > http://pdtlreviewboard.cambridge.arm.com/r/12149/
Oops -- clipboard didn't have what I thought it did. I meant https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92410 here. > > > Number 1 requires the patch below and to run make with HWASAN_OPTIONS > set to "halt_on_error=0 exitcode=0". > > diff --git a/config/bootstrap-hwasan.mk b/config/bootstrap-hwasan.mk > index 91989f4..3672b91 100644 > --- a/config/bootstrap-hwasan.mk > +++ b/config/bootstrap-hwasan.mk > @@ -4,8 +4,8 @@ > # breaks. Running with a random frame tag gives approx. 50% chance of > # bootstrap comparison diff in libiberty/alloca.c. > > -STAGE2_CFLAGS += -fsanitize=hwaddress --param hwasan-random-frame-tag=0 > -STAGE3_CFLAGS += -fsanitize=hwaddress --param hwasan-random-frame-tag=0 > +STAGE2_CFLAGS += -fsanitize-recover=hwaddress -fsanitize=hwaddress > --param hwasan-random-frame-tag=0 > +STAGE3_CFLAGS += -fsanitize-recover=hwaddress -fsanitize=hwaddress > --param hwasan-random-frame-tag=0 > POSTSTAGE1_LDFLAGS += -fsanitize=hwaddress -static-libhwasan \ > -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/ \ > -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/hwasan/ \ > > > > > Number 2 option avoids the current problem, but causes two extra > testsuite failures (unrelated to hwasan) in gcc.dg/fold-eqandshift-1.c > and gcc.c-torture/compile/pr32482.c. > These are existing bugs that a new `assert` catches. >