Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2914131imm; Wed, 16 May 2018 23:35:13 -0700 (PDT) X-Google-Smtp-Source: AB8JxZomXPEulOXqKu+weMPFWSBSjsNdSuWdvGBWAiqKRiiNtR0hNh3Bp89nWQKeRUVglO3jrx3W X-Received: by 2002:a17:902:6b45:: with SMTP id g5-v6mr4050750plt.67.1526538913440; Wed, 16 May 2018 23:35:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526538913; cv=none; d=google.com; s=arc-20160816; b=gikmQmlfO6TYyu4pMsGskHafGNzAM+bAHhi0B4EdF0VasqsDKP8czeoaz92C6igDml 3qpIg1h+cGgQny37xdluO0GRzay91M5piFuQcFWkxNlis2CDknHJs0XU6zzYYAyv+ewW Tn0oudAcqmn5p5mOfcgifNH99KOFMzn4c32NcmUwUxZcRZoHYuwJc96PE58PRTqmKaA1 HsZGrfzJmf5ljmKDK1Z4U72SKlaeoD+X4Jq5DZi/q4QvMQhPQ7U9DEzM7Y5cJXydyboL hk5eN96OVXHY2mVhQyT8w28sg6rIrrVs1VV8SWjdeLP4LtbRuLr2j3n4XJdOsUMpiD9T Yi0g== 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=xzUmHMUps3Lyso+o0Qndo9TQBaMaQJOaul+w8QYJGsA=; b=Qa6tgaUSMngz1AhaHor5NwtKs/dEUUPbbgVbSOST2CbMLicYfOZ6lTX/uHxssQmPrz iFGqdNkjiw7WrOkH8jw4yNV+5wJu17CPh/spZWsPZ4p5uSfO8dJ+0A/PNqWjORX5CP2H Pgx8I0+9/VDiHIJehMsgduh83mG4oYDGt0RvGNpB3Qr8eN8BDS83IfCePa4oiuAHIPFn CAZSdMX7rraNnI05vWawJXP/cRAQ9ANXmRGICRrirjehGfoLZyZqnAxP0TnywJh01NkN 1OgYDB74UCUOQp5rnUAe+m/vrC6KilqsecBPi6XC7gx5Etyrb4rwqgmEE924ApaX2HGi BfQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@google.com header.s=20161025 header.b=vXHFCq80; dkim=fail header.i=@chromium.org header.s=google header.b=bj1eiJxv; 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 ay8-v6si4448796plb.244.2018.05.16.23.34.58; Wed, 16 May 2018 23:35:13 -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=vXHFCq80; dkim=fail header.i=@chromium.org header.s=google header.b=bj1eiJxv; 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 S1752009AbeEQGdK (ORCPT + 99 others); Thu, 17 May 2018 02:33:10 -0400 Received: from mail-ua0-f196.google.com ([209.85.217.196]:34882 "EHLO mail-ua0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751212AbeEQGdI (ORCPT ); Thu, 17 May 2018 02:33:08 -0400 Received: by mail-ua0-f196.google.com with SMTP id a2-v6so2225794uak.2 for ; Wed, 16 May 2018 23:33:08 -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=xzUmHMUps3Lyso+o0Qndo9TQBaMaQJOaul+w8QYJGsA=; b=vXHFCq80ZiyJN3GerVGt69fcfAlRx3m2AHrDis+h4sQ5WiZjnCwusW52QwRQ5oFcWt VUSgFqkZr69X4bidHToVV7DQ83eqJZOjWS55d/GQFAPLW1JS3JQ+kpbJPiJ50aa8ykPp yJdFgNfuggkW5iw5XoWABKVzuk6ZNi6BO3tMbglNxqOLysR6X7ZNdCltn0//PIxJMKPi lK941UUtT8ueBqTZk58PmRkeGwmQiPm99T/1XOWBAyk2rx//noV9CQEBK5OY7/b1M8D+ oaEuN4jy7qyq4Yd1k7jZIF/JiOIAOGqxC+v1zOM/TEIPKNFImsTo7F5rlbeS9bq9sb8E ixWQ== 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=xzUmHMUps3Lyso+o0Qndo9TQBaMaQJOaul+w8QYJGsA=; b=bj1eiJxvg/EjMzohqY4paIjnz6HQqniQMhZd4lX8Dud2rdkFAZzqr0FXFG+luT5fi2 qwox0l1wuWF7Zh2HZzAg1507BZY6X5d6hhPtzzIUvVGQ9rUEhI7ReVK3vjQGWLUYO+sY hBTfSQOS5NiXciniqvcV+H9N5lD22Z3UBEA6E= 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=xzUmHMUps3Lyso+o0Qndo9TQBaMaQJOaul+w8QYJGsA=; b=OLlZF/dgPfW9znfwgPAe1MKXyhwXr39WIRhIZ+N+DKKvyNJjr+MdzafJCIeJuBurti 83sbkAqLHO8Fo1wkBdmx5fAX92H+NhBNwhNavHjMjT1QRsKhIDXJFTigQH0sixMZsGmp 6+Bajhz1vzZGY8X/OJAVN1Eqx1rmODlkPq1gmbClzUhgsvxChQDOIduQrsO3LqTnK86P 8hqDh7/M3PnCFV1FClPeI4Adp0NUFdcMqPeE9wAuF7GEDuWdBfBe5JkPP0xmalhPPeX9 RAWkcnCM3zjjG/VDzbHdA03ksLuUW7Xu2o6jiQtQz5dfJS+G/frc2CKbgkDFgHgv3rAr pKbg== X-Gm-Message-State: ALKqPwehT1I6wMpgPfRpDgUr650Uu1WxYbL/iUbCcrFm8lJdGC4labpr DeaBKG1vwIIoHv5VWAWzGoSzLtWVP2RFCdSqv/mn6A== X-Received: by 2002:ab0:4ce2:: with SMTP id e34-v6mr3489293uag.0.1526538787569; Wed, 16 May 2018 23:33:07 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a1f:bd1:0:0:0:0:0 with HTTP; Wed, 16 May 2018 23:33:06 -0700 (PDT) In-Reply-To: <1526537830-22606-28-git-send-email-yamada.masahiro@socionext.com> References: <1526537830-22606-1-git-send-email-yamada.masahiro@socionext.com> <1526537830-22606-28-git-send-email-yamada.masahiro@socionext.com> From: Kees Cook Date: Wed, 16 May 2018 23:33:06 -0700 X-Google-Sender-Auth: uNKkusG9HrupYmkWEbtzAhbdwbg Message-ID: Subject: Re: [PATCH v4 27/31] kcov: test compiler capability in Kconfig and correct dependency To: Masahiro Yamada Cc: linux-kbuild , Linus Torvalds , Sam Ravnborg , Ulf Magnusson , "Luis R . Rodriguez" , LKML , Nicholas Piggin , Emese Revfy , X86 ML 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 Wed, May 16, 2018 at 11:17 PM, Masahiro Yamada wrote: > As Documentation/kbuild/kconfig-language.txt notes, 'select' should be > be used with care - it forces a lower limit of another symbol, ignoring > the dependency. Currently, KCOV can select GCC_PLUGINS even if arch > does not select HAVE_GCC_PLUGINS. This could cause the unmet direct > dependency. > > Now that Kconfig can test compiler capability, let's handle this in a > more sophisticated way. > > There are two ways to enable KCOV; use the compiler that natively > supports -fsanitize-coverage=trace-pc, or build the SANCOV plugin if > the compiler has ability to build GCC plugins. Hence, the correct > dependency for KCOV is: > > depends on CC_HAS_SANCOV_TRACE_PC || GCC_PLUGINS > > You do not need to build the SANCOV plugin if the compiler already > supports -fsanitize-coverage=trace-pc. Hence, the select should be: > > select GCC_PLUGIN_SANCOV if !CC_HAS_SANCOV_TRACE_PC > > With this, GCC_PLUGIN_SANCOV is selected only when necessary, so > scripts/Makefile.gcc-plugins can be cleaner. > > I also cleaned up Kconfig and scripts/Makefile.kcov as well. > > Signed-off-by: Masahiro Yamada Reviewed-by: Kees Cook -Kees -- Kees Cook Pixel Security