Re: [PATCH v5 5/5] Add sancov plugin

From: Emese Revfy
Date: Mon Mar 07 2016 - 16:31:43 EST


On Mon, 7 Mar 2016 13:07:32 -0800
Kees Cook <keescook@xxxxxxxxxxxx> wrote:

> > diff --git a/tools/gcc/sancov_plugin.c b/tools/gcc/sancov_plugin.c
> > new file mode 100644
> > index 0000000..5a9179b
> > --- /dev/null
> > +++ b/tools/gcc/sancov_plugin.c
> > @@ -0,0 +1,133 @@
> > +/*
> > + * Copyright 2011-2016 by Emese Revfy <re.emese@xxxxxxxxx>
> > + * Licensed under the GPL v2, or (at your option) v3
> > + *
> > + * Homepage:
> > + * https://github.com/ephox-gcc-plugins/sancov
> > + *
> > + * This plugin inserts a __sanitizer_cov_trace_pc() call at the start of basic blocks.
> > + * It supports all gcc versions with plugin support (from gcc-4.5 on).
> > + * It is based on the commit "Add fuzzing coverage support" by Dmitry Vyukov <dvyukov@xxxxxxxxxx>.
> > + *
> > + * You can read about it more here:
> > + * https://gcc.gnu.org/viewcvs/gcc?limit_changes=0&view=revision&revision=231296
> > + * http://lwn.net/Articles/674854/
> > + * https://github.com/google/syzkaller
> > + * https://lwn.net/Articles/677764/
> > + *
> > + * Usage:
> > + * make run
>
> Is this accurate? Wouldn't it just be selected from CONFIGs during kernel build?

This is just a usage example when someone clones the plugin from github. Every plugin written by me contains this. :)

For now it can be enabled from menuconfig for testing because I'm waiting for the reactions.
Later I think the best way would be when kcov is enabled that it also enables the plugin automatically
if the target gcc version doesn't support the -fsanitize-coverage=trace-pc option but it supports plugins.

--
Emese