I've noticed a few minor problems with this patch series after I sent it out (mostly testcase stuff, one documentation tidy-up, but also that one patch didn't bootstrap due to something fixed in a later patch).
I also rely on a documentation change that isn't part of the series. I figure I should make this easy on anyone that wants to try the patch series out, so I'm attaching a compressed tarfile containing the entire patch series plus the additional documentation patch so it can all be applied at once with `git apply *`. It's attached. Matthew. On 12/12/2019 15:18, Matthew Malcomson wrote: > Hello, > > I've gone through the suggestions Martin made and implemented the ones I > think > I can implement for GCC10. > > The two functionality changes in this version are: > Added the --param's hwasan-instrument-reads, hwasan-instrument-writes, > hwasan-instrument-allocas, hwasan-memintrin, options. I.e. Those that asan > has > and that make sense for hwasan. > > Avoided HWASAN_STACK_BACKGROUND in hwasan_increment_tag when using a > deterministic tagging approach. > > > There are a lot of extra comments and tests. > > > Bootstrapped and regtested on x86_64 and AArch64. > Bootstrapped with `--with-build-config=bootstrap-hwasan` on AArch64 and hwasan > features tested there. > Built the linux kernel using this feature and ran the test_kasan.ko testing to > check the this works for the kernel. > (NOTE: I actually did all the above testing before a search and replace of > `memory_tagging_p` for `hwasan_sanitize_p` and fixing a typo in the > `hwasan-instrument-allocas` parameter name, I will run all the tests again > before committing but figure I'll send this out now since I fully expect the > tests to still pass). > > > I noticed one extra testsuite failure from those mentioned in the previous > version emails: g++.dg/cpp2a/ucn2.C. > I believe this is HWASAN correctly catching a problem in the compiler. > I've logged the issue here https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92919 > . > > > I haven't gotten ASAN_MARK to print as HWASAN_MARK when using memory tagging, > since I'm not sure the way I found to implement this would be acceptable. The > inlined patch below works but it requires a special declaration instead of > just > an ~#include~. > > > diff --git a/gcc/internal-fn.h b/gcc/internal-fn.h > index a1bc081..d81eb12 100644 > --- a/gcc/internal-fn.h > +++ b/gcc/internal-fn.h > @@ -101,10 +101,16 @@ extern void init_internal_fns (); > > extern const char *const internal_fn_name_array[]; > > + > +extern bool hwasan_sanitize_p (void); > static inline const char * > internal_fn_name (enum internal_fn fn) > { > - return internal_fn_name_array[(int) fn]; > + const char *ret = internal_fn_name_array[(int) fn]; > + if (! strcmp (ret, "ASAN_MARK") > + && hwasan_sanitize_p ()) > + return "HWASAN_MARK"; > + return ret; > } > > extern internal_fn lookup_internal_fn (const char *); > > > Entire patch series attached to cover letter. >
all-patches.tar.gz
Description: all-patches.tar.gz