From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93C42C56202 for ; Fri, 20 Nov 2020 20:58:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3340B24171 for ; Fri, 20 Nov 2020 20:58:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="n7Q8WZSH" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730360AbgKTU6y (ORCPT ); Fri, 20 Nov 2020 15:58:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36530 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730225AbgKTU6y (ORCPT ); Fri, 20 Nov 2020 15:58:54 -0500 Received: from mail-ua1-x942.google.com (mail-ua1-x942.google.com [IPv6:2607:f8b0:4864:20::942]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00B02C061A48 for ; Fri, 20 Nov 2020 12:58:53 -0800 (PST) Received: by mail-ua1-x942.google.com with SMTP id p12so3572995uam.1 for ; Fri, 20 Nov 2020 12:58:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=JWd8Wn96hX4ViEXOk8cnBriUSzyNGlVdd9D7G7X9krM=; b=n7Q8WZSHAzqNmYrv9dNqZivuKsDeywwvO4kl1fLm8yAB9nz+k+3lzkHIC6URMndd9N ncfzYU53qrW6L7ktmuiCSCQkVZ/eP5JDWD7TMwJg8e5yVePPZIH2mL+P1inZGOs772ll a8QRES6vjPZ1qfhyKHcxA2SDzvnvBpk4g78r8aAZWi1llK+zb+YIfMZx34KzfOChRgPa 6pg4ojnEfHCIbmevi1eG30tobfXlx2k6qexNCevPM6lVr7/QqpezqSu6yAgpxx7oPbC8 wgUzxLS+Q8yRx5MTE+8rAH2p4+zi25RWg2L/DNevmi7STfpPOI63AYByOiSP7iPAbmY3 vTAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=JWd8Wn96hX4ViEXOk8cnBriUSzyNGlVdd9D7G7X9krM=; b=AYJWV6j4hpBzA78FcE/ZfcaNOwOimDmVMi1lGi9W09XXev1+KV/Kn/Rmuo9HITdDIV 6x+l+ZUdfT3jBozQhveWTv7Ursg/BQ8OlLQn4EAfIOee5lunUFQuiSqWwJ1Mu2rFMLwz D8P373GGZEKulnNXqr6cTfAfNmGkj4+kbaJNPBi4HBpBhp/HQWDANgXusvIXm/OPLuXs 0DkWsPGtCLTZettiHDQOGYG4EROoUQULUFd0DikMYTyDcIpQSbDdFIK7zZyBrXXvIwHl qjPm/W3aCMQ/TrAuUbpqdPS3bWKfLnyG2ktu8LGzGdr6Rm9Z4FouPBMUkYY6UR7Fh8Nb VGEA== X-Gm-Message-State: AOAM533sR6naKg3uo3s5rr3teZZmvWQUmk7xgi7pHCVUIBFBCYXObA9U T4RXFhVziOwspXaEHool3nkp4Nz/gN1ctv7hltSN9w== X-Google-Smtp-Source: ABdhPJwahvlnvpf0HHckrWnv4UpriDhIz+vSW2ABkfUPKok1Yyd5+VP5JP/VFRj6CCBwEc5NUFJu59Sg2jFzgZb6jlE= X-Received: by 2002:ab0:23cc:: with SMTP id c12mr12322573uan.89.1605905932783; Fri, 20 Nov 2020 12:58:52 -0800 (PST) MIME-Version: 1.0 References: <20201118220731.925424-1-samitolvanen@google.com> <20201118220731.925424-3-samitolvanen@google.com> <202011201144.3F2BB70C@keescook> <20201120202935.GA1220359@ubuntu-m3-large-x86> <202011201241.B159562D7@keescook> In-Reply-To: <202011201241.B159562D7@keescook> From: Sami Tolvanen Date: Fri, 20 Nov 2020 12:58:41 -0800 Message-ID: Subject: Re: [PATCH v7 02/17] kbuild: add support for Clang LTO To: Kees Cook Cc: Nathan Chancellor , Nick Desaulniers , Masahiro Yamada , Steven Rostedt , Will Deacon , Josh Poimboeuf , Peter Zijlstra , Greg Kroah-Hartman , "Paul E. McKenney" , clang-built-linux , Kernel Hardening , linux-arch , Linux ARM , Linux Kbuild mailing list , LKML , linux-pci@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Fri, Nov 20, 2020 at 12:43 PM Kees Cook wrote: > > On Fri, Nov 20, 2020 at 01:29:35PM -0700, Nathan Chancellor wrote: > > On Fri, Nov 20, 2020 at 11:47:21AM -0800, Kees Cook wrote: > > > On Fri, Nov 20, 2020 at 08:23:11AM -0800, Sami Tolvanen wrote: > > > > Changing the ThinLTO config to a choice and moving it after the main > > > > LTO config sounds like a good idea to me. I'll see if I can change > > > > this in v8. Thanks! > > > > > > Originally, I thought this might be a bit ugly once GCC LTO is added, > > > but this could be just a choice like we're done for the stack > > > initialization. Something like an "LTO" choice of NONE, CLANG_FULL, > > > CLANG_THIN, and in the future GCC, etc. > > > > Having two separate choices might be a little bit cleaner though? One > > for the compiler (LTO_CLANG versus LTO_GCC) and one for the type > > (THINLTO versus FULLLTO). The type one could just have a "depends on > > CC_IS_CLANG" to ensure it only showed up when needed. > > Right, that's how the stack init choice works. Kconfigs that aren't > supported by the compiler won't be shown. I.e. after Sami's future > patch, the only choice for GCC will be CONFIG_LTO_NONE. But building > under Clang, it would offer CONFIG_LTO_NONE, CONFIG_LTO_CLANG_FULL, > CONFIG_LTO_CLANG_THIN, or something. > > (and I assume CONFIG_LTO would be def_bool y, depends on !LTO_NONE) I'm fine with adding ThinLTO as another option to the LTO choice, but it would duplicate the dependencies and a lot of the help text. I suppose we could add another config for the dependencies and have both LTO options depend on that instead. Sami