Received: by 10.213.65.68 with SMTP id h4csp1219196imn; Sat, 31 Mar 2018 23:29:48 -0700 (PDT) X-Google-Smtp-Source: AIpwx49M1eWZ7D2RuRW+tgyGcZJjVPHN04DICS6MWiuryIJGtZ6Da+UeRWjnedEnesJAjEfuty+Y X-Received: by 2002:a17:902:8c8c:: with SMTP id t12-v6mr5394975plo.100.1522564188286; Sat, 31 Mar 2018 23:29:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522564188; cv=none; d=google.com; s=arc-20160816; b=h/wnSL68o/t38sQVRX7MAhMTDJyys5rJvp3SRyCh38mpDrPoTjEFmwWu3kNFcFyJP4 co9b1YB8w21A0DvKS/jYgya10mbP5iN3Y5pcyINl9VrGfpcO2wFHu+qPh9CdIIeH/av4 /z+LkdpU8iHKUbaRbHYrRFh0f7HWtYKEa8zorOMwVkTfJ8G4SysrDUJxkTe2WUty5ZGm +QhW8lzBPy590AGVXCBwdeuylUYkoHG3d2mBJOUllWu/34m9shgLJYbJnfELtLsA8Hvk zfFth5AVqcLIv6FV2G71z1gq4sKCn52wmL/dQTR/QJ3JeGHaDvtLjVJIoEI4W7yw818k Ctkw== 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 :arc-authentication-results; bh=0EtwHZEbNn654nEz4V5++0fYftXS+w/B6lpjlcKhzaU=; b=hmAFEW4V55g5E2z49LQiSgACrTBa7Xh6ObyHBE35ydDPLTJBkjNq7+jqyWaR0RwdPn l/nYnBotuXVbfgibI5WtFjFnVdfp7yAY8c8wUDjl6qUuF8LihuwnyMcZjyifuENrouhc XGRUxmT1zZiyhDHPoIu/mgvhBNvWS8GLjMO557KynOpufWZusQl5l+HDTBAVAx6m5r/Z Ox8vRtS+L9wr4AISTJCkybcelDDuk5c+xfUzO+PPldfgEyJHQ+cqFLonDbvsaohBCqlQ VI5+IeqkW3vZMKC5DeuNhmq1PKWEAOfrTZl9s+gf3GiShATuAXBYIe6rXtJGy+gsZCgc kHVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tVdLMqJJ; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 1-v6si11673626plv.375.2018.03.31.23.29.33; Sat, 31 Mar 2018 23:29:48 -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=pass header.i=@gmail.com header.s=20161025 header.b=tVdLMqJJ; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751296AbeDAG2Y (ORCPT + 99 others); Sun, 1 Apr 2018 02:28:24 -0400 Received: from mail-ua0-f194.google.com ([209.85.217.194]:38761 "EHLO mail-ua0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750860AbeDAG2W (ORCPT ); Sun, 1 Apr 2018 02:28:22 -0400 Received: by mail-ua0-f194.google.com with SMTP id q38so7389414uad.5; Sat, 31 Mar 2018 23:28:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=0EtwHZEbNn654nEz4V5++0fYftXS+w/B6lpjlcKhzaU=; b=tVdLMqJJP/5nUhceVaANL6dwXrUFOc7HfuIFUuiIoOSZ9VHU5C+0eU48MQKXsNRedu n9+AcFJaWT6b0lSZm/cOQW95nzrw0uZaGTxwBTwH67I+MhLC9m3UmrJ5jV/xiPHYXqyI LbeGV7XSrLMaUnKGDMyloyExRRz8yE0YrYPLK/o2HQBmbWHfm/RJIGEL0OlDh8Twwu7S Z4CplBRGpS2gQRIp5EKc590buZlbgncxRpRkAg+rzSDqfoPOimpHf5TiH4I0IVvAlqJ7 e205FKaW/oWbWEg98YTtzalMif4T0TpD/vN+x24Z4/FeY4dvFN5rscarJxRTzZSdD2hz 4rtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=0EtwHZEbNn654nEz4V5++0fYftXS+w/B6lpjlcKhzaU=; b=hZaPYFDUAstb7nDT1BmVd2tUTwuMfecjYfpAV5gdRztfo28vJIBRJ3kVXJCcenM0gH NBCko/rhZmI+Yd2++O89lbGzPm958uVEU5WdixjNAnekJXgrnKa8g4yTs1RSYe57u/k2 h1l0/UYqvzddfLqg6rUX7gVhTZMII1uIYxSvg15IqE3uSD8bE4sYU6el+Qmbok36QVPg 3Zyi0LCLeO6Db3RucU3xYVgh0lWprjHDQzmKCfT2NWjdpz5ipeN5+907+5o2yY57ml6z iB2eWVw6gcS/AjrsbPO6nzC3c1igKTtxO99glCvrNixi5TgeOZ5RsEw3S2jwUTQqp/Oq j4cg== X-Gm-Message-State: ALQs6tCheEQWn+xyGLXUQHT3LvhzkGG2ilqPljbxUmPGNCf3XyJ0cc3f B/LvRhkFNAvaeWhyjBaSsAwZ9fOnn2B0V+SRwxM= X-Received: by 10.159.50.67 with SMTP id y3mr2881271uad.3.1522564101739; Sat, 31 Mar 2018 23:28:21 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.206.5 with HTTP; Sat, 31 Mar 2018 23:28:21 -0700 (PDT) In-Reply-To: <1522128575-5326-11-git-send-email-yamada.masahiro@socionext.com> References: <1522128575-5326-1-git-send-email-yamada.masahiro@socionext.com> <1522128575-5326-11-git-send-email-yamada.masahiro@socionext.com> From: Ulf Magnusson Date: Sun, 1 Apr 2018 08:28:21 +0200 Message-ID: Subject: Re: [PATCH v2 10/21] kconfig: add 'success' and 'cc-option' macros To: Masahiro Yamada Cc: Linux Kbuild mailing list , Sam Ravnborg , Linus Torvalds , Arnd Bergmann , Kees Cook , Thomas Gleixner , Greg Kroah-Hartman , Randy Dunlap , "Luis R . Rodriguez" , Nicolas Pitre , Linux Kernel Mailing List 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 Tue, Mar 27, 2018 at 7:29 AM, Masahiro Yamada wrote: > 'cc-option' will be the most frequently used macro. It evaluates to 'y' > if the given argument is supported by the compiler, or 'n' otherwise. > > Signed-off-by: Masahiro Yamada > --- > > Changes in v2: > - Implement 'success' as a macro > > init/Kconfig | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/init/Kconfig b/init/Kconfig > index 0d6fe20..c456030 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -8,6 +8,12 @@ config DEFCONFIG_LIST > default ARCH_DEFCONFIG > default "arch/$ARCH/defconfig" > > +# expanded to y if the command exits with 0, n otherwise > +macro success $(shell ($(1) && echo y) || echo n) > + > +# expanded to y if the given compiler flag is supported, n otherwise > +macro cc-option $(success $CC -Werror $(1) -c -x c /dev/null -o /dev/null) > + > config CONSTRUCTORS > bool > depends on !UML > -- > 2.7.4 > Reviewed-by: Ulf Magnusson Some other tests (e.g. scripts/*-stack-protector.sh) also pass -S and -O0 and stuff to speed things up. Feels like that could lead to gotchas though. -S does help a bit at least: $ time gcc -c -x c /dev/null -o /dev/null real 0m0.020s user 0m0.013s sys 0m0.007s $ time gcc -S -x c /dev/null -o /dev/null real 0m0.012s user 0m0.009s sys 0m0.003s