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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 84193C433EF for ; Mon, 28 Feb 2022 00:16:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LZjdDoUSgq83X/qpxIaJQAokHvAXrT+nznizNdzoiBg=; b=KsM6WHbZCty3X1 3Tm00Fs3zXsOa/UAT3psvrbPfzQJsFbEBaRBr8EJgPDu7yFV1HAk2eocCakVEZgU6zPOIbKEV0BMT joJh9z8yyVxxGdSReTs5VYH+hpRGDHZnBhbT7ApeOvxDz+aMm98JeBYQ6p1cKPx89j7eFcIx9sUem 1XYScmOO5aaEbbycXCpmqzw1cXBidYBLWHpLq1q/uFbfgJRSFbFFs/N5P5z7jJQ7E6nGFkwOvTCTe XxP3pCEs5wBvRnSajXAJYHpJNTO647JTc3wUL1DM4IyiExYTvePv8h+T/E3bXfSPfuh3ugKyR33lO nSawqKjxxFHbDNbWwyUw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOTgN-00AOK7-Pm; Mon, 28 Feb 2022 00:14:31 +0000 Received: from li1843-175.members.linode.com ([172.104.24.175] helo=mail.stoffel.org) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOTgK-00AOJg-0P for linux-arm-kernel@lists.infradead.org; Mon, 28 Feb 2022 00:14:30 +0000 Received: from quad.stoffel.org (068-116-170-226.res.spectrum.com [68.116.170.226]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.stoffel.org (Postfix) with ESMTPSA id 989E32708E; Sun, 27 Feb 2022 19:14:17 -0500 (EST) Received: by quad.stoffel.org (Postfix, from userid 1000) id DBCDDA7992; Sun, 27 Feb 2022 19:14:16 -0500 (EST) Date: Sun, 27 Feb 2022 19:14:16 -0500 From: John Stoffel To: Arnd Bergmann Cc: linux-kbuild@vger.kernel.org, Arnd Bergmann , Linus Torvalds , Masahiro Yamada , llvm@lists.linux.dev, Jonathan Corbet , Federico Vaga , Alex Shi , Hu Haowen , Michal Marek , Nick Desaulniers , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc-tw-discuss@lists.sourceforge.net, linux-arm-kernel@lists.infradead.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-btrfs@vger.kernel.org Subject: Re: [PATCH] Kbuild: remove -std=gnu89 from compiler arguments Message-ID: References: <20220227215408.3180023-1-arnd@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220227215408.3180023-1-arnd@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220227_161428_234711_48087D17 X-CRM114-Status: GOOD ( 38.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gU3VuLCBGZWIgMjcsIDIwMjIgYXQgMTA6NTI6NDNQTSArMDEwMCwgQXJuZCBCZXJnbWFubiB3 cm90ZToKPiBGcm9tOiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgo+IAo+IER1cmluZyBh IHBhdGNoIGRpc2N1c3Npb24sIExpbnVzIGJyb3VnaHQgdXAgdGhlIG9wdGlvbiBvZiBjaGFuZ2lu Zwo+IHRoZSBDIHN0YW5kYXJkIHZlcnNpb24gZnJvbSBnbnU4OSB0byBnbnU5OSwgd2hpY2ggYWxs b3dzIHVzaW5nIHZhcmlhYmxlCj4gZGVjbGFyYXRpb24gaW5zaWRlIG9mIGEgZm9yKCkgbG9vcC4g V2hpbGUgdGhlIEM5OSwgQzExIGFuZCBsYXRlciBzdGFuZGFyZHMKPiBpbnRyb2R1Y2UgbWFueSBv dGhlciBmZWF0dXJlcywgbW9zdCBvZiB0aGVzZSBhcmUgYWxyZWFkeSBhdmFpbGFibGUgaW4KPiBn bnU4OSBhcyBHTlUgZXh0ZW5zaW9ucyBhcyB3ZWxsLgo+IAo+IEFuIGVhcmxpZXIgYXR0ZW1wdCB0 byBkbyB0aGlzIHdoZW4gZ2NjLTUgc3RhcnRlZCBkZWZhdWx0aW5nIHRvCj4gLXN0ZD1nbnUxMSBm YWlsZWQgYmVjYXVzZSBhdCB0aGUgdGltZSB0aGF0IGNhdXNlZCB3YXJuaW5ncyBhYm91dAo+IGRl c2lnbmF0ZWQgaW5pdGlhbGl6ZXJzIHdpdGggb2xkZXIgY29tcGlsZXJzLiBOb3cgdGhhdCBnY2Mt NS4xIGlzIHRoZQo+IG1pbmltdW0gY29tcGlsZXIgdmVyc2lvbiB1c2VkIGZvciBidWlsZGluZyBr ZXJuZWxzLCB0aGF0IGlzIG5vIGxvbmdlciBhCj4gY29uY2Vybi4gU2ltaWxhcmx5LCB0aGUgYmVo YXZpb3Igb2YgJ2lubGluZScgZnVuY3Rpb25zIGNoYW5nZXMgYmV0d2Vlbgo+IGdudTg5IGFuZCBn bnU4OSwgYnV0IHRoaXMgd2FzIHRha2VuIGNhcmUgb2YgYnkgZGVmaW5pbmcgJ2lubGluZScgdG8K ClR5cG8gaGVyZT8gIFNlY29uZCBvbmUgc2hvdWxkIGJlIGdudTk5IHJpZ2h0PwogICAgIAo+IGlu Y2x1ZGUgX19hdHRyaWJ1dGVfXygoZ251X2lubGluZSkpIGluIG9yZGVyIHRvIGFsbG93IGJ1aWxk aW5nIHdpdGgKPiBjbGFuZyBhIHdoaWxlIGFnby4KPiAKPiBPbmUgbWlub3IgaXNzdWUgdGhhdCBy ZW1haW5zIGlzIGFuIGFkZGVkIGdjYyB3YXJuaW5nIGZvciBzaGlmdHMgb2YKPiBuZWdhdGl2ZSBp bnRlZ2VycyB3aGVuIGJ1aWxkaW5nIHdpdGggLVdlcnJvciwgd2hpY2ggaGFwcGVucyB3aXRoIHRo ZQo+ICdtYWtlIFc9MScgb3B0aW9uLCBhcyB3ZWxsIGFzIGZvciB0aHJlZSBkcml2ZXJzIGluIHRo ZSBrZXJuZWwgdGhhdCBhbHdheXMKPiBlbmFibGUgLVdlcnJvciwgYnV0IGl0IHdhcyBvbmx5IG9i c2VydmVkIHdpdGggdGhlIGk5MTUgZHJpdmVyIHNvIGZhci4KPiAKPiBOYXRoYW4gQ2hhbmNlbGxv ciByZXBvcnRlZCBhbiBhZGRpdGlvbmFsIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Cj4g d2FybmluZyB0aGF0IGFwcGVhcnMgaW4gYSBzeXN0ZW0gaGVhZGVyIG9uIGFybSwgdGhpcyBzdGls bCBuZWVkcyBhCj4gd29ya2Fyb3VuZC4KPiAKPiBTaW5jZSB0aGUgZGlmZmVyZW5jZXMgYmV0d2Vl biBnbnU5OSwgZ251MTEgYW5kIGdudTE3IGFyZSBmYWlybHkgbWluaW1hbAo+IGFuZCBtYWlubHkg aW1wYWN0IHdhcm5pbmdzIGF0IHRoZSAtV3BlZGFudGljIGxldmVsIHRoYXQgdGhlIGtlcm5lbAo+ IG5ldmVyIGVuYWJsZXMsIHRoZSBlYXNpZXN0IHdheSBpcyB0byBqdXN0IGxlYXZlIG91dCB0aGUg LXN0ZD1nbnU4OQo+IGFyZ3VtZW50IGVudGlyZWx5LCBhbmQgcmVseSBvbiB0aGUgY29tcGlsZXIg ZGVmYXVsdCBsYW5ndWFnZSBzZXR0aW5nLAo+IHdoaWNoIGlzIGdudTExIGZvciBnY2MtNSwgYW5k IGdudTF4L2dudTE3IGZvciBhbGwgb3RoZXIgc3VwcG9ydGVkCj4gdmVyc2lvbnMgb2YgZ2NjIG9y IGNsYW5nLgo+IAo+IExpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvQ0FIay09d2l5 Q0g3eGVIY21pRkotWWdYVXkySmFqN3Bua2RLcGNvdnQ4ZlliVkZXM1RBQG1haWwuZ21haWwuY29t Lwo+IExpbms6IGh0dHBzOi8vZ2l0aHViLmNvbS9DbGFuZ0J1aWx0TGludXgvbGludXgvaXNzdWVz LzE2MDMKPiBTdWdnZXN0ZWQtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3Vu ZGF0aW9uLm9yZz4KPiBDYzogTWFzYWhpcm8gWWFtYWRhIDxtYXNhaGlyb3lAa2VybmVsLm9yZz4K PiBDYzogbGludXgta2J1aWxkQHZnZXIua2VybmVsLm9yZwo+IENjOiBsbHZtQGxpc3RzLmxpbnV4 LmRldgo+IFNpZ25lZC1vZmYtYnk6IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+Cj4gLS0t Cj4gSSBwdXQgdGhlIHN1Z2dlc3Rpb24gaW50byBwYXRjaCBmb3JtLCBiYXNlZCBvbiB3aGF0IHdl IGRpc2N1c3NlZAo+IGluIHRoZSB0aHJlYWQuICBJIG9ubHkgZ2F2ZSBpdCBtaW5pbWFsIHRlc3Rp bmcsIGJ1dCBpdCB3b3VsZAo+IGJlIGdvb2QgdG8gaGF2ZSBpdCBpbiBsaW51eC1uZXh0IGlmIHdl IHdhbnQgdG8gZG8gdGhpcyBpbiB0aGUKPiBtZXJnZSB3aW5kb3cuCj4gLS0tCj4gIERvY3VtZW50 YXRpb24vcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QgICAgICAgICAgICAgfCA0ICsr LS0KPiAgLi4uL3RyYW5zbGF0aW9ucy9pdF9JVC9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdl LnJzdCAgICB8IDQgKystLQo+ICAuLi4vdHJhbnNsYXRpb25zL3poX0NOL3Byb2Nlc3MvcHJvZ3Jh bW1pbmctbGFuZ3VhZ2UucnN0ICAgIHwgNCArKy0tCj4gIC4uLi90cmFuc2xhdGlvbnMvemhfVFcv cHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QgICAgfCA0ICsrLS0KPiAgTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDcgKysr LS0tLQo+ICBhcmNoL2FybTY0L2tlcm5lbC92ZHNvMzIvTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMyArLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDEgKwo+ICBkcml2ZXJzL3N0YWdpbmcvZ3JleWJ1cy90 b29scy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgMyArKy0KPiAgZnMvYnRyZnMvTWFr ZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgKwo+ICBz Y3JpcHRzL01ha2VmaWxlLmV4dHJhd2FybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMSArCj4gIDEwIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3Byb2Nlc3MvcHJvZ3JhbW1pbmct bGFuZ3VhZ2UucnN0IGIvRG9jdW1lbnRhdGlvbi9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdl LnJzdAo+IGluZGV4IGVjNDc0YTcwYTAyZi4uODk0ZjJhNmViOWRiIDEwMDY0NAo+IC0tLSBhL0Rv Y3VtZW50YXRpb24vcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKPiArKysgYi9Eb2N1 bWVudGF0aW9uL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4gQEAgLTUsOCArNSw4 IEBAIFByb2dyYW1taW5nIExhbmd1YWdlCj4gIAo+ICBUaGUga2VybmVsIGlzIHdyaXR0ZW4gaW4g dGhlIEMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgW2MtbGFuZ3VhZ2VdXy4KPiAgTW9yZSBwcmVjaXNl bHksIHRoZSBrZXJuZWwgaXMgdHlwaWNhbGx5IGNvbXBpbGVkIHdpdGggYGBnY2NgYCBbZ2NjXV8K PiAtdW5kZXIgYGAtc3RkPWdudTg5YGAgW2djYy1jLWRpYWxlY3Qtb3B0aW9uc11fOiB0aGUgR05V IGRpYWxlY3Qgb2YgSVNPIEM5MAo+IC0oaW5jbHVkaW5nIHNvbWUgQzk5IGZlYXR1cmVzKS4gYGBj bGFuZ2BgIFtjbGFuZ11fIGlzIGFsc28gc3VwcG9ydGVkLCBzZWUKPiArdW5kZXIgYGAtc3RkPWdu dTExYGAgW2djYy1jLWRpYWxlY3Qtb3B0aW9uc11fOiB0aGUgR05VIGRpYWxlY3Qgb2YgSVNPIEMx MQo+ICsoaW5jbHVkaW5nIHNvbWUgQzE3IGZlYXR1cmVzKS4gYGBjbGFuZ2BgIFtjbGFuZ11fIGlz IGFsc28gc3VwcG9ydGVkLCBzZWUKPiAgZG9jcyBvbiA6cmVmOmBCdWlsZGluZyBMaW51eCB3aXRo IENsYW5nL0xMVk0gPGtidWlsZF9sbHZtPmAuCj4gIAo+ICBUaGlzIGRpYWxlY3QgY29udGFpbnMg bWFueSBleHRlbnNpb25zIHRvIHRoZSBsYW5ndWFnZSBbZ251LWV4dGVuc2lvbnNdXywKPiBkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvaXRfSVQvcHJvY2Vzcy9wcm9ncmFt bWluZy1sYW5ndWFnZS5yc3QgYi9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy9pdF9JVC9wcm9j ZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdAo+IGluZGV4IDQxZGIyNTk4Y2UxMS4uYWEyMTA5 NzczN2FlIDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL2l0X0lUL3By b2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi90cmFu c2xhdGlvbnMvaXRfSVQvcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKPiBAQCAtMTAs OCArMTAsOCBAQCBMaW5ndWFnZ2lvIGRpIHByb2dyYW1tYXppb25lCj4gIAo+ICBJbCBrZXJuZWwg w6ggc2NyaXR0byBuZWwgbGluZ3VhZ2dpbyBkaSBwcm9ncmFtbWF6aW9uZSBDIFtpdC1jLWxhbmd1 YWdlXV8uCj4gIFBpw7kgcHJlY2lzYW1lbnRlLCBpbCBrZXJuZWwgdmllbmUgY29tcGlsYXRvIGNv biBgYGdjY2BgIFtpdC1nY2NdXyB1c2FuZG8KPiAtbCdvcHppb25lIGBgLXN0ZD1nbnU4OWBgIFtp dC1nY2MtYy1kaWFsZWN0LW9wdGlvbnNdXzogaWwgZGlhbGV0dG8gR05VCj4gLWRlbGxvIHN0YW5k YXJkIElTTyBDOTAgKGNvbiBsJ2FnZ2l1bnRhIGRpIGFsY3VuZSBmdW56aW9uYWxpdMOgIGRhIEM5 OSkuCj4gK2wnb3B6aW9uZSBgYC1zdGQ9Z251MTFgYCBbaXQtZ2NjLWMtZGlhbGVjdC1vcHRpb25z XV86IGlsIGRpYWxldHRvIEdOVQo+ICtkZWxsbyBzdGFuZGFyZCBJU08gQzExIChjb24gbCdhZ2dp dW50YSBkaSBhbGN1bmUgZnVuemlvbmFsaXTDoCBkYSBDMTcpLgo+ICBMaW51eCBzdXBwb3J0YSBh bmNoZSBgYGNsYW5nYGAgW2l0LWNsYW5nXV8sIGxlZ2dldGUgbGEgZG9jdW1lbnRhemlvbmUKPiAg OnJlZjpgQnVpbGRpbmcgTGludXggd2l0aCBDbGFuZy9MTFZNIDxrYnVpbGRfbGx2bT5gLgo+ICAK PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vcHJvY2Vzcy9w cm9ncmFtbWluZy1sYW5ndWFnZS5yc3QgYi9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9D Ti9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdAo+IGluZGV4IDJhNDdhMWQyZWMyMC4u NThkMmIzYmQyZDg1IDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3po X0NOL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4gKysrIGIvRG9jdW1lbnRhdGlv bi90cmFuc2xhdGlvbnMvemhfQ04vcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKPiBA QCAtOSw4ICs5LDggQEAKPiAgPT09PT09PT09PT09Cj4gIAo+ICDlhoXmoLjmmK/nlKhD6K+t6KiA IDpyZWY6YGMtbGFuZ3VhZ2UgPGNuX2MtbGFuZ3VhZ2U+YCDnvJblhpnnmoTjgILmm7Tlh4bnoa7l nLDor7TvvIzlhoXmoLjpgJrluLjmmK/nlKggOnJlZjpgZ2NjIDxjbl9nY2M+YAo+IC3lnKggYGAt c3RkPWdudTg5YGAgOnJlZjpgZ2NjLWMtZGlhbGVjdC1vcHRpb25zIDxjbl9nY2MtYy1kaWFsZWN0 LW9wdGlvbnM+YCDkuIvnvJbor5HnmoTvvJpJU08gQzkw55qEIEdOVSDmlrnoqIDvvIgKPiAt5YyF 5ous5LiA5LqbQzk554m55oCn77yJCj4gK+WcqCBgYC1zdGQ9Z251MTFgYCA6cmVmOmBnY2MtYy1k aWFsZWN0LW9wdGlvbnMgPGNuX2djYy1jLWRpYWxlY3Qtb3B0aW9ucz5gIOS4i+e8luivkeeahO+8 mklTTyBDMTHnmoQgR05VIOaWueiogO+8iAo+ICvljIXmi6zkuIDkuptDMTfnibnmgKfvvIkKPiAg Cj4gIOi/meenjeaWueiogOWMheWQq+WvueivreiogCA6cmVmOmBnbnUtZXh0ZW5zaW9ucyA8Y25f Z251LWV4dGVuc2lvbnM+YCDnmoTorrjlpJrmianlsZXvvIzlvZPnhLbvvIzlroPku6zorrjlpJrp g73lnKjlhoXmoLjkuK3kvb/nlKjjgIIKPiAgCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v dHJhbnNsYXRpb25zL3poX1RXL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0IGIvRG9j dW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfVFcvcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFn ZS5yc3QKPiBpbmRleCA1NGUzNjk5ZWFkZjguLjIzNWRlMDVmN2UyYyAxMDA2NDQKPiAtLS0gYS9E b2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9UVy9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1 YWdlLnJzdAo+ICsrKyBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX1RXL3Byb2Nlc3Mv cHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4gQEAgLTEyLDggKzEyLDggQEAKPiAgPT09PT09PT09 PT09Cj4gIAo+ICDlhafmoLjmmK/nlKhD6Kqe6KiAIDpyZWY6YGMtbGFuZ3VhZ2UgPHR3X2MtbGFu Z3VhZ2U+YCDnt6jlr6vnmoTjgILmm7TmupbnorrlnLDoqqrvvIzlhafmoLjpgJrluLjmmK/nlKgg OnJlZjpgZ2NjIDx0d19nY2M+YAo+IC3lnKggYGAtc3RkPWdudTg5YGAgOnJlZjpgZ2NjLWMtZGlh bGVjdC1vcHRpb25zIDx0d19nY2MtYy1kaWFsZWN0LW9wdGlvbnM+YCDkuIvnt6jora/nmoTvvJpJ U08gQzkw55qEIEdOVSDmlrnoqIDvvIgKPiAt5YyF5ous5LiA5LqbQzk554m55oCn77yJCj4gK+Wc qCBgYC1zdGQ9Z251MTFgYCA6cmVmOmBnY2MtYy1kaWFsZWN0LW9wdGlvbnMgPHR3X2djYy1jLWRp YWxlY3Qtb3B0aW9ucz5gIOS4i+e3qOitr+eahO+8mklTTyBDMTHnmoQgR05VIOaWueiogO+8iAo+ ICvljIXmi6zkuIDkuptDMTfnibnmgKfvvIkKPiAgCj4gIOmAmeeoruaWueiogOWMheWQq+Wwjeiq nuiogCA6cmVmOmBnbnUtZXh0ZW5zaW9ucyA8dHdfZ251LWV4dGVuc2lvbnM+YCDnmoToqLHlpJrm k7TlsZXvvIznlbbnhLbvvIzlroPlgJHoqLHlpJrpg73lnKjlhafmoLjkuK3kvb/nlKjjgIIKPiAg Cj4gZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKPiBpbmRleCAyODljZTJiZTgwMzIu LjNmZjZiYTc2NmYwMiAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZQo+ICsrKyBiL01ha2VmaWxlCj4g QEAgLTQzMiw3ICs0MzIsNyBAQCBIT1NUQ1hYCT0gZysrCj4gIGVuZGlmCj4gIAo+ICBleHBvcnQg S0JVSUxEX1VTRVJDRkxBR1MgOj0gLVdhbGwgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdzdHJpY3Qt cHJvdG90eXBlcyBcCj4gLQkJCSAgICAgIC1PMiAtZm9taXQtZnJhbWUtcG9pbnRlciAtc3RkPWdu dTg5Cj4gKwkJCSAgICAgIC1PMiAtZm9taXQtZnJhbWUtcG9pbnRlcgo+ICBleHBvcnQgS0JVSUxE X1VTRVJMREZMQUdTIDo9Cj4gIAo+ICBLQlVJTERfSE9TVENGTEFHUyAgIDo9ICQoS0JVSUxEX1VT RVJDRkxBR1MpICQoSE9TVF9MRlNfQ0ZMQUdTKSAkKEhPU1RDRkxBR1MpCj4gQEAgLTUxNCw4ICs1 MTQsNyBAQCBLQlVJTERfQUZMQUdTICAgOj0gLURfX0FTU0VNQkxZX18gLWZuby1QSUUKPiAgS0JV SUxEX0NGTEFHUyAgIDo9IC1XYWxsIC1XdW5kZWYgLVdlcnJvcj1zdHJpY3QtcHJvdG90eXBlcyAt V25vLXRyaWdyYXBocyBcCj4gIAkJICAgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1jb21tb24g LWZzaG9ydC13Y2hhciAtZm5vLVBJRSBcCj4gIAkJICAgLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlv bi1kZWNsYXJhdGlvbiAtV2Vycm9yPWltcGxpY2l0LWludCBcCj4gLQkJICAgLVdlcnJvcj1yZXR1 cm4tdHlwZSAtV25vLWZvcm1hdC1zZWN1cml0eSBcCj4gLQkJICAgLXN0ZD1nbnU4OQo+ICsJCSAg IC1XZXJyb3I9cmV0dXJuLXR5cGUgLVduby1mb3JtYXQtc2VjdXJpdHkKPiAgS0JVSUxEX0NQUEZM QUdTIDo9IC1EX19LRVJORUxfXwo+ICBLQlVJTERfQUZMQUdTX0tFUk5FTCA6PQo+ICBLQlVJTERf Q0ZMQUdTX0tFUk5FTCA6PQo+IEBAIC03ODIsNyArNzgxLDcgQEAgS0JVSUxEX0NGTEFHUyArPSAk KEtCVUlMRF9DRkxBR1MteSkgJChDT05GSUdfQ0NfSU1QTElDSVRfRkFMTFRIUk9VR0gpCj4gIAo+ ICBpZmRlZiBDT05GSUdfQ0NfSVNfQ0xBTkcKPiAgS0JVSUxEX0NQUEZMQUdTICs9IC1RdW51c2Vk LWFyZ3VtZW50cwo+IC0jIFRoZSBrZXJuZWwgYnVpbGRzIHdpdGggJy1zdGQ9Z251ODknIHNvIHVz ZSBvZiBHTlUgZXh0ZW5zaW9ucyBpcyBhY2NlcHRhYmxlLgo+ICsjIFRoZSBrZXJuZWwgYnVpbGRz IHdpdGggJy1zdGQ9Z251MTEnIHNvIHVzZSBvZiBHTlUgZXh0ZW5zaW9ucyBpcyBhY2NlcHRhYmxl Lgo+ICBLQlVJTERfQ0ZMQUdTICs9IC1Xbm8tZ251Cj4gICMgQ0xBTkcgdXNlcyBhIF9NZXJnZWRH bG9iYWxzIGFzIG9wdGltaXphdGlvbiwgYnV0IHRoaXMgYnJlYWtzIG1vZHBvc3QsIGFzIHRoZQo+ ICAjIHNvdXJjZSBvZiBhIHJlZmVyZW5jZSB3aWxsIGJlIF9NZXJnZWRHbG9iYWxzIGFuZCBub3Qg b24gb2YgdGhlIHdoaXRlbGlzdGVkIG5hbWVzLgo+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tl cm5lbC92ZHNvMzIvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2tlcm5lbC92ZHNvMzIvTWFrZWZpbGUK PiBpbmRleCA2YzAxYjYzZmY1NmQuLjMyNTBkMGUyNTc4MiAxMDA2NDQKPiAtLS0gYS9hcmNoL2Fy bTY0L2tlcm5lbC92ZHNvMzIvTWFrZWZpbGUKPiArKysgYi9hcmNoL2FybTY0L2tlcm5lbC92ZHNv MzIvTWFrZWZpbGUKPiBAQCAtNjcsOCArNjcsNyBAQCBWRFNPX0NGTEFHUyArPSAtREVOQUJMRV9D T01QQVRfVkRTTz0xCj4gIFZEU09fQ0ZMQUdTICs9IC1XYWxsIC1XdW5kZWYgLVdzdHJpY3QtcHJv dG90eXBlcyAtV25vLXRyaWdyYXBocyBcCj4gICAgICAgICAgICAgICAgIC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1mbm8tY29tbW9uIFwKPiAgICAgICAgICAgICAgICAgLVdlcnJvci1pbXBsaWNpdC1m dW5jdGlvbi1kZWNsYXJhdGlvbiBcCj4gLSAgICAgICAgICAgICAgIC1Xbm8tZm9ybWF0LXNlY3Vy aXR5IFwKPiAtICAgICAgICAgICAgICAgLXN0ZD1nbnU4OQo+ICsgICAgICAgICAgICAgICAtV25v LWZvcm1hdC1zZWN1cml0eQo+ICBWRFNPX0NGTEFHUyAgKz0gLU8yCj4gICMgU29tZSB1c2VmdWwg Y29tcGlsZXItZGVwZW5kZW50IGZsYWdzIGZyb20gdG9wLWxldmVsIE1ha2VmaWxlCj4gIFZEU09f Q0ZMQUdTICs9ICQoY2FsbCBjYzMyLW9wdGlvbiwtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVu dCwpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPiBpbmRleCAxYjYyYjlmNjUxOTYuLjE2MThhNmUwYWY0 ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gQEAgLTE3LDYgKzE3LDcgQEAgc3ViZGlyLWNj ZmxhZ3MteSArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIKPiAgc3ViZGlyLWNjZmxhZ3MteSArPSAt V25vLXR5cGUtbGltaXRzCj4gIHN1YmRpci1jY2ZsYWdzLXkgKz0gLVduby1taXNzaW5nLWZpZWxk LWluaXRpYWxpemVycwo+ICBzdWJkaXItY2NmbGFncy15ICs9IC1Xbm8tc2lnbi1jb21wYXJlCj4g K3N1YmRpci1jY2ZsYWdzLXkgKz0gLVduby1zaGlmdC1uZWdhdGl2ZS12YWx1ZQo+ICBzdWJkaXIt Y2NmbGFncy15ICs9ICQoY2FsbCBjYy1kaXNhYmxlLXdhcm5pbmcsIHVudXNlZC1idXQtc2V0LXZh cmlhYmxlKQo+ICBzdWJkaXItY2NmbGFncy15ICs9ICQoY2FsbCBjYy1kaXNhYmxlLXdhcm5pbmcs IGZyYW1lLWFkZHJlc3MpCj4gIHN1YmRpci1jY2ZsYWdzLSQoQ09ORklHX0RSTV9JOTE1X1dFUlJP UikgKz0gLVdlcnJvcgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvZ3JleWJ1cy90b29s cy9NYWtlZmlsZSBiL2RyaXZlcnMvc3RhZ2luZy9ncmV5YnVzL3Rvb2xzL01ha2VmaWxlCj4gaW5k ZXggYWQwYWU4MDUzYjc5Li5hM2JiZDczMTcxZjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9zdGFn aW5nL2dyZXlidXMvdG9vbHMvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvZ3JleWJ1 cy90b29scy9NYWtlZmlsZQo+IEBAIC0xMiw3ICsxMiw4IEBAIENGTEFHUwkrPSAtc3RkPWdudTk5 IC1XYWxsIC1XZXh0cmEgLWcgXAo+ICAJICAgIC1XcmVkdW5kYW50LWRlY2xzIFwKPiAgCSAgICAt V2Nhc3QtYWxpZ24gXAo+ICAJICAgIC1Xc2lnbi1jb21wYXJlIFwKPiAtCSAgICAtV25vLW1pc3Np bmctZmllbGQtaW5pdGlhbGl6ZXJzCj4gKwkgICAgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxp emVycyBcCj4gKwkgICAgLVduby1zaGlmdC1uZWdhdGl2ZS12YWx1ZQo+ICAKPiAgQ0MJOj0gJChD Uk9TU19DT01QSUxFKWdjYwo+ICAKPiBkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvTWFrZWZpbGUgYi9m cy9idHJmcy9NYWtlZmlsZQo+IGluZGV4IDQxODhiYTNmZDhjMy4uOTlmOTk5NTY3MGVhIDEwMDY0 NAo+IC0tLSBhL2ZzL2J0cmZzL01ha2VmaWxlCj4gKysrIGIvZnMvYnRyZnMvTWFrZWZpbGUKPiBA QCAtMTcsNiArMTcsNyBAQCBzdWJkaXItY2NmbGFncy15ICs9ICQoY29uZGZsYWdzKQo+ICBzdWJk aXItY2NmbGFncy15ICs9IC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMKPiAgc3ViZGly LWNjZmxhZ3MteSArPSAtV25vLXNpZ24tY29tcGFyZQo+ICBzdWJkaXItY2NmbGFncy15ICs9IC1X bm8tdHlwZS1saW1pdHMKPiArc3ViZGlyLWNjZmxhZ3MteSArPSAtV25vLXNoaWZ0LW5lZ2F0aXZl LXZhbHVlCj4gIAo+ICBvYmotJChDT05GSUdfQlRSRlNfRlMpIDo9IGJ0cmZzLm8KPiAgCj4gZGlm ZiAtLWdpdCBhL3NjcmlwdHMvTWFrZWZpbGUuZXh0cmF3YXJuIGIvc2NyaXB0cy9NYWtlZmlsZS5l eHRyYXdhcm4KPiBpbmRleCA4YmU4OTI4ODdkNzEuLjY1MGQwYjhjZWVjMyAxMDA2NDQKPiAtLS0g YS9zY3JpcHRzL01ha2VmaWxlLmV4dHJhd2Fybgo+ICsrKyBiL3NjcmlwdHMvTWFrZWZpbGUuZXh0 cmF3YXJuCj4gQEAgLTM2LDYgKzM2LDcgQEAgS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0 aW9uLCAtV3N0cmluZ29wLXRydW5jYXRpb24pCj4gIEtCVUlMRF9DRkxBR1MgKz0gLVduby1taXNz aW5nLWZpZWxkLWluaXRpYWxpemVycwo+ICBLQlVJTERfQ0ZMQUdTICs9IC1Xbm8tc2lnbi1jb21w YXJlCj4gIEtCVUlMRF9DRkxBR1MgKz0gLVduby10eXBlLWxpbWl0cwo+ICtLQlVJTERfQ0ZMQUdT ICs9IC1Xbm8tc2hpZnQtbmVnYXRpdmUtdmFsdWUKPiAgCj4gIEtCVUlMRF9DUFBGTEFHUyArPSAt REtCVUlMRF9FWFRSQV9XQVJOMQo+ICAKPiAtLSAKPiAyLjI5LjIKPiAKCi0tIAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.stoffel.org (li1843-175.members.linode.com [172.104.24.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 055D87B; Mon, 28 Feb 2022 00:19:35 +0000 (UTC) Received: from quad.stoffel.org (068-116-170-226.res.spectrum.com [68.116.170.226]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.stoffel.org (Postfix) with ESMTPSA id 989E32708E; Sun, 27 Feb 2022 19:14:17 -0500 (EST) Received: by quad.stoffel.org (Postfix, from userid 1000) id DBCDDA7992; Sun, 27 Feb 2022 19:14:16 -0500 (EST) Date: Sun, 27 Feb 2022 19:14:16 -0500 From: John Stoffel To: Arnd Bergmann Cc: linux-kbuild@vger.kernel.org, Arnd Bergmann , Linus Torvalds , Masahiro Yamada , llvm@lists.linux.dev, Jonathan Corbet , Federico Vaga , Alex Shi , Hu Haowen , Michal Marek , Nick Desaulniers , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc-tw-discuss@lists.sourceforge.net, linux-arm-kernel@lists.infradead.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-btrfs@vger.kernel.org Subject: Re: [PATCH] Kbuild: remove -std=gnu89 from compiler arguments Message-ID: References: <20220227215408.3180023-1-arnd@kernel.org> Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220227215408.3180023-1-arnd@kernel.org> On Sun, Feb 27, 2022 at 10:52:43PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann > > During a patch discussion, Linus brought up the option of changing > the C standard version from gnu89 to gnu99, which allows using variable > declaration inside of a for() loop. While the C99, C11 and later standards > introduce many other features, most of these are already available in > gnu89 as GNU extensions as well. > > An earlier attempt to do this when gcc-5 started defaulting to > -std=gnu11 failed because at the time that caused warnings about > designated initializers with older compilers. Now that gcc-5.1 is the > minimum compiler version used for building kernels, that is no longer a > concern. Similarly, the behavior of 'inline' functions changes between > gnu89 and gnu89, but this was taken care of by defining 'inline' to Typo here? Second one should be gnu99 right? > include __attribute__((gnu_inline)) in order to allow building with > clang a while ago. > > One minor issue that remains is an added gcc warning for shifts of > negative integers when building with -Werror, which happens with the > 'make W=1' option, as well as for three drivers in the kernel that always > enable -Werror, but it was only observed with the i915 driver so far. > > Nathan Chancellor reported an additional -Wdeclaration-after-statement > warning that appears in a system header on arm, this still needs a > workaround. > > Since the differences between gnu99, gnu11 and gnu17 are fairly minimal > and mainly impact warnings at the -Wpedantic level that the kernel > never enables, the easiest way is to just leave out the -std=gnu89 > argument entirely, and rely on the compiler default language setting, > which is gnu11 for gcc-5, and gnu1x/gnu17 for all other supported > versions of gcc or clang. > > Link: https://lore.kernel.org/lkml/CAHk-=wiyCH7xeHcmiFJ-YgXUy2Jaj7pnkdKpcovt8fYbVFW3TA@mail.gmail.com/ > Link: https://github.com/ClangBuiltLinux/linux/issues/1603 > Suggested-by: Linus Torvalds > Cc: Masahiro Yamada > Cc: linux-kbuild@vger.kernel.org > Cc: llvm@lists.linux.dev > Signed-off-by: Arnd Bergmann > --- > I put the suggestion into patch form, based on what we discussed > in the thread. I only gave it minimal testing, but it would > be good to have it in linux-next if we want to do this in the > merge window. > --- > Documentation/process/programming-language.rst | 4 ++-- > .../translations/it_IT/process/programming-language.rst | 4 ++-- > .../translations/zh_CN/process/programming-language.rst | 4 ++-- > .../translations/zh_TW/process/programming-language.rst | 4 ++-- > Makefile | 7 +++---- > arch/arm64/kernel/vdso32/Makefile | 3 +-- > drivers/gpu/drm/i915/Makefile | 1 + > drivers/staging/greybus/tools/Makefile | 3 ++- > fs/btrfs/Makefile | 1 + > scripts/Makefile.extrawarn | 1 + > 10 files changed, 17 insertions(+), 15 deletions(-) > > diff --git a/Documentation/process/programming-language.rst b/Documentation/process/programming-language.rst > index ec474a70a02f..894f2a6eb9db 100644 > --- a/Documentation/process/programming-language.rst > +++ b/Documentation/process/programming-language.rst > @@ -5,8 +5,8 @@ Programming Language > > The kernel is written in the C programming language [c-language]_. > More precisely, the kernel is typically compiled with ``gcc`` [gcc]_ > -under ``-std=gnu89`` [gcc-c-dialect-options]_: the GNU dialect of ISO C90 > -(including some C99 features). ``clang`` [clang]_ is also supported, see > +under ``-std=gnu11`` [gcc-c-dialect-options]_: the GNU dialect of ISO C11 > +(including some C17 features). ``clang`` [clang]_ is also supported, see > docs on :ref:`Building Linux with Clang/LLVM `. > > This dialect contains many extensions to the language [gnu-extensions]_, > diff --git a/Documentation/translations/it_IT/process/programming-language.rst b/Documentation/translations/it_IT/process/programming-language.rst > index 41db2598ce11..aa21097737ae 100644 > --- a/Documentation/translations/it_IT/process/programming-language.rst > +++ b/Documentation/translations/it_IT/process/programming-language.rst > @@ -10,8 +10,8 @@ Linguaggio di programmazione > > Il kernel è scritto nel linguaggio di programmazione C [it-c-language]_. > Più precisamente, il kernel viene compilato con ``gcc`` [it-gcc]_ usando > -l'opzione ``-std=gnu89`` [it-gcc-c-dialect-options]_: il dialetto GNU > -dello standard ISO C90 (con l'aggiunta di alcune funzionalità da C99). > +l'opzione ``-std=gnu11`` [it-gcc-c-dialect-options]_: il dialetto GNU > +dello standard ISO C11 (con l'aggiunta di alcune funzionalità da C17). > Linux supporta anche ``clang`` [it-clang]_, leggete la documentazione > :ref:`Building Linux with Clang/LLVM `. > > diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst > index 2a47a1d2ec20..58d2b3bd2d85 100644 > --- a/Documentation/translations/zh_CN/process/programming-language.rst > +++ b/Documentation/translations/zh_CN/process/programming-language.rst > @@ -9,8 +9,8 @@ > ============ > > 内核是用C语言 :ref:`c-language ` 编写的。更准确地说,内核通常是用 :ref:`gcc ` > -在 ``-std=gnu89`` :ref:`gcc-c-dialect-options ` 下编译的:ISO C90的 GNU 方言( > -包括一些C99特性) > +在 ``-std=gnu11`` :ref:`gcc-c-dialect-options ` 下编译的:ISO C11的 GNU 方言( > +包括一些C17特性) > > 这种方言包含对语言 :ref:`gnu-extensions ` 的许多扩展,当然,它们许多都在内核中使用。 > > diff --git a/Documentation/translations/zh_TW/process/programming-language.rst b/Documentation/translations/zh_TW/process/programming-language.rst > index 54e3699eadf8..235de05f7e2c 100644 > --- a/Documentation/translations/zh_TW/process/programming-language.rst > +++ b/Documentation/translations/zh_TW/process/programming-language.rst > @@ -12,8 +12,8 @@ > ============ > > 內核是用C語言 :ref:`c-language ` 編寫的。更準確地說,內核通常是用 :ref:`gcc ` > -在 ``-std=gnu89`` :ref:`gcc-c-dialect-options ` 下編譯的:ISO C90的 GNU 方言( > -包括一些C99特性) > +在 ``-std=gnu11`` :ref:`gcc-c-dialect-options ` 下編譯的:ISO C11的 GNU 方言( > +包括一些C17特性) > > 這種方言包含對語言 :ref:`gnu-extensions ` 的許多擴展,當然,它們許多都在內核中使用。 > > diff --git a/Makefile b/Makefile > index 289ce2be8032..3ff6ba766f02 100644 > --- a/Makefile > +++ b/Makefile > @@ -432,7 +432,7 @@ HOSTCXX = g++ > endif > > export KBUILD_USERCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \ > - -O2 -fomit-frame-pointer -std=gnu89 > + -O2 -fomit-frame-pointer > export KBUILD_USERLDFLAGS := > > KBUILD_HOSTCFLAGS := $(KBUILD_USERCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS) > @@ -514,8 +514,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE > KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \ > -Werror=implicit-function-declaration -Werror=implicit-int \ > - -Werror=return-type -Wno-format-security \ > - -std=gnu89 > + -Werror=return-type -Wno-format-security > KBUILD_CPPFLAGS := -D__KERNEL__ > KBUILD_AFLAGS_KERNEL := > KBUILD_CFLAGS_KERNEL := > @@ -782,7 +781,7 @@ KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH) > > ifdef CONFIG_CC_IS_CLANG > KBUILD_CPPFLAGS += -Qunused-arguments > -# The kernel builds with '-std=gnu89' so use of GNU extensions is acceptable. > +# The kernel builds with '-std=gnu11' so use of GNU extensions is acceptable. > KBUILD_CFLAGS += -Wno-gnu > # CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the > # source of a reference will be _MergedGlobals and not on of the whitelisted names. > diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile > index 6c01b63ff56d..3250d0e25782 100644 > --- a/arch/arm64/kernel/vdso32/Makefile > +++ b/arch/arm64/kernel/vdso32/Makefile > @@ -67,8 +67,7 @@ VDSO_CFLAGS += -DENABLE_COMPAT_VDSO=1 > VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common \ > -Werror-implicit-function-declaration \ > - -Wno-format-security \ > - -std=gnu89 > + -Wno-format-security > VDSO_CFLAGS += -O2 > # Some useful compiler-dependent flags from top-level Makefile > VDSO_CFLAGS += $(call cc32-option,-Wdeclaration-after-statement,) > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index 1b62b9f65196..1618a6e0af4e 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -17,6 +17,7 @@ subdir-ccflags-y += -Wno-unused-parameter > subdir-ccflags-y += -Wno-type-limits > subdir-ccflags-y += -Wno-missing-field-initializers > subdir-ccflags-y += -Wno-sign-compare > +subdir-ccflags-y += -Wno-shift-negative-value > subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable) > subdir-ccflags-y += $(call cc-disable-warning, frame-address) > subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror > diff --git a/drivers/staging/greybus/tools/Makefile b/drivers/staging/greybus/tools/Makefile > index ad0ae8053b79..a3bbd73171f2 100644 > --- a/drivers/staging/greybus/tools/Makefile > +++ b/drivers/staging/greybus/tools/Makefile > @@ -12,7 +12,8 @@ CFLAGS += -std=gnu99 -Wall -Wextra -g \ > -Wredundant-decls \ > -Wcast-align \ > -Wsign-compare \ > - -Wno-missing-field-initializers > + -Wno-missing-field-initializers \ > + -Wno-shift-negative-value > > CC := $(CROSS_COMPILE)gcc > > diff --git a/fs/btrfs/Makefile b/fs/btrfs/Makefile > index 4188ba3fd8c3..99f9995670ea 100644 > --- a/fs/btrfs/Makefile > +++ b/fs/btrfs/Makefile > @@ -17,6 +17,7 @@ subdir-ccflags-y += $(condflags) > subdir-ccflags-y += -Wno-missing-field-initializers > subdir-ccflags-y += -Wno-sign-compare > subdir-ccflags-y += -Wno-type-limits > +subdir-ccflags-y += -Wno-shift-negative-value > > obj-$(CONFIG_BTRFS_FS) := btrfs.o > > diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn > index 8be892887d71..650d0b8ceec3 100644 > --- a/scripts/Makefile.extrawarn > +++ b/scripts/Makefile.extrawarn > @@ -36,6 +36,7 @@ KBUILD_CFLAGS += $(call cc-option, -Wstringop-truncation) > KBUILD_CFLAGS += -Wno-missing-field-initializers > KBUILD_CFLAGS += -Wno-sign-compare > KBUILD_CFLAGS += -Wno-type-limits > +KBUILD_CFLAGS += -Wno-shift-negative-value > > KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN1 > > -- > 2.29.2 > -- 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 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 41BD3C433EF for ; Mon, 28 Feb 2022 11:45:03 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5FB1010E495; Mon, 28 Feb 2022 11:45:01 +0000 (UTC) X-Greylist: delayed 315 seconds by postgrey-1.36 at gabe; Mon, 28 Feb 2022 00:19:35 UTC Received: from mail.stoffel.org (li1843-175.members.linode.com [172.104.24.175]) by gabe.freedesktop.org (Postfix) with ESMTPS id 819E310E1F1; Mon, 28 Feb 2022 00:19:35 +0000 (UTC) Received: from quad.stoffel.org (068-116-170-226.res.spectrum.com [68.116.170.226]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.stoffel.org (Postfix) with ESMTPSA id 989E32708E; Sun, 27 Feb 2022 19:14:17 -0500 (EST) Received: by quad.stoffel.org (Postfix, from userid 1000) id DBCDDA7992; Sun, 27 Feb 2022 19:14:16 -0500 (EST) Date: Sun, 27 Feb 2022 19:14:16 -0500 From: John Stoffel To: Arnd Bergmann Subject: Re: [PATCH] Kbuild: remove -std=gnu89 from compiler arguments Message-ID: References: <20220227215408.3180023-1-arnd@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220227215408.3180023-1-arnd@kernel.org> X-Mailman-Approved-At: Mon, 28 Feb 2022 11:45:00 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-arm-kernel@lists.infradead.org, Michal Marek , linux-doc@vger.kernel.org, Arnd Bergmann , Jonathan Corbet , linux-staging@lists.linux.dev, Masahiro Yamada , llvm@lists.linux.dev, Nick Desaulniers , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, greybus-dev@lists.linaro.org, Alex Shi , Federico Vaga , Hu Haowen , intel-gfx@lists.freedesktop.org, linux-btrfs@vger.kernel.org, Linus Torvalds , linux-doc-tw-discuss@lists.sourceforge.net, linux-kbuild@vger.kernel.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Sun, Feb 27, 2022 at 10:52:43PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann > > During a patch discussion, Linus brought up the option of changing > the C standard version from gnu89 to gnu99, which allows using variable > declaration inside of a for() loop. While the C99, C11 and later standards > introduce many other features, most of these are already available in > gnu89 as GNU extensions as well. > > An earlier attempt to do this when gcc-5 started defaulting to > -std=gnu11 failed because at the time that caused warnings about > designated initializers with older compilers. Now that gcc-5.1 is the > minimum compiler version used for building kernels, that is no longer a > concern. Similarly, the behavior of 'inline' functions changes between > gnu89 and gnu89, but this was taken care of by defining 'inline' to Typo here? Second one should be gnu99 right? > include __attribute__((gnu_inline)) in order to allow building with > clang a while ago. > > One minor issue that remains is an added gcc warning for shifts of > negative integers when building with -Werror, which happens with the > 'make W=1' option, as well as for three drivers in the kernel that always > enable -Werror, but it was only observed with the i915 driver so far. > > Nathan Chancellor reported an additional -Wdeclaration-after-statement > warning that appears in a system header on arm, this still needs a > workaround. > > Since the differences between gnu99, gnu11 and gnu17 are fairly minimal > and mainly impact warnings at the -Wpedantic level that the kernel > never enables, the easiest way is to just leave out the -std=gnu89 > argument entirely, and rely on the compiler default language setting, > which is gnu11 for gcc-5, and gnu1x/gnu17 for all other supported > versions of gcc or clang. > > Link: https://lore.kernel.org/lkml/CAHk-=wiyCH7xeHcmiFJ-YgXUy2Jaj7pnkdKpcovt8fYbVFW3TA@mail.gmail.com/ > Link: https://github.com/ClangBuiltLinux/linux/issues/1603 > Suggested-by: Linus Torvalds > Cc: Masahiro Yamada > Cc: linux-kbuild@vger.kernel.org > Cc: llvm@lists.linux.dev > Signed-off-by: Arnd Bergmann > --- > I put the suggestion into patch form, based on what we discussed > in the thread. I only gave it minimal testing, but it would > be good to have it in linux-next if we want to do this in the > merge window. > --- > Documentation/process/programming-language.rst | 4 ++-- > .../translations/it_IT/process/programming-language.rst | 4 ++-- > .../translations/zh_CN/process/programming-language.rst | 4 ++-- > .../translations/zh_TW/process/programming-language.rst | 4 ++-- > Makefile | 7 +++---- > arch/arm64/kernel/vdso32/Makefile | 3 +-- > drivers/gpu/drm/i915/Makefile | 1 + > drivers/staging/greybus/tools/Makefile | 3 ++- > fs/btrfs/Makefile | 1 + > scripts/Makefile.extrawarn | 1 + > 10 files changed, 17 insertions(+), 15 deletions(-) > > diff --git a/Documentation/process/programming-language.rst b/Documentation/process/programming-language.rst > index ec474a70a02f..894f2a6eb9db 100644 > --- a/Documentation/process/programming-language.rst > +++ b/Documentation/process/programming-language.rst > @@ -5,8 +5,8 @@ Programming Language > > The kernel is written in the C programming language [c-language]_. > More precisely, the kernel is typically compiled with ``gcc`` [gcc]_ > -under ``-std=gnu89`` [gcc-c-dialect-options]_: the GNU dialect of ISO C90 > -(including some C99 features). ``clang`` [clang]_ is also supported, see > +under ``-std=gnu11`` [gcc-c-dialect-options]_: the GNU dialect of ISO C11 > +(including some C17 features). ``clang`` [clang]_ is also supported, see > docs on :ref:`Building Linux with Clang/LLVM `. > > This dialect contains many extensions to the language [gnu-extensions]_, > diff --git a/Documentation/translations/it_IT/process/programming-language.rst b/Documentation/translations/it_IT/process/programming-language.rst > index 41db2598ce11..aa21097737ae 100644 > --- a/Documentation/translations/it_IT/process/programming-language.rst > +++ b/Documentation/translations/it_IT/process/programming-language.rst > @@ -10,8 +10,8 @@ Linguaggio di programmazione > > Il kernel è scritto nel linguaggio di programmazione C [it-c-language]_. > Più precisamente, il kernel viene compilato con ``gcc`` [it-gcc]_ usando > -l'opzione ``-std=gnu89`` [it-gcc-c-dialect-options]_: il dialetto GNU > -dello standard ISO C90 (con l'aggiunta di alcune funzionalità da C99). > +l'opzione ``-std=gnu11`` [it-gcc-c-dialect-options]_: il dialetto GNU > +dello standard ISO C11 (con l'aggiunta di alcune funzionalità da C17). > Linux supporta anche ``clang`` [it-clang]_, leggete la documentazione > :ref:`Building Linux with Clang/LLVM `. > > diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst > index 2a47a1d2ec20..58d2b3bd2d85 100644 > --- a/Documentation/translations/zh_CN/process/programming-language.rst > +++ b/Documentation/translations/zh_CN/process/programming-language.rst > @@ -9,8 +9,8 @@ > ============ > > 内核是用C语言 :ref:`c-language ` 编写的。更准确地说,内核通常是用 :ref:`gcc ` > -在 ``-std=gnu89`` :ref:`gcc-c-dialect-options ` 下编译的:ISO C90的 GNU 方言( > -包括一些C99特性) > +在 ``-std=gnu11`` :ref:`gcc-c-dialect-options ` 下编译的:ISO C11的 GNU 方言( > +包括一些C17特性) > > 这种方言包含对语言 :ref:`gnu-extensions ` 的许多扩展,当然,它们许多都在内核中使用。 > > diff --git a/Documentation/translations/zh_TW/process/programming-language.rst b/Documentation/translations/zh_TW/process/programming-language.rst > index 54e3699eadf8..235de05f7e2c 100644 > --- a/Documentation/translations/zh_TW/process/programming-language.rst > +++ b/Documentation/translations/zh_TW/process/programming-language.rst > @@ -12,8 +12,8 @@ > ============ > > 內核是用C語言 :ref:`c-language ` 編寫的。更準確地說,內核通常是用 :ref:`gcc ` > -在 ``-std=gnu89`` :ref:`gcc-c-dialect-options ` 下編譯的:ISO C90的 GNU 方言( > -包括一些C99特性) > +在 ``-std=gnu11`` :ref:`gcc-c-dialect-options ` 下編譯的:ISO C11的 GNU 方言( > +包括一些C17特性) > > 這種方言包含對語言 :ref:`gnu-extensions ` 的許多擴展,當然,它們許多都在內核中使用。 > > diff --git a/Makefile b/Makefile > index 289ce2be8032..3ff6ba766f02 100644 > --- a/Makefile > +++ b/Makefile > @@ -432,7 +432,7 @@ HOSTCXX = g++ > endif > > export KBUILD_USERCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \ > - -O2 -fomit-frame-pointer -std=gnu89 > + -O2 -fomit-frame-pointer > export KBUILD_USERLDFLAGS := > > KBUILD_HOSTCFLAGS := $(KBUILD_USERCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS) > @@ -514,8 +514,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE > KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \ > -Werror=implicit-function-declaration -Werror=implicit-int \ > - -Werror=return-type -Wno-format-security \ > - -std=gnu89 > + -Werror=return-type -Wno-format-security > KBUILD_CPPFLAGS := -D__KERNEL__ > KBUILD_AFLAGS_KERNEL := > KBUILD_CFLAGS_KERNEL := > @@ -782,7 +781,7 @@ KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH) > > ifdef CONFIG_CC_IS_CLANG > KBUILD_CPPFLAGS += -Qunused-arguments > -# The kernel builds with '-std=gnu89' so use of GNU extensions is acceptable. > +# The kernel builds with '-std=gnu11' so use of GNU extensions is acceptable. > KBUILD_CFLAGS += -Wno-gnu > # CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the > # source of a reference will be _MergedGlobals and not on of the whitelisted names. > diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile > index 6c01b63ff56d..3250d0e25782 100644 > --- a/arch/arm64/kernel/vdso32/Makefile > +++ b/arch/arm64/kernel/vdso32/Makefile > @@ -67,8 +67,7 @@ VDSO_CFLAGS += -DENABLE_COMPAT_VDSO=1 > VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common \ > -Werror-implicit-function-declaration \ > - -Wno-format-security \ > - -std=gnu89 > + -Wno-format-security > VDSO_CFLAGS += -O2 > # Some useful compiler-dependent flags from top-level Makefile > VDSO_CFLAGS += $(call cc32-option,-Wdeclaration-after-statement,) > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index 1b62b9f65196..1618a6e0af4e 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -17,6 +17,7 @@ subdir-ccflags-y += -Wno-unused-parameter > subdir-ccflags-y += -Wno-type-limits > subdir-ccflags-y += -Wno-missing-field-initializers > subdir-ccflags-y += -Wno-sign-compare > +subdir-ccflags-y += -Wno-shift-negative-value > subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable) > subdir-ccflags-y += $(call cc-disable-warning, frame-address) > subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror > diff --git a/drivers/staging/greybus/tools/Makefile b/drivers/staging/greybus/tools/Makefile > index ad0ae8053b79..a3bbd73171f2 100644 > --- a/drivers/staging/greybus/tools/Makefile > +++ b/drivers/staging/greybus/tools/Makefile > @@ -12,7 +12,8 @@ CFLAGS += -std=gnu99 -Wall -Wextra -g \ > -Wredundant-decls \ > -Wcast-align \ > -Wsign-compare \ > - -Wno-missing-field-initializers > + -Wno-missing-field-initializers \ > + -Wno-shift-negative-value > > CC := $(CROSS_COMPILE)gcc > > diff --git a/fs/btrfs/Makefile b/fs/btrfs/Makefile > index 4188ba3fd8c3..99f9995670ea 100644 > --- a/fs/btrfs/Makefile > +++ b/fs/btrfs/Makefile > @@ -17,6 +17,7 @@ subdir-ccflags-y += $(condflags) > subdir-ccflags-y += -Wno-missing-field-initializers > subdir-ccflags-y += -Wno-sign-compare > subdir-ccflags-y += -Wno-type-limits > +subdir-ccflags-y += -Wno-shift-negative-value > > obj-$(CONFIG_BTRFS_FS) := btrfs.o > > diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn > index 8be892887d71..650d0b8ceec3 100644 > --- a/scripts/Makefile.extrawarn > +++ b/scripts/Makefile.extrawarn > @@ -36,6 +36,7 @@ KBUILD_CFLAGS += $(call cc-option, -Wstringop-truncation) > KBUILD_CFLAGS += -Wno-missing-field-initializers > KBUILD_CFLAGS += -Wno-sign-compare > KBUILD_CFLAGS += -Wno-type-limits > +KBUILD_CFLAGS += -Wno-shift-negative-value > > KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN1 > > -- > 2.29.2 > -- 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 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2AF5DC433EF for ; Mon, 28 Feb 2022 14:27:21 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3363210E836; Mon, 28 Feb 2022 14:27:20 +0000 (UTC) X-Greylist: delayed 315 seconds by postgrey-1.36 at gabe; Mon, 28 Feb 2022 00:19:35 UTC Received: from mail.stoffel.org (li1843-175.members.linode.com [172.104.24.175]) by gabe.freedesktop.org (Postfix) with ESMTPS id 819E310E1F1; Mon, 28 Feb 2022 00:19:35 +0000 (UTC) Received: from quad.stoffel.org (068-116-170-226.res.spectrum.com [68.116.170.226]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.stoffel.org (Postfix) with ESMTPSA id 989E32708E; Sun, 27 Feb 2022 19:14:17 -0500 (EST) Received: by quad.stoffel.org (Postfix, from userid 1000) id DBCDDA7992; Sun, 27 Feb 2022 19:14:16 -0500 (EST) Date: Sun, 27 Feb 2022 19:14:16 -0500 From: John Stoffel To: Arnd Bergmann Message-ID: References: <20220227215408.3180023-1-arnd@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220227215408.3180023-1-arnd@kernel.org> X-Mailman-Approved-At: Mon, 28 Feb 2022 14:26:05 +0000 Subject: Re: [Intel-gfx] [PATCH] Kbuild: remove -std=gnu89 from compiler arguments X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-arm-kernel@lists.infradead.org, Michal Marek , linux-doc@vger.kernel.org, Arnd Bergmann , Jonathan Corbet , linux-staging@lists.linux.dev, Masahiro Yamada , llvm@lists.linux.dev, Nick Desaulniers , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, greybus-dev@lists.linaro.org, Alex Shi , Federico Vaga , Hu Haowen , intel-gfx@lists.freedesktop.org, linux-btrfs@vger.kernel.org, Linus Torvalds , linux-doc-tw-discuss@lists.sourceforge.net, linux-kbuild@vger.kernel.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Sun, Feb 27, 2022 at 10:52:43PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann > > During a patch discussion, Linus brought up the option of changing > the C standard version from gnu89 to gnu99, which allows using variable > declaration inside of a for() loop. While the C99, C11 and later standards > introduce many other features, most of these are already available in > gnu89 as GNU extensions as well. > > An earlier attempt to do this when gcc-5 started defaulting to > -std=gnu11 failed because at the time that caused warnings about > designated initializers with older compilers. Now that gcc-5.1 is the > minimum compiler version used for building kernels, that is no longer a > concern. Similarly, the behavior of 'inline' functions changes between > gnu89 and gnu89, but this was taken care of by defining 'inline' to Typo here? Second one should be gnu99 right? > include __attribute__((gnu_inline)) in order to allow building with > clang a while ago. > > One minor issue that remains is an added gcc warning for shifts of > negative integers when building with -Werror, which happens with the > 'make W=1' option, as well as for three drivers in the kernel that always > enable -Werror, but it was only observed with the i915 driver so far. > > Nathan Chancellor reported an additional -Wdeclaration-after-statement > warning that appears in a system header on arm, this still needs a > workaround. > > Since the differences between gnu99, gnu11 and gnu17 are fairly minimal > and mainly impact warnings at the -Wpedantic level that the kernel > never enables, the easiest way is to just leave out the -std=gnu89 > argument entirely, and rely on the compiler default language setting, > which is gnu11 for gcc-5, and gnu1x/gnu17 for all other supported > versions of gcc or clang. > > Link: https://lore.kernel.org/lkml/CAHk-=wiyCH7xeHcmiFJ-YgXUy2Jaj7pnkdKpcovt8fYbVFW3TA@mail.gmail.com/ > Link: https://github.com/ClangBuiltLinux/linux/issues/1603 > Suggested-by: Linus Torvalds > Cc: Masahiro Yamada > Cc: linux-kbuild@vger.kernel.org > Cc: llvm@lists.linux.dev > Signed-off-by: Arnd Bergmann > --- > I put the suggestion into patch form, based on what we discussed > in the thread. I only gave it minimal testing, but it would > be good to have it in linux-next if we want to do this in the > merge window. > --- > Documentation/process/programming-language.rst | 4 ++-- > .../translations/it_IT/process/programming-language.rst | 4 ++-- > .../translations/zh_CN/process/programming-language.rst | 4 ++-- > .../translations/zh_TW/process/programming-language.rst | 4 ++-- > Makefile | 7 +++---- > arch/arm64/kernel/vdso32/Makefile | 3 +-- > drivers/gpu/drm/i915/Makefile | 1 + > drivers/staging/greybus/tools/Makefile | 3 ++- > fs/btrfs/Makefile | 1 + > scripts/Makefile.extrawarn | 1 + > 10 files changed, 17 insertions(+), 15 deletions(-) > > diff --git a/Documentation/process/programming-language.rst b/Documentation/process/programming-language.rst > index ec474a70a02f..894f2a6eb9db 100644 > --- a/Documentation/process/programming-language.rst > +++ b/Documentation/process/programming-language.rst > @@ -5,8 +5,8 @@ Programming Language > > The kernel is written in the C programming language [c-language]_. > More precisely, the kernel is typically compiled with ``gcc`` [gcc]_ > -under ``-std=gnu89`` [gcc-c-dialect-options]_: the GNU dialect of ISO C90 > -(including some C99 features). ``clang`` [clang]_ is also supported, see > +under ``-std=gnu11`` [gcc-c-dialect-options]_: the GNU dialect of ISO C11 > +(including some C17 features). ``clang`` [clang]_ is also supported, see > docs on :ref:`Building Linux with Clang/LLVM `. > > This dialect contains many extensions to the language [gnu-extensions]_, > diff --git a/Documentation/translations/it_IT/process/programming-language.rst b/Documentation/translations/it_IT/process/programming-language.rst > index 41db2598ce11..aa21097737ae 100644 > --- a/Documentation/translations/it_IT/process/programming-language.rst > +++ b/Documentation/translations/it_IT/process/programming-language.rst > @@ -10,8 +10,8 @@ Linguaggio di programmazione > > Il kernel è scritto nel linguaggio di programmazione C [it-c-language]_. > Più precisamente, il kernel viene compilato con ``gcc`` [it-gcc]_ usando > -l'opzione ``-std=gnu89`` [it-gcc-c-dialect-options]_: il dialetto GNU > -dello standard ISO C90 (con l'aggiunta di alcune funzionalità da C99). > +l'opzione ``-std=gnu11`` [it-gcc-c-dialect-options]_: il dialetto GNU > +dello standard ISO C11 (con l'aggiunta di alcune funzionalità da C17). > Linux supporta anche ``clang`` [it-clang]_, leggete la documentazione > :ref:`Building Linux with Clang/LLVM `. > > diff --git a/Documentation/translations/zh_CN/process/programming-language.rst b/Documentation/translations/zh_CN/process/programming-language.rst > index 2a47a1d2ec20..58d2b3bd2d85 100644 > --- a/Documentation/translations/zh_CN/process/programming-language.rst > +++ b/Documentation/translations/zh_CN/process/programming-language.rst > @@ -9,8 +9,8 @@ > ============ > > 内核是用C语言 :ref:`c-language ` 编写的。更准确地说,内核通常是用 :ref:`gcc ` > -在 ``-std=gnu89`` :ref:`gcc-c-dialect-options ` 下编译的:ISO C90的 GNU 方言( > -包括一些C99特性) > +在 ``-std=gnu11`` :ref:`gcc-c-dialect-options ` 下编译的:ISO C11的 GNU 方言( > +包括一些C17特性) > > 这种方言包含对语言 :ref:`gnu-extensions ` 的许多扩展,当然,它们许多都在内核中使用。 > > diff --git a/Documentation/translations/zh_TW/process/programming-language.rst b/Documentation/translations/zh_TW/process/programming-language.rst > index 54e3699eadf8..235de05f7e2c 100644 > --- a/Documentation/translations/zh_TW/process/programming-language.rst > +++ b/Documentation/translations/zh_TW/process/programming-language.rst > @@ -12,8 +12,8 @@ > ============ > > 內核是用C語言 :ref:`c-language ` 編寫的。更準確地說,內核通常是用 :ref:`gcc ` > -在 ``-std=gnu89`` :ref:`gcc-c-dialect-options ` 下編譯的:ISO C90的 GNU 方言( > -包括一些C99特性) > +在 ``-std=gnu11`` :ref:`gcc-c-dialect-options ` 下編譯的:ISO C11的 GNU 方言( > +包括一些C17特性) > > 這種方言包含對語言 :ref:`gnu-extensions ` 的許多擴展,當然,它們許多都在內核中使用。 > > diff --git a/Makefile b/Makefile > index 289ce2be8032..3ff6ba766f02 100644 > --- a/Makefile > +++ b/Makefile > @@ -432,7 +432,7 @@ HOSTCXX = g++ > endif > > export KBUILD_USERCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \ > - -O2 -fomit-frame-pointer -std=gnu89 > + -O2 -fomit-frame-pointer > export KBUILD_USERLDFLAGS := > > KBUILD_HOSTCFLAGS := $(KBUILD_USERCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS) > @@ -514,8 +514,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE > KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \ > -Werror=implicit-function-declaration -Werror=implicit-int \ > - -Werror=return-type -Wno-format-security \ > - -std=gnu89 > + -Werror=return-type -Wno-format-security > KBUILD_CPPFLAGS := -D__KERNEL__ > KBUILD_AFLAGS_KERNEL := > KBUILD_CFLAGS_KERNEL := > @@ -782,7 +781,7 @@ KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH) > > ifdef CONFIG_CC_IS_CLANG > KBUILD_CPPFLAGS += -Qunused-arguments > -# The kernel builds with '-std=gnu89' so use of GNU extensions is acceptable. > +# The kernel builds with '-std=gnu11' so use of GNU extensions is acceptable. > KBUILD_CFLAGS += -Wno-gnu > # CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the > # source of a reference will be _MergedGlobals and not on of the whitelisted names. > diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile > index 6c01b63ff56d..3250d0e25782 100644 > --- a/arch/arm64/kernel/vdso32/Makefile > +++ b/arch/arm64/kernel/vdso32/Makefile > @@ -67,8 +67,7 @@ VDSO_CFLAGS += -DENABLE_COMPAT_VDSO=1 > VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common \ > -Werror-implicit-function-declaration \ > - -Wno-format-security \ > - -std=gnu89 > + -Wno-format-security > VDSO_CFLAGS += -O2 > # Some useful compiler-dependent flags from top-level Makefile > VDSO_CFLAGS += $(call cc32-option,-Wdeclaration-after-statement,) > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index 1b62b9f65196..1618a6e0af4e 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -17,6 +17,7 @@ subdir-ccflags-y += -Wno-unused-parameter > subdir-ccflags-y += -Wno-type-limits > subdir-ccflags-y += -Wno-missing-field-initializers > subdir-ccflags-y += -Wno-sign-compare > +subdir-ccflags-y += -Wno-shift-negative-value > subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable) > subdir-ccflags-y += $(call cc-disable-warning, frame-address) > subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror > diff --git a/drivers/staging/greybus/tools/Makefile b/drivers/staging/greybus/tools/Makefile > index ad0ae8053b79..a3bbd73171f2 100644 > --- a/drivers/staging/greybus/tools/Makefile > +++ b/drivers/staging/greybus/tools/Makefile > @@ -12,7 +12,8 @@ CFLAGS += -std=gnu99 -Wall -Wextra -g \ > -Wredundant-decls \ > -Wcast-align \ > -Wsign-compare \ > - -Wno-missing-field-initializers > + -Wno-missing-field-initializers \ > + -Wno-shift-negative-value > > CC := $(CROSS_COMPILE)gcc > > diff --git a/fs/btrfs/Makefile b/fs/btrfs/Makefile > index 4188ba3fd8c3..99f9995670ea 100644 > --- a/fs/btrfs/Makefile > +++ b/fs/btrfs/Makefile > @@ -17,6 +17,7 @@ subdir-ccflags-y += $(condflags) > subdir-ccflags-y += -Wno-missing-field-initializers > subdir-ccflags-y += -Wno-sign-compare > subdir-ccflags-y += -Wno-type-limits > +subdir-ccflags-y += -Wno-shift-negative-value > > obj-$(CONFIG_BTRFS_FS) := btrfs.o > > diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn > index 8be892887d71..650d0b8ceec3 100644 > --- a/scripts/Makefile.extrawarn > +++ b/scripts/Makefile.extrawarn > @@ -36,6 +36,7 @@ KBUILD_CFLAGS += $(call cc-option, -Wstringop-truncation) > KBUILD_CFLAGS += -Wno-missing-field-initializers > KBUILD_CFLAGS += -Wno-sign-compare > KBUILD_CFLAGS += -Wno-type-limits > +KBUILD_CFLAGS += -Wno-shift-negative-value > > KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN1 > > -- > 2.29.2 > --