Received: by 10.213.65.68 with SMTP id h4csp347741imn; Wed, 28 Mar 2018 04:55:32 -0700 (PDT) X-Google-Smtp-Source: AIpwx48qaxK1xUHPl+of6GgT7SoE0uL0j0uwLsmYoxMSK0mUy6toyjzExCzMLuNvX5D3/af1VvQj X-Received: by 10.99.96.84 with SMTP id u81mr2359702pgb.231.1522238132823; Wed, 28 Mar 2018 04:55:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522238132; cv=none; d=google.com; s=arc-20160816; b=G6nRVrH9YXLg50ZGPKtTahyv2STLb2juPdcs8gxE00gJNrb1Hjbv2vA+f+ZQrX9uP5 vrBZAzxYFBcHaZwlnyeFEvIfRa9q5IJWOoPhN5t0/87P0+1FlpaRR9/VW9zw51SOSrRJ 5ELUuwUea9WKU5MJfeuF3DQhyJJK5bMQ2FmYxybkn2fs3XimDJRmtcm6gdslSjn/fon8 mxBiPkvilujqpShpu/umrzZtcRXFpRgkalqP631nfNkkpO64Y1R9Zkh0qc7ORntKcV+D WdEwFJnJMCob4jyfGo2QlVyvcWCyHMLERgfTjT3p83whsnAIgOfm2AGtSBtC65RHa7j6 hbPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature:dkim-signature :arc-authentication-results; bh=neTLX9TJ3Y/23DwulWJd/uhd3H8p1pj3OCcfcaUpExg=; b=abNeJU9XZte8hB/9yKOEpmkc+1HsyUWMe0BhqQcM5ZfBq4dQVklYKSaCp6r477Y+mh SLdwmDdn37rZ0K12aFOAL+G4WlNYn8P4RDm9MiVfMsPacJ17qa4Ukl0gMGOtJte/gO8L 6yxQYTV48y4AcDDK70byW9SfWcBtuHnn19+OFD7it4DFIJjqSUMfrKbFSXWDrI3vd7Eo YynOWxGS87jUo/3EinhSwsKfbz/vQa+b+WgB2cv2RnNCRSRQ+0W5QNPlkA+11WhggD5y mCZd0aGE+ABTITPi2gJcD9m5xQPMwGAuApf1Wx53qyn58lsc8IN40BMfxCxbLHA75a8L 56Mg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@google.com header.s=20161025 header.b=fdF4iPNj; dkim=fail header.i=@chromium.org header.s=google header.b=WE6HLXiD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t10-v6si3321250plo.18.2018.03.28.04.55.18; Wed, 28 Mar 2018 04:55:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@google.com header.s=20161025 header.b=fdF4iPNj; dkim=fail header.i=@chromium.org header.s=google header.b=WE6HLXiD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753200AbeC1Lxo (ORCPT + 99 others); Wed, 28 Mar 2018 07:53:44 -0400 Received: from mail-vk0-f67.google.com ([209.85.213.67]:36050 "EHLO mail-vk0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753122AbeC1Lxl (ORCPT ); Wed, 28 Mar 2018 07:53:41 -0400 Received: by mail-vk0-f67.google.com with SMTP id q198so1204064vke.3 for ; Wed, 28 Mar 2018 04:53:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=neTLX9TJ3Y/23DwulWJd/uhd3H8p1pj3OCcfcaUpExg=; b=fdF4iPNjRElA4W1/vU/KBm0kQcDv1x+XS2qPJT1GieObaCDs9R2fb0emPc1Z/hBLTD 9Vov4GoNgUyrfJrm1kpPKVzkeDscsTzDQhdOdzSfFUPj+lFRGI+6qlcs4Ng7njsGjTDK FQIubbcZcLQctRAbzFX6qAn2wMD5A1n3qTyi4pGOTqpvkgTplOSBsZcIRly3yDooh+Dn 6Msl0h5Bb/P+3Z/4x5DtvENC0BX8gA6yM1+TcUD3IIHEM8gp9t7+3VXKB0rgNicLDe+T Uy0FMFc8uh7WehTzhPQJV5irgFda5gibaOCsQcBvPF/CQ+8eTkdb34X8MVJnbLbWQDKs /O4A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=neTLX9TJ3Y/23DwulWJd/uhd3H8p1pj3OCcfcaUpExg=; b=WE6HLXiDjgmE59wg8yAzoqqHWf3zIS90YaZJZEhJmLLvCfWY9RDayMqbNk8VgjIwDy w7JILRrE5yAe5778V8yjnEuZxXlsR0vtTUcSsvSUIBKIBTU+tmeoxHRaQWIW020y32q/ NCGADO7bAwTQueGPxRZ73ieEMcYE0gEqX5DPQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=neTLX9TJ3Y/23DwulWJd/uhd3H8p1pj3OCcfcaUpExg=; b=K7y7kiSYnFd2TzQTyXACFqYp96CEdyjpHonmIqG0TL6PIPnhtAOp1izPxAIEqA4Rw6 jWjAJus3MnmSaxj6Xi37CroXcWUS6uqldD1U/fA4EfUMAZUjSQkZ/eATLk5CduYahySY 9hgOgzwliuTTa/s20Z3fCGWgzLByNHpXcc9Jc6kJK5+nC1Rrs7UtFvXx9g6m5mY9wAIn MpR+Zn0W8Jt+Dytzu25tcnDh8XffAeJdWUKWT78amjY+XkVMobHwuN+oS5FiX8kBngUx G2QfBaZnByGbFNbQyfXLRl61jeoQFbMG267bxHJYWcbkiXn6YpURTLWVycLYk/3nPh/6 DVzQ== X-Gm-Message-State: AElRT7EMfRc/Lsb8wFMaydxi1gFMr8510sDoDBPVNaJrc2zCZaD0yvt0 9ELCJQLfuYiEtPp5Or8sr8unZ5gL7JYHFApYmBpOZQ== X-Received: by 10.31.65.11 with SMTP id o11mr1963482vka.149.1522238020273; Wed, 28 Mar 2018 04:53:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.31.129.9 with HTTP; Wed, 28 Mar 2018 04:53:39 -0700 (PDT) In-Reply-To: <1522128575-5326-17-git-send-email-yamada.masahiro@socionext.com> References: <1522128575-5326-1-git-send-email-yamada.masahiro@socionext.com> <1522128575-5326-17-git-send-email-yamada.masahiro@socionext.com> From: Kees Cook Date: Wed, 28 Mar 2018 04:53:39 -0700 X-Google-Sender-Auth: UN2Fizw7S_FS-yJUyHYrTOlzgqQ Message-ID: Subject: Re: [PATCH v2 16/21] kcov: imply GCC_PLUGINS and GCC_PLUGIN_SANCOV instead of select'ing them To: Masahiro Yamada Cc: linux-kbuild , Sam Ravnborg , Linus Torvalds , Arnd Bergmann , Ulf Magnusson , Thomas Gleixner , Greg Kroah-Hartman , Randy Dunlap , "Luis R . Rodriguez" , Nicolas Pitre , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 26, 2018 at 10:29 PM, Masahiro Yamada wrote: > As Documentation/kbuild/kconfig-language.txt notes, 'select' should be > used with care - it forces a lower limit of another symbol, ignoring > the dependency. In this case, KCOV can select GCC_PLUGINS even if > 'depends on HAVE_GCC_PLUGINS' is unmet. > > 'imply' is modest enough to observe the dependency, and this makes > sense. If you enable KCOV, you will probably want to enable > GCC_PLUGIN_SANCOV, but it should not break the dependency. > > I also remove unneeded code, I just happened to notice. > > Signed-off-by: Masahiro Yamada > - Drop depends on GCC_VERSION > > --- > > Changes in v2: None > > lib/Kconfig.debug | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 5be22e4..8243c9d 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -743,8 +743,8 @@ config KCOV > bool "Code coverage for fuzzing" > depends on ARCH_HAS_KCOV > select DEBUG_FS > - select GCC_PLUGINS if !COMPILE_TEST > - select GCC_PLUGIN_SANCOV if !COMPILE_TEST > + imply GCC_PLUGINS > + imply GCC_PLUGIN_SANCOV > help > KCOV exposes kernel code coverage information in a form suitable > for coverage-guided fuzzing (randomized testing). Actually, I think this can be improved, as KCOV should depend on either: -fsanitize-coverage=trace-pc support (in gcc 6+, see scripts/Makefile.kcov) or GCC_PLUGIN_SANCOV (which provides the trace-pc support via the plugin for gcc before 6) > @@ -758,7 +758,6 @@ config KCOV > config KCOV_ENABLE_COMPARISONS > bool "Enable comparison operands collection by KCOV" > depends on KCOV > - default n > help > KCOV also exposes operands of every comparison in the instrumented > code along with operand sizes and PCs of the comparison instructions. Similarly, this depends on -fsanitize-coverage=trace-cmp > @@ -768,7 +767,7 @@ config KCOV_ENABLE_COMPARISONS > config KCOV_INSTRUMENT_ALL > bool "Instrument all code by default" > depends on KCOV > - default y if KCOV > + default y > help > If you are doing generic system call fuzzing (like e.g. syzkaller), > then you will want to instrument the whole kernel and you should > -- > 2.7.4 > -Kees -- Kees Cook Pixel Security