On Mon, Oct 9, 2017 at 8:53 AM, Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> wrote: > > > On 10/09/2017 06:05 PM, Alexander Potapenko wrote: > >> v2: - updated KCOV_ENABLE_COMPARISONS description >> --- >> Makefile | 5 +++-- >> lib/Kconfig.debug | 10 ++++++++++ >> scripts/Makefile.lib | 6 ++++++ >> 3 files changed, 19 insertions(+), 2 deletions(-) >> >> diff --git a/Makefile b/Makefile >> index 2835863bdd5a..c2a8e56df748 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -374,7 +374,7 @@ AFLAGS_KERNEL = >> LDFLAGS_vmlinux = >> CFLAGS_GCOV := -fprofile-arcs -ftest-coverage -fno-tree-loop-im $(call cc-disable-warning,maybe-uninitialized,) >> CFLAGS_KCOV := $(call cc-option,-fsanitize-coverage=trace-pc,) >> - >> +CFLAGS_KCOV_COMPS := $(call cc-option,-fsanitize-coverage=trace-cmp,) >> >> # Use USERINCLUDE when you must reference the UAPI directories only. >> USERINCLUDE := \ >> @@ -420,7 +420,7 @@ export MAKE AWK GENKSYMS INSTALLKERNEL PERL PYTHON UTS_MACHINE >> export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS >> >> export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS >> -export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_GCOV CFLAGS_KCOV CFLAGS_KASAN CFLAGS_UBSAN >> +export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_GCOV CFLAGS_KCOV CFLAGS_KCOV_COMPS CFLAGS_KASAN CFLAGS_UBSAN >> export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE >> export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE >> export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL >> @@ -822,6 +822,7 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init) >> KBUILD_ARFLAGS := $(call ar-option,D) >> >> include scripts/Makefile.kasan >> +include scripts/Makefile.kcov > > scripts/Makefile.kcov doesn't exist. Good catch! Will fix. > > > >> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib >> index 5e975fee0f5b..7ddd5932c832 100644 >> --- a/scripts/Makefile.lib >> +++ b/scripts/Makefile.lib >> @@ -142,6 +142,12 @@ _c_flags += $(if $(patsubst n%,, \ >> $(CFLAGS_KCOV)) >> endif >> >> +ifeq ($(CONFIG_KCOV_ENABLE_COMPARISONS),y) >> +_c_flags += $(if $(patsubst n%,, \ >> + $(KCOV_INSTRUMENT_$(basetarget).o)$(KCOV_INSTRUMENT)$(CONFIG_KCOV_INSTRUMENT_ALL)), \ >> + $(CFLAGS_KCOV_COMPS)) >> +endif >> + > > Instead of this you could simply add -fsanitize-coverage=trace-cmp to CFLAGS_KCOV. Indeed. I've refactored these bits and moved them to Makefile.kcov. > >> # If building the kernel in a separate objtree expand all occurrences >> # of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/'). >> >> -- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Straße, 33 80636 München Geschäftsführer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href