From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6EE8B53A4; Mon, 28 Feb 2022 11:25:59 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B4E1D1FB; Mon, 28 Feb 2022 03:25:53 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.57.20.208]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 736C33F73D; Mon, 28 Feb 2022 03:25:50 -0800 (PST) Date: Mon, 28 Feb 2022 11:25:36 +0000 From: Mark Rutland 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, Marco Elver Subject: Re: [PATCH] [v2] Kbuild: move to -std=gnu11 Message-ID: References: <20220228103142.3301082-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: <20220228103142.3301082-1-arnd@kernel.org> Hi Arnd, This is great! On Mon, Feb 28, 2022 at 11:27:43AM +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 gnu11, but this was taken care of by defining 'inline' to > 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. > To be on the safe side, add -Wno-shift-negative-value to any -Wextra > in a Makefile. > > Nathan Chancellor reported an additional -Wdeclaration-after-statement > warning that appears in a system header on arm, this still needs a > workaround. FWIW, I had a go at moving to c99 a few weeks ago (to be able to use for-loop-declarations in some concurrency primitives), and when I tried, I also saw declaration-after-statement warnings when building modpost.c, which is easy enough to fix: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?h=treewide/gnu99&id=505775bd6fd0bc1883f3271f826963066bbdc194 Thanks, Mark. > The differences between gnu99, gnu11, gnu1x and gnu17 are fairly > minimal and mainly impact warnings at the -Wpedantic level that the > kernel never enables. Between these, gnu11 is the newest version > that is supported by all supported compiler versions, though it is > only the default on gcc-5, while all other supported versions of > gcc or clang default to gnu1x/gnu17. > > 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 > --- > [v2] > - added -std=gnu11 back, rather than just relying on the default > - minor changes to changelog text > --- > 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 | 6 +++--- > arch/arm64/kernel/vdso32/Makefile | 2 +- > 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(+), 13 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..66496eaeb9ec 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 -std=gnu11 > export KBUILD_USERLDFLAGS := > > KBUILD_HOSTCFLAGS := $(KBUILD_USERCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS) > @@ -515,7 +515,7 @@ 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 > + -std=gnu11 > KBUILD_CPPFLAGS := -D__KERNEL__ > KBUILD_AFLAGS_KERNEL := > KBUILD_CFLAGS_KERNEL := > @@ -782,7 +782,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..9378ea055bf2 100644 > --- a/arch/arm64/kernel/vdso32/Makefile > +++ b/arch/arm64/kernel/vdso32/Makefile > @@ -68,7 +68,7 @@ VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common \ > -Werror-implicit-function-declaration \ > -Wno-format-security \ > - -std=gnu89 > + -std=gnu11 > 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 3D573C433EF for ; Mon, 28 Feb 2022 11:25:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3BC2110E4C9; Mon, 28 Feb 2022 11:25:55 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by gabe.freedesktop.org (Postfix) with ESMTP id 3CBF310E389; Mon, 28 Feb 2022 11:25:54 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B4E1D1FB; Mon, 28 Feb 2022 03:25:53 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.57.20.208]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 736C33F73D; Mon, 28 Feb 2022 03:25:50 -0800 (PST) Date: Mon, 28 Feb 2022 11:25:36 +0000 From: Mark Rutland To: Arnd Bergmann Subject: Re: [PATCH] [v2] Kbuild: move to -std=gnu11 Message-ID: References: <20220228103142.3301082-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: <20220228103142.3301082-1-arnd@kernel.org> 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, Marco Elver , 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" Hi Arnd, This is great! On Mon, Feb 28, 2022 at 11:27:43AM +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 gnu11, but this was taken care of by defining 'inline' to > 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. > To be on the safe side, add -Wno-shift-negative-value to any -Wextra > in a Makefile. > > Nathan Chancellor reported an additional -Wdeclaration-after-statement > warning that appears in a system header on arm, this still needs a > workaround. FWIW, I had a go at moving to c99 a few weeks ago (to be able to use for-loop-declarations in some concurrency primitives), and when I tried, I also saw declaration-after-statement warnings when building modpost.c, which is easy enough to fix: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?h=treewide/gnu99&id=505775bd6fd0bc1883f3271f826963066bbdc194 Thanks, Mark. > The differences between gnu99, gnu11, gnu1x and gnu17 are fairly > minimal and mainly impact warnings at the -Wpedantic level that the > kernel never enables. Between these, gnu11 is the newest version > that is supported by all supported compiler versions, though it is > only the default on gcc-5, while all other supported versions of > gcc or clang default to gnu1x/gnu17. > > 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 > --- > [v2] > - added -std=gnu11 back, rather than just relying on the default > - minor changes to changelog text > --- > 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 | 6 +++--- > arch/arm64/kernel/vdso32/Makefile | 2 +- > 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(+), 13 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..66496eaeb9ec 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 -std=gnu11 > export KBUILD_USERLDFLAGS := > > KBUILD_HOSTCFLAGS := $(KBUILD_USERCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS) > @@ -515,7 +515,7 @@ 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 > + -std=gnu11 > KBUILD_CPPFLAGS := -D__KERNEL__ > KBUILD_AFLAGS_KERNEL := > KBUILD_CFLAGS_KERNEL := > @@ -782,7 +782,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..9378ea055bf2 100644 > --- a/arch/arm64/kernel/vdso32/Makefile > +++ b/arch/arm64/kernel/vdso32/Makefile > @@ -68,7 +68,7 @@ VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common \ > -Werror-implicit-function-declaration \ > -Wno-format-security \ > - -std=gnu89 > + -std=gnu11 > 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 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 111A5C433F5 for ; Mon, 28 Feb 2022 12:08:20 +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=39V+f3BlBgsQuTkONZt5Ikq3ym0rqBEkyuYSsUxczG4=; b=igRkogZ+UDO411 dQ/atQ3j9+/5vwJD/nkXaH2GKw2Ij8P1SfvJ+e1Uj1FbHCpFeAstnb7z75LeQgOB5v55bxYZHqSrY zAqAFgs6JlAsmYVtzkk9FObP3oO8oghuFte5+udykTh7aJc6q7V9KCRndSRM9XM6FMHnazijZCUFo kpcqbbCnKTaN4HAHFvevsus6I1rwjNFkop35ngpphcFfsK/4o/Rk1RG4bf5/3qcVwlIx3FqAocqaY J8OmKWR2hkP46H84G2iJxDmUQamdLj6xHE7R62EDLUiiIgres6QueAtK0olhqofr0S59CrQDxoXlr pnY1e5uXhl9dmd8GkhSg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOenS-00C4MT-C2; Mon, 28 Feb 2022 12:06:35 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOeA8-00BqsO-Lr for linux-arm-kernel@lists.infradead.org; Mon, 28 Feb 2022 11:25:59 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B4E1D1FB; Mon, 28 Feb 2022 03:25:53 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.57.20.208]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 736C33F73D; Mon, 28 Feb 2022 03:25:50 -0800 (PST) Date: Mon, 28 Feb 2022 11:25:36 +0000 From: Mark Rutland 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, Marco Elver Subject: Re: [PATCH] [v2] Kbuild: move to -std=gnu11 Message-ID: References: <20220228103142.3301082-1-arnd@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220228103142.3301082-1-arnd@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220228_032556_930479_54469214 X-CRM114-Status: GOOD ( 36.71 ) 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 SGkgQXJuZCwKClRoaXMgaXMgZ3JlYXQhCgpPbiBNb24sIEZlYiAyOCwgMjAyMiBhdCAxMToyNzo0 M0FNICswMTAwLCBBcm5kIEJlcmdtYW5uIHdyb3RlOgo+IEZyb206IEFybmQgQmVyZ21hbm4gPGFy bmRAYXJuZGIuZGU+Cj4gCj4gRHVyaW5nIGEgcGF0Y2ggZGlzY3Vzc2lvbiwgTGludXMgYnJvdWdo dCB1cCB0aGUgb3B0aW9uIG9mIGNoYW5naW5nCj4gdGhlIEMgc3RhbmRhcmQgdmVyc2lvbiBmcm9t IGdudTg5IHRvIGdudTk5LCB3aGljaCBhbGxvd3MgdXNpbmcgdmFyaWFibGUKPiBkZWNsYXJhdGlv biBpbnNpZGUgb2YgYSBmb3IoKSBsb29wLiBXaGlsZSB0aGUgQzk5LCBDMTEgYW5kIGxhdGVyIHN0 YW5kYXJkcwo+IGludHJvZHVjZSBtYW55IG90aGVyIGZlYXR1cmVzLCBtb3N0IG9mIHRoZXNlIGFy ZSBhbHJlYWR5IGF2YWlsYWJsZSBpbgo+IGdudTg5IGFzIEdOVSBleHRlbnNpb25zIGFzIHdlbGwu Cj4KPiBBbiBlYXJsaWVyIGF0dGVtcHQgdG8gZG8gdGhpcyB3aGVuIGdjYy01IHN0YXJ0ZWQgZGVm YXVsdGluZyB0bwo+IC1zdGQ9Z251MTEgZmFpbGVkIGJlY2F1c2UgYXQgdGhlIHRpbWUgdGhhdCBj YXVzZWQgd2FybmluZ3MgYWJvdXQKPiBkZXNpZ25hdGVkIGluaXRpYWxpemVycyB3aXRoIG9sZGVy IGNvbXBpbGVycy4gTm93IHRoYXQgZ2NjLTUuMSBpcyB0aGUKPiBtaW5pbXVtIGNvbXBpbGVyIHZl cnNpb24gdXNlZCBmb3IgYnVpbGRpbmcga2VybmVscywgdGhhdCBpcyBubyBsb25nZXIgYQo+IGNv bmNlcm4uIFNpbWlsYXJseSwgdGhlIGJlaGF2aW9yIG9mICdpbmxpbmUnIGZ1bmN0aW9ucyBjaGFu Z2VzIGJldHdlZW4KPiBnbnU4OSBhbmQgZ251MTEsIGJ1dCB0aGlzIHdhcyB0YWtlbiBjYXJlIG9m IGJ5IGRlZmluaW5nICdpbmxpbmUnIHRvCj4gaW5jbHVkZSBfX2F0dHJpYnV0ZV9fKChnbnVfaW5s aW5lKSkgaW4gb3JkZXIgdG8gYWxsb3cgYnVpbGRpbmcgd2l0aAo+IGNsYW5nIGEgd2hpbGUgYWdv Lgo+IAo+IE9uZSBtaW5vciBpc3N1ZSB0aGF0IHJlbWFpbnMgaXMgYW4gYWRkZWQgZ2NjIHdhcm5p bmcgZm9yIHNoaWZ0cyBvZgo+IG5lZ2F0aXZlIGludGVnZXJzIHdoZW4gYnVpbGRpbmcgd2l0aCAt V2Vycm9yLCB3aGljaCBoYXBwZW5zIHdpdGggdGhlCj4gJ21ha2UgVz0xJyBvcHRpb24sIGFzIHdl bGwgYXMgZm9yIHRocmVlIGRyaXZlcnMgaW4gdGhlIGtlcm5lbCB0aGF0IGFsd2F5cwo+IGVuYWJs ZSAtV2Vycm9yLCBidXQgaXQgd2FzIG9ubHkgb2JzZXJ2ZWQgd2l0aCB0aGUgaTkxNSBkcml2ZXIg c28gZmFyLgo+IFRvIGJlIG9uIHRoZSBzYWZlIHNpZGUsIGFkZCAtV25vLXNoaWZ0LW5lZ2F0aXZl LXZhbHVlIHRvIGFueSAtV2V4dHJhCj4gaW4gYSBNYWtlZmlsZS4KPiAKPiBOYXRoYW4gQ2hhbmNl bGxvciByZXBvcnRlZCBhbiBhZGRpdGlvbmFsIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50 Cj4gd2FybmluZyB0aGF0IGFwcGVhcnMgaW4gYSBzeXN0ZW0gaGVhZGVyIG9uIGFybSwgdGhpcyBz dGlsbCBuZWVkcyBhCj4gd29ya2Fyb3VuZC4KCkZXSVcsIEkgaGFkIGEgZ28gYXQgbW92aW5nIHRv IGM5OSBhIGZldyB3ZWVrcyBhZ28gKHRvIGJlIGFibGUgdG8gdXNlCmZvci1sb29wLWRlY2xhcmF0 aW9ucyBpbiBzb21lIGNvbmN1cnJlbmN5IHByaW1pdGl2ZXMpLCBhbmQgd2hlbiBJIHRyaWVkLCBJ IGFsc28Kc2F3IGRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCB3YXJuaW5ncyB3aGVuIGJ1aWxk aW5nIG1vZHBvc3QuYywgd2hpY2ggaXMgZWFzeQplbm91Z2ggdG8gZml4OgoKICBodHRwczovL2dp dC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9tYXJrL2xpbnV4LmdpdC9jb21t aXQvP2g9dHJlZXdpZGUvZ251OTkmaWQ9NTA1Nzc1YmQ2ZmQwYmMxODgzZjMyNzFmODI2OTYzMDY2 YmJkYzE5NAoKVGhhbmtzLApNYXJrLgoKPiBUaGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBnbnU5OSwg Z251MTEsIGdudTF4IGFuZCBnbnUxNyBhcmUgZmFpcmx5Cj4gbWluaW1hbCBhbmQgbWFpbmx5IGlt cGFjdCB3YXJuaW5ncyBhdCB0aGUgLVdwZWRhbnRpYyBsZXZlbCB0aGF0IHRoZQo+IGtlcm5lbCBu ZXZlciBlbmFibGVzLiBCZXR3ZWVuIHRoZXNlLCBnbnUxMSBpcyB0aGUgbmV3ZXN0IHZlcnNpb24K PiB0aGF0IGlzIHN1cHBvcnRlZCBieSBhbGwgc3VwcG9ydGVkIGNvbXBpbGVyIHZlcnNpb25zLCB0 aG91Z2ggaXQgaXMKPiBvbmx5IHRoZSBkZWZhdWx0IG9uIGdjYy01LCB3aGlsZSBhbGwgb3RoZXIg c3VwcG9ydGVkIHZlcnNpb25zIG9mCj4gZ2NjIG9yIGNsYW5nIGRlZmF1bHQgdG8gZ251MXgvZ251 MTcuCj4gCj4gTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC9DQUhrLT13aXlDSDd4 ZUhjbWlGSi1ZZ1hVeTJKYWo3cG5rZEtwY292dDhmWWJWRlczVEFAbWFpbC5nbWFpbC5jb20vCj4g TGluazogaHR0cHM6Ly9naXRodWIuY29tL0NsYW5nQnVpbHRMaW51eC9saW51eC9pc3N1ZXMvMTYw Mwo+IFN1Z2dlc3RlZC1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRp b24ub3JnPgo+IENjOiBNYXNhaGlybyBZYW1hZGEgPG1hc2FoaXJveUBrZXJuZWwub3JnPgo+IENj OiBsaW51eC1rYnVpbGRAdmdlci5rZXJuZWwub3JnCj4gQ2M6IGxsdm1AbGlzdHMubGludXguZGV2 Cj4gU2lnbmVkLW9mZi1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KPiAtLS0KPiBb djJdCj4gIC0gYWRkZWQgLXN0ZD1nbnUxMSBiYWNrLCByYXRoZXIgdGhhbiBqdXN0IHJlbHlpbmcg b24gdGhlIGRlZmF1bHQKPiAgLSBtaW5vciBjaGFuZ2VzIHRvIGNoYW5nZWxvZyB0ZXh0Cj4gLS0t Cj4gIERvY3VtZW50YXRpb24vcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QgICAgICAg ICAgICAgIHwgNCArKy0tCj4gIC4uLi90cmFuc2xhdGlvbnMvaXRfSVQvcHJvY2Vzcy9wcm9ncmFt bWluZy1sYW5ndWFnZS5yc3QgICAgIHwgNCArKy0tCj4gIC4uLi90cmFuc2xhdGlvbnMvemhfQ04v cHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QgICAgIHwgNCArKy0tCj4gIC4uLi90cmFu c2xhdGlvbnMvemhfVFcvcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QgICAgIHwgNCAr Ky0tCj4gIE1ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgNiArKystLS0KPiAgYXJjaC9hcm02NC9rZXJuZWwvdmRzbzMyL01ha2VmaWxl ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMSArCj4gIGRyaXZlcnMv c3RhZ2luZy9ncmV5YnVzL3Rvb2xzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgIHwgMyAr Ky0KPiAgZnMvYnRyZnMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxICsKPiAgc2NyaXB0cy9NYWtlZmlsZS5leHRyYXdhcm4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxICsKPiAgMTAgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0 aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v cHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QgYi9Eb2N1bWVudGF0aW9uL3Byb2Nlc3Mv cHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4gaW5kZXggZWM0NzRhNzBhMDJmLi44OTRmMmE2ZWI5 ZGIgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1 YWdlLnJzdAo+ICsrKyBiL0RvY3VtZW50YXRpb24vcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFn ZS5yc3QKPiBAQCAtNSw4ICs1LDggQEAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UKPiAgCj4gIFRoZSBr ZXJuZWwgaXMgd3JpdHRlbiBpbiB0aGUgQyBwcm9ncmFtbWluZyBsYW5ndWFnZSBbYy1sYW5ndWFn ZV1fLgo+ICBNb3JlIHByZWNpc2VseSwgdGhlIGtlcm5lbCBpcyB0eXBpY2FsbHkgY29tcGlsZWQg d2l0aCBgYGdjY2BgIFtnY2NdXwo+IC11bmRlciBgYC1zdGQ9Z251ODlgYCBbZ2NjLWMtZGlhbGVj dC1vcHRpb25zXV86IHRoZSBHTlUgZGlhbGVjdCBvZiBJU08gQzkwCj4gLShpbmNsdWRpbmcgc29t ZSBDOTkgZmVhdHVyZXMpLiBgYGNsYW5nYGAgW2NsYW5nXV8gaXMgYWxzbyBzdXBwb3J0ZWQsIHNl ZQo+ICt1bmRlciBgYC1zdGQ9Z251MTFgYCBbZ2NjLWMtZGlhbGVjdC1vcHRpb25zXV86IHRoZSBH TlUgZGlhbGVjdCBvZiBJU08gQzExCj4gKyhpbmNsdWRpbmcgc29tZSBDMTcgZmVhdHVyZXMpLiBg YGNsYW5nYGAgW2NsYW5nXV8gaXMgYWxzbyBzdXBwb3J0ZWQsIHNlZQo+ICBkb2NzIG9uIDpyZWY6 YEJ1aWxkaW5nIExpbnV4IHdpdGggQ2xhbmcvTExWTSA8a2J1aWxkX2xsdm0+YC4KPiAgCj4gIFRo aXMgZGlhbGVjdCBjb250YWlucyBtYW55IGV4dGVuc2lvbnMgdG8gdGhlIGxhbmd1YWdlIFtnbnUt ZXh0ZW5zaW9uc11fLAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy9p dF9JVC9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdCBiL0RvY3VtZW50YXRpb24vdHJh bnNsYXRpb25zL2l0X0lUL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4gaW5kZXgg NDFkYjI1OThjZTExLi5hYTIxMDk3NzM3YWUgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi90 cmFuc2xhdGlvbnMvaXRfSVQvcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKPiArKysg Yi9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy9pdF9JVC9wcm9jZXNzL3Byb2dyYW1taW5nLWxh bmd1YWdlLnJzdAo+IEBAIC0xMCw4ICsxMCw4IEBAIExpbmd1YWdnaW8gZGkgcHJvZ3JhbW1hemlv bmUKPiAgCj4gIElsIGtlcm5lbCDDqCBzY3JpdHRvIG5lbCBsaW5ndWFnZ2lvIGRpIHByb2dyYW1t YXppb25lIEMgW2l0LWMtbGFuZ3VhZ2VdXy4KPiAgUGnDuSBwcmVjaXNhbWVudGUsIGlsIGtlcm5l bCB2aWVuZSBjb21waWxhdG8gY29uIGBgZ2NjYGAgW2l0LWdjY11fIHVzYW5kbwo+IC1sJ29wemlv bmUgYGAtc3RkPWdudTg5YGAgW2l0LWdjYy1jLWRpYWxlY3Qtb3B0aW9uc11fOiBpbCBkaWFsZXR0 byBHTlUKPiAtZGVsbG8gc3RhbmRhcmQgSVNPIEM5MCAoY29uIGwnYWdnaXVudGEgZGkgYWxjdW5l IGZ1bnppb25hbGl0w6AgZGEgQzk5KS4KPiArbCdvcHppb25lIGBgLXN0ZD1nbnUxMWBgIFtpdC1n Y2MtYy1kaWFsZWN0LW9wdGlvbnNdXzogaWwgZGlhbGV0dG8gR05VCj4gK2RlbGxvIHN0YW5kYXJk IElTTyBDMTEgKGNvbiBsJ2FnZ2l1bnRhIGRpIGFsY3VuZSBmdW56aW9uYWxpdMOgIGRhIEMxNyku Cj4gIExpbnV4IHN1cHBvcnRhIGFuY2hlIGBgY2xhbmdgYCBbaXQtY2xhbmddXywgbGVnZ2V0ZSBs YSBkb2N1bWVudGF6aW9uZQo+ICA6cmVmOmBCdWlsZGluZyBMaW51eCB3aXRoIENsYW5nL0xMVk0g PGtidWlsZF9sbHZtPmAuCj4gIAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0 aW9ucy96aF9DTi9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdCBiL0RvY3VtZW50YXRp b24vdHJhbnNsYXRpb25zL3poX0NOL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4g aW5kZXggMmE0N2ExZDJlYzIwLi41OGQyYjNiZDJkODUgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRh dGlvbi90cmFuc2xhdGlvbnMvemhfQ04vcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QK PiArKysgYi9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9wcm9jZXNzL3Byb2dyYW1t aW5nLWxhbmd1YWdlLnJzdAo+IEBAIC05LDggKzksOCBAQAo+ICA9PT09PT09PT09PT0KPiAgCj4g IOWGheaguOaYr+eUqEPor63oqIAgOnJlZjpgYy1sYW5ndWFnZSA8Y25fYy1sYW5ndWFnZT5gIOe8 luWGmeeahOOAguabtOWHhuehruWcsOivtO+8jOWGheaguOmAmuW4uOaYr+eUqCA6cmVmOmBnY2Mg PGNuX2djYz5gCj4gLeWcqCBgYC1zdGQ9Z251ODlgYCA6cmVmOmBnY2MtYy1kaWFsZWN0LW9wdGlv bnMgPGNuX2djYy1jLWRpYWxlY3Qtb3B0aW9ucz5gIOS4i+e8luivkeeahO+8mklTTyBDOTDnmoQg R05VIOaWueiogO+8iAo+IC3ljIXmi6zkuIDkuptDOTnnibnmgKfvvIkKPiAr5ZyoIGBgLXN0ZD1n bnUxMWBgIDpyZWY6YGdjYy1jLWRpYWxlY3Qtb3B0aW9ucyA8Y25fZ2NjLWMtZGlhbGVjdC1vcHRp b25zPmAg5LiL57yW6K+R55qE77yaSVNPIEMxMeeahCBHTlUg5pa56KiA77yICj4gK+WMheaLrOS4 gOS6m0MxN+eJueaAp++8iQo+ICAKPiAg6L+Z56eN5pa56KiA5YyF5ZCr5a+56K+t6KiAIDpyZWY6 YGdudS1leHRlbnNpb25zIDxjbl9nbnUtZXh0ZW5zaW9ucz5gIOeahOiuuOWkmuaJqeWxle+8jOW9 k+eEtu+8jOWug+S7rOiuuOWkmumDveWcqOWGheaguOS4reS9v+eUqOOAggo+ICAKPiBkaWZmIC0t Z2l0IGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfVFcvcHJvY2Vzcy9wcm9ncmFtbWlu Zy1sYW5ndWFnZS5yc3QgYi9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9UVy9wcm9jZXNz L3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdAo+IGluZGV4IDU0ZTM2OTllYWRmOC4uMjM1ZGUwNWY3 ZTJjIDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX1RXL3Byb2Nl c3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi90cmFuc2xh dGlvbnMvemhfVFcvcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKPiBAQCAtMTIsOCAr MTIsOCBAQAo+ICA9PT09PT09PT09PT0KPiAgCj4gIOWFp+aguOaYr+eUqEPoqp7oqIAgOnJlZjpg Yy1sYW5ndWFnZSA8dHdfYy1sYW5ndWFnZT5gIOe3qOWvq+eahOOAguabtOa6lueiuuWcsOiqqu+8 jOWFp+aguOmAmuW4uOaYr+eUqCA6cmVmOmBnY2MgPHR3X2djYz5gCj4gLeWcqCBgYC1zdGQ9Z251 ODlgYCA6cmVmOmBnY2MtYy1kaWFsZWN0LW9wdGlvbnMgPHR3X2djYy1jLWRpYWxlY3Qtb3B0aW9u cz5gIOS4i+e3qOitr+eahO+8mklTTyBDOTDnmoQgR05VIOaWueiogO+8iAo+IC3ljIXmi6zkuIDk uptDOTnnibnmgKfvvIkKPiAr5ZyoIGBgLXN0ZD1nbnUxMWBgIDpyZWY6YGdjYy1jLWRpYWxlY3Qt b3B0aW9ucyA8dHdfZ2NjLWMtZGlhbGVjdC1vcHRpb25zPmAg5LiL57eo6K2v55qE77yaSVNPIEMx MeeahCBHTlUg5pa56KiA77yICj4gK+WMheaLrOS4gOS6m0MxN+eJueaAp++8iQo+ICAKPiAg6YCZ 56iu5pa56KiA5YyF5ZCr5bCN6Kqe6KiAIDpyZWY6YGdudS1leHRlbnNpb25zIDx0d19nbnUtZXh0 ZW5zaW9ucz5gIOeahOioseWkmuaTtOWxle+8jOeVtueEtu+8jOWug+WAkeioseWkmumDveWcqOWF p+aguOS4reS9v+eUqOOAggo+ICAKPiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQo+ IGluZGV4IDI4OWNlMmJlODAzMi4uNjY0OTZlYWViOWVjIDEwMDY0NAo+IC0tLSBhL01ha2VmaWxl Cj4gKysrIGIvTWFrZWZpbGUKPiBAQCAtNDMyLDcgKzQzMiw3IEBAIEhPU1RDWFgJPSBnKysKPiAg ZW5kaWYKPiAgCj4gIGV4cG9ydCBLQlVJTERfVVNFUkNGTEFHUyA6PSAtV2FsbCAtV21pc3Npbmct cHJvdG90eXBlcyAtV3N0cmljdC1wcm90b3R5cGVzIFwKPiAtCQkJICAgICAgLU8yIC1mb21pdC1m cmFtZS1wb2ludGVyIC1zdGQ9Z251ODkKPiArCQkJICAgICAgLU8yIC1mb21pdC1mcmFtZS1wb2lu dGVyIC1zdGQ9Z251MTEKPiAgZXhwb3J0IEtCVUlMRF9VU0VSTERGTEFHUyA6PQo+ICAKPiAgS0JV SUxEX0hPU1RDRkxBR1MgICA6PSAkKEtCVUlMRF9VU0VSQ0ZMQUdTKSAkKEhPU1RfTEZTX0NGTEFH UykgJChIT1NUQ0ZMQUdTKQo+IEBAIC01MTUsNyArNTE1LDcgQEAgS0JVSUxEX0NGTEFHUyAgIDo9 IC1XYWxsIC1XdW5kZWYgLVdlcnJvcj1zdHJpY3QtcHJvdG90eXBlcyAtV25vLXRyaWdyYXBocyBc Cj4gIAkJICAgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1jb21tb24gLWZzaG9ydC13Y2hhciAt Zm5vLVBJRSBcCj4gIAkJICAgLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAt V2Vycm9yPWltcGxpY2l0LWludCBcCj4gIAkJICAgLVdlcnJvcj1yZXR1cm4tdHlwZSAtV25vLWZv cm1hdC1zZWN1cml0eSBcCj4gLQkJICAgLXN0ZD1nbnU4OQo+ICsJCSAgIC1zdGQ9Z251MTEKPiAg S0JVSUxEX0NQUEZMQUdTIDo9IC1EX19LRVJORUxfXwo+ICBLQlVJTERfQUZMQUdTX0tFUk5FTCA6 PQo+ICBLQlVJTERfQ0ZMQUdTX0tFUk5FTCA6PQo+IEBAIC03ODIsNyArNzgyLDcgQEAgS0JVSUxE X0NGTEFHUyArPSAkKEtCVUlMRF9DRkxBR1MteSkgJChDT05GSUdfQ0NfSU1QTElDSVRfRkFMTFRI Uk9VR0gpCj4gIAo+ICBpZmRlZiBDT05GSUdfQ0NfSVNfQ0xBTkcKPiAgS0JVSUxEX0NQUEZMQUdT ICs9IC1RdW51c2VkLWFyZ3VtZW50cwo+IC0jIFRoZSBrZXJuZWwgYnVpbGRzIHdpdGggJy1zdGQ9 Z251ODknIHNvIHVzZSBvZiBHTlUgZXh0ZW5zaW9ucyBpcyBhY2NlcHRhYmxlLgo+ICsjIFRoZSBr ZXJuZWwgYnVpbGRzIHdpdGggJy1zdGQ9Z251MTEnIHNvIHVzZSBvZiBHTlUgZXh0ZW5zaW9ucyBp cyBhY2NlcHRhYmxlLgo+ICBLQlVJTERfQ0ZMQUdTICs9IC1Xbm8tZ251Cj4gICMgQ0xBTkcgdXNl cyBhIF9NZXJnZWRHbG9iYWxzIGFzIG9wdGltaXphdGlvbiwgYnV0IHRoaXMgYnJlYWtzIG1vZHBv c3QsIGFzIHRoZQo+ICAjIHNvdXJjZSBvZiBhIHJlZmVyZW5jZSB3aWxsIGJlIF9NZXJnZWRHbG9i YWxzIGFuZCBub3Qgb24gb2YgdGhlIHdoaXRlbGlzdGVkIG5hbWVzLgo+IGRpZmYgLS1naXQgYS9h cmNoL2FybTY0L2tlcm5lbC92ZHNvMzIvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2tlcm5lbC92ZHNv MzIvTWFrZWZpbGUKPiBpbmRleCA2YzAxYjYzZmY1NmQuLjkzNzhlYTA1NWJmMiAxMDA2NDQKPiAt LS0gYS9hcmNoL2FybTY0L2tlcm5lbC92ZHNvMzIvTWFrZWZpbGUKPiArKysgYi9hcmNoL2FybTY0 L2tlcm5lbC92ZHNvMzIvTWFrZWZpbGUKPiBAQCAtNjgsNyArNjgsNyBAQCBWRFNPX0NGTEFHUyAr PSAtV2FsbCAtV3VuZGVmIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVduby10cmlncmFwaHMgXAo+ICAg ICAgICAgICAgICAgICAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWNvbW1vbiBcCj4gICAgICAg ICAgICAgICAgIC1XZXJyb3ItaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb24gXAo+ICAgICAg ICAgICAgICAgICAtV25vLWZvcm1hdC1zZWN1cml0eSBcCj4gLSAgICAgICAgICAgICAgIC1zdGQ9 Z251ODkKPiArICAgICAgICAgICAgICAgLXN0ZD1nbnUxMQo+ICBWRFNPX0NGTEFHUyAgKz0gLU8y Cj4gICMgU29tZSB1c2VmdWwgY29tcGlsZXItZGVwZW5kZW50IGZsYWdzIGZyb20gdG9wLWxldmVs IE1ha2VmaWxlCj4gIFZEU09fQ0ZMQUdTICs9ICQoY2FsbCBjYzMyLW9wdGlvbiwtV2RlY2xhcmF0 aW9uLWFmdGVyLXN0YXRlbWVudCwpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPiBpbmRleCAxYjYyYjlm NjUxOTYuLjE2MThhNmUwYWY0ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9N YWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gQEAgLTE3LDYg KzE3LDcgQEAgc3ViZGlyLWNjZmxhZ3MteSArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIKPiAgc3Vi ZGlyLWNjZmxhZ3MteSArPSAtV25vLXR5cGUtbGltaXRzCj4gIHN1YmRpci1jY2ZsYWdzLXkgKz0g LVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycwo+ICBzdWJkaXItY2NmbGFncy15ICs9IC1X bm8tc2lnbi1jb21wYXJlCj4gK3N1YmRpci1jY2ZsYWdzLXkgKz0gLVduby1zaGlmdC1uZWdhdGl2 ZS12YWx1ZQo+ICBzdWJkaXItY2NmbGFncy15ICs9ICQoY2FsbCBjYy1kaXNhYmxlLXdhcm5pbmcs IHVudXNlZC1idXQtc2V0LXZhcmlhYmxlKQo+ICBzdWJkaXItY2NmbGFncy15ICs9ICQoY2FsbCBj Yy1kaXNhYmxlLXdhcm5pbmcsIGZyYW1lLWFkZHJlc3MpCj4gIHN1YmRpci1jY2ZsYWdzLSQoQ09O RklHX0RSTV9JOTE1X1dFUlJPUikgKz0gLVdlcnJvcgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0 YWdpbmcvZ3JleWJ1cy90b29scy9NYWtlZmlsZSBiL2RyaXZlcnMvc3RhZ2luZy9ncmV5YnVzL3Rv b2xzL01ha2VmaWxlCj4gaW5kZXggYWQwYWU4MDUzYjc5Li5hM2JiZDczMTcxZjIgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvdG9vbHMvTWFrZWZpbGUKPiArKysgYi9kcml2 ZXJzL3N0YWdpbmcvZ3JleWJ1cy90b29scy9NYWtlZmlsZQo+IEBAIC0xMiw3ICsxMiw4IEBAIENG TEFHUwkrPSAtc3RkPWdudTk5IC1XYWxsIC1XZXh0cmEgLWcgXAo+ICAJICAgIC1XcmVkdW5kYW50 LWRlY2xzIFwKPiAgCSAgICAtV2Nhc3QtYWxpZ24gXAo+ICAJICAgIC1Xc2lnbi1jb21wYXJlIFwK PiAtCSAgICAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzCj4gKwkgICAgLVduby1taXNz aW5nLWZpZWxkLWluaXRpYWxpemVycyBcCj4gKwkgICAgLVduby1zaGlmdC1uZWdhdGl2ZS12YWx1 ZQo+ICAKPiAgQ0MJOj0gJChDUk9TU19DT01QSUxFKWdjYwo+ICAKPiBkaWZmIC0tZ2l0IGEvZnMv YnRyZnMvTWFrZWZpbGUgYi9mcy9idHJmcy9NYWtlZmlsZQo+IGluZGV4IDQxODhiYTNmZDhjMy4u OTlmOTk5NTY3MGVhIDEwMDY0NAo+IC0tLSBhL2ZzL2J0cmZzL01ha2VmaWxlCj4gKysrIGIvZnMv YnRyZnMvTWFrZWZpbGUKPiBAQCAtMTcsNiArMTcsNyBAQCBzdWJkaXItY2NmbGFncy15ICs9ICQo Y29uZGZsYWdzKQo+ICBzdWJkaXItY2NmbGFncy15ICs9IC1Xbm8tbWlzc2luZy1maWVsZC1pbml0 aWFsaXplcnMKPiAgc3ViZGlyLWNjZmxhZ3MteSArPSAtV25vLXNpZ24tY29tcGFyZQo+ICBzdWJk aXItY2NmbGFncy15ICs9IC1Xbm8tdHlwZS1saW1pdHMKPiArc3ViZGlyLWNjZmxhZ3MteSArPSAt V25vLXNoaWZ0LW5lZ2F0aXZlLXZhbHVlCj4gIAo+ICBvYmotJChDT05GSUdfQlRSRlNfRlMpIDo9 IGJ0cmZzLm8KPiAgCj4gZGlmZiAtLWdpdCBhL3NjcmlwdHMvTWFrZWZpbGUuZXh0cmF3YXJuIGIv c2NyaXB0cy9NYWtlZmlsZS5leHRyYXdhcm4KPiBpbmRleCA4YmU4OTI4ODdkNzEuLjY1MGQwYjhj ZWVjMyAxMDA2NDQKPiAtLS0gYS9zY3JpcHRzL01ha2VmaWxlLmV4dHJhd2Fybgo+ICsrKyBiL3Nj cmlwdHMvTWFrZWZpbGUuZXh0cmF3YXJuCj4gQEAgLTM2LDYgKzM2LDcgQEAgS0JVSUxEX0NGTEFH UyArPSAkKGNhbGwgY2Mtb3B0aW9uLCAtV3N0cmluZ29wLXRydW5jYXRpb24pCj4gIEtCVUlMRF9D RkxBR1MgKz0gLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycwo+ICBLQlVJTERfQ0ZMQUdT ICs9IC1Xbm8tc2lnbi1jb21wYXJlCj4gIEtCVUlMRF9DRkxBR1MgKz0gLVduby10eXBlLWxpbWl0 cwo+ICtLQlVJTERfQ0ZMQUdTICs9IC1Xbm8tc2hpZnQtbmVnYXRpdmUtdmFsdWUKPiAgCj4gIEtC VUlMRF9DUFBGTEFHUyArPSAtREtCVUlMRF9FWFRSQV9XQVJOMQo+ICAKPiAtLSAKPiAyLjI5LjIK PiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK 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 6B163C43217 for ; Mon, 28 Feb 2022 14:26:23 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 89D5210E832; Mon, 28 Feb 2022 14:26:08 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by gabe.freedesktop.org (Postfix) with ESMTP id 3CBF310E389; Mon, 28 Feb 2022 11:25:54 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B4E1D1FB; Mon, 28 Feb 2022 03:25:53 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.57.20.208]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 736C33F73D; Mon, 28 Feb 2022 03:25:50 -0800 (PST) Date: Mon, 28 Feb 2022 11:25:36 +0000 From: Mark Rutland To: Arnd Bergmann Message-ID: References: <20220228103142.3301082-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: <20220228103142.3301082-1-arnd@kernel.org> X-Mailman-Approved-At: Mon, 28 Feb 2022 14:26:05 +0000 Subject: Re: [Intel-gfx] [PATCH] [v2] Kbuild: move to -std=gnu11 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, Marco Elver , 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" Hi Arnd, This is great! On Mon, Feb 28, 2022 at 11:27:43AM +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 gnu11, but this was taken care of by defining 'inline' to > 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. > To be on the safe side, add -Wno-shift-negative-value to any -Wextra > in a Makefile. > > Nathan Chancellor reported an additional -Wdeclaration-after-statement > warning that appears in a system header on arm, this still needs a > workaround. FWIW, I had a go at moving to c99 a few weeks ago (to be able to use for-loop-declarations in some concurrency primitives), and when I tried, I also saw declaration-after-statement warnings when building modpost.c, which is easy enough to fix: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?h=treewide/gnu99&id=505775bd6fd0bc1883f3271f826963066bbdc194 Thanks, Mark. > The differences between gnu99, gnu11, gnu1x and gnu17 are fairly > minimal and mainly impact warnings at the -Wpedantic level that the > kernel never enables. Between these, gnu11 is the newest version > that is supported by all supported compiler versions, though it is > only the default on gcc-5, while all other supported versions of > gcc or clang default to gnu1x/gnu17. > > 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 > --- > [v2] > - added -std=gnu11 back, rather than just relying on the default > - minor changes to changelog text > --- > 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 | 6 +++--- > arch/arm64/kernel/vdso32/Makefile | 2 +- > 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(+), 13 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..66496eaeb9ec 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 -std=gnu11 > export KBUILD_USERLDFLAGS := > > KBUILD_HOSTCFLAGS := $(KBUILD_USERCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS) > @@ -515,7 +515,7 @@ 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 > + -std=gnu11 > KBUILD_CPPFLAGS := -D__KERNEL__ > KBUILD_AFLAGS_KERNEL := > KBUILD_CFLAGS_KERNEL := > @@ -782,7 +782,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..9378ea055bf2 100644 > --- a/arch/arm64/kernel/vdso32/Makefile > +++ b/arch/arm64/kernel/vdso32/Makefile > @@ -68,7 +68,7 @@ VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common \ > -Werror-implicit-function-declaration \ > -Wno-format-security \ > - -std=gnu89 > + -std=gnu11 > 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 >