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=-5.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 B44DCC433E4 for ; Mon, 17 Aug 2020 22:35:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8D61220772 for ; Mon, 17 Aug 2020 22:35:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=zytor.com header.i=@zytor.com header.b="KUs7+/XB" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730117AbgHQWfD (ORCPT ); Mon, 17 Aug 2020 18:35:03 -0400 Received: from terminus.zytor.com ([198.137.202.136]:39385 "EHLO mail.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729013AbgHQWe7 (ORCPT ); Mon, 17 Aug 2020 18:34:59 -0400 Received: from hanvin-mobl2.amr.corp.intel.com (jfdmzpr03-ext.jf.intel.com [134.134.139.72]) (authenticated bits=0) by mail.zytor.com (8.15.2/8.15.2) with ESMTPSA id 07HMVRrV2411257 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO); Mon, 17 Aug 2020 15:31:28 -0700 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 07HMVRrV2411257 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com; s=2020072401; t=1597703492; bh=LKtFMKVgtOY/6bgoWtqeglon0IHwcNuLxWmX3T+HkBY=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=KUs7+/XBtVIJ5EhmCEDOIFwDAK8ODSK/P6kH2ED3Bu4rW+YQeCQqon9LYR0NK5LC+ XgQOIWhLEolFJ4ch6EKj5UrDoPQs9dnlUSSb3yt6uJ40aafO46eEMZv1opQv90pbpP X9KOBLkOpUTVXo6wEbH4JKjlBcFoF08kR2S3yzmUJyqhkHsXIgoq+WX9dVAbrEUtC3 U0epQC9hqP8YKAGWe165qUj94F1RyQGO1JO7/z3Wic08vA257p/1UsIhQrsDI+g7AY /8Tv2E9Fc3r1YaA1q23uEMeXe5d7q6TO5m2r4/4dTHFM/EMEvRdGv+JWghE9zqrJei XF/IHfC1GR7sA== Subject: Re: [PATCH 1/4] Makefile: add -fno-builtin-stpcpy To: Nick Desaulniers , Masahiro Yamada , Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov Cc: Michal Marek , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, Kees Cook , Tony Luck , Dmitry Vyukov , Michael Ellerman , Joe Perches , Joel Fernandes , Daniel Axtens , Arvind Sankar , Andy Shevchenko , Alexandru Ardelean , Yury Norov , x86@kernel.org, Ard Biesheuvel , "Paul E . McKenney" , Daniel Kiper , Bruce Ashfield , Marco Elver , Vamshi K Sthambamkadi , Andi Kleen , Linus Torvalds , =?UTF-8?B?RMOhdmlkIEJvbHZhbnNrw70=?= , Eli Friedman , stable@vger.kernel.org, Sami Tolvanen References: <20200817220212.338670-1-ndesaulniers@google.com> <20200817220212.338670-2-ndesaulniers@google.com> From: "H. Peter Anvin" Message-ID: <82bbeff7-acc3-410c-9bca-3644b141dc1a@zytor.com> Date: Mon, 17 Aug 2020 15:31:26 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <20200817220212.338670-2-ndesaulniers@google.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-08-17 15:02, Nick Desaulniers wrote: > LLVM implemented a recent "libcall optimization" that lowers calls to > `sprintf(dest, "%s", str)` where the return value is used to > `stpcpy(dest, str) - dest`. This generally avoids the machinery involved > in parsing format strings. This optimization was introduced into > clang-12. Because the kernel does not provide an implementation of > stpcpy, we observe linkage failures for almost all targets when building > with ToT clang. > > The interface is unsafe as it does not perform any bounds checking. > Disable this "libcall optimization" via `-fno-builtin-stpcpy`. > > Unlike > commit 5f074f3e192f ("lib/string.c: implement a basic bcmp") > which cited failures with `-fno-builtin-*` flags being retained in LLVM > LTO, that bug seems to have been fixed by > https://reviews.llvm.org/D71193, so the above sha can now be reverted in > favor of `-fno-builtin-bcmp`. > stpcpy() and (to a lesser degree) mempcpy() are fairly useful routines in general. Perhaps we *should* provide them? -hpa