From mboxrd@z Thu Jan 1 00:00:00 1970 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.subspace.kernel.org (Postfix) with ESMTPS id 8DFEB53A4; Mon, 28 Feb 2022 12:02:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Transfer-Encoding :Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=ohRWO5aJ73mE5bdhThGrtXZmC0cnKiaheTPJQAfRtqs=; b=OX2WXj2Qdb3r9Hs5mYvEmYlMQo 5/NLyLto2hS8OKESxkG4qbqv/RjzBEO0rTb/1YpYP/XXzx7GUaG/hv0hwwLSJ2QleyGFyk/zKuTpx ZfrtJ6HbRg3Tzw7mw9OmSlz2Z+MFapuGuc+HLHWcp7ZR15Ef16JGHBO5wDAnE7l2ZQ7te2YL4W6jz EzRnHrtGjUeS5a004tiavodglH4uDGLCgEpTQbjRuXQgWz4YX7DdOQNGq5Q6fENlx+XGRmWArMgGd IDS+xIGVIP6haBqSErjKn5CfQufc5YRAylofNPiAvbf3s+QeolvnQ0+8agUaj7KYiOCOkUu6AQxZ6 WPvpDP0Q==; Received: from hch by bombadil.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOejq-00C3H0-8u; Mon, 28 Feb 2022 12:02:50 +0000 Date: Mon, 28 Feb 2022 04:02:50 -0800 From: Christoph Hellwig 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, Mark Rutland 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> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Mark actually has a tree that switches to gnu99 with a lot of the issues already sortd out and keeping sane default for things like the absolutely horrible declarations in the middle of code here: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?h=treewide/gnu99&id=697e436ae0216aef4a37e69e85042c225492d6ff 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 > 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 > ---end quoted text--- 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 F0646C433F5 for ; Mon, 28 Feb 2022 12:03:17 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 57EAB10E653; Mon, 28 Feb 2022 12:03:17 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) by gabe.freedesktop.org (Postfix) with ESMTPS id C40D410E654; Mon, 28 Feb 2022 12:03:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Transfer-Encoding :Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=ohRWO5aJ73mE5bdhThGrtXZmC0cnKiaheTPJQAfRtqs=; b=OX2WXj2Qdb3r9Hs5mYvEmYlMQo 5/NLyLto2hS8OKESxkG4qbqv/RjzBEO0rTb/1YpYP/XXzx7GUaG/hv0hwwLSJ2QleyGFyk/zKuTpx ZfrtJ6HbRg3Tzw7mw9OmSlz2Z+MFapuGuc+HLHWcp7ZR15Ef16JGHBO5wDAnE7l2ZQ7te2YL4W6jz EzRnHrtGjUeS5a004tiavodglH4uDGLCgEpTQbjRuXQgWz4YX7DdOQNGq5Q6fENlx+XGRmWArMgGd IDS+xIGVIP6haBqSErjKn5CfQufc5YRAylofNPiAvbf3s+QeolvnQ0+8agUaj7KYiOCOkUu6AQxZ6 WPvpDP0Q==; Received: from hch by bombadil.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOejq-00C3H0-8u; Mon, 28 Feb 2022 12:02:50 +0000 Date: Mon, 28 Feb 2022 04:02:50 -0800 From: Christoph Hellwig 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-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html 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, Mark Rutland , 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" Mark actually has a tree that switches to gnu99 with a lot of the issues already sortd out and keeping sane default for things like the absolutely horrible declarations in the middle of code here: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?h=treewide/gnu99&id=697e436ae0216aef4a37e69e85042c225492d6ff 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 > 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 > ---end quoted text--- 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 2287DC433F5 for ; Mon, 28 Feb 2022 12:33:17 +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=avlHDH/TNNJouGmFw2bZHsXrrFaV6qKIl9xGqGoJ86o=; b=VsvXmZTeeTF64c ENFaVyoIjcu/cCEKv4w7uJZHTgPcKrsfJwJr4JJNSTJFW6mUqfBN4Z5IOANAeKmLOAq3Ruc8C5xOC UHGD3t76+KsK8xxoxMOtOcRYocpUlNq7rxIRSGc7P+8z1ufVSnZxcOS4JJdsx+NrIRPrFFTfsOc+9 rPB7TvneQy25i7DUvFJs/PueWok5HeOt0/pRG5lIrBnN261CENFSWM65ldT3eooeHfD+CajMHN2fh wXm2OqIcBYFAuKS0WvzybWbszEwYL+keN3EmPXXgdxL4BcKDFGfrCUviXagL3RputofFYF/tMZZFw H3FpzY3L0KT7bB3JwvIQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOfBu-00CE0D-Uv; Mon, 28 Feb 2022 12:31:51 +0000 Received: from hch by bombadil.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOejq-00C3H0-8u; Mon, 28 Feb 2022 12:02:50 +0000 Date: Mon, 28 Feb 2022 04:02:50 -0800 From: Christoph Hellwig 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, Mark Rutland 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-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 TWFyayBhY3R1YWxseSBoYXMgYSB0cmVlIHRoYXQgc3dpdGNoZXMgdG8gZ251OTkgd2l0aCBhIGxv dCBvZiB0aGUKaXNzdWVzIGFscmVhZHkgc29ydGQgb3V0IGFuZCBrZWVwaW5nIHNhbmUgZGVmYXVs dCBmb3IgdGhpbmdzIGxpa2UgdGhlCmFic29sdXRlbHkgaG9ycmlibGUgZGVjbGFyYXRpb25zIGlu IHRoZSBtaWRkbGUgb2YgY29kZSBoZXJlOgoKaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2Nt L2xpbnV4L2tlcm5lbC9naXQvbWFyay9saW51eC5naXQvY29tbWl0Lz9oPXRyZWV3aWRlL2dudTk5 JmlkPTY5N2U0MzZhZTAyMTZhZWY0YTM3ZTY5ZTg1MDQyYzIyNTQ5MmQ2ZmYKCk9uIFN1biwgRmVi IDI3LCAyMDIyIGF0IDEwOjUyOjQzUE0gKzAxMDAsIEFybmQgQmVyZ21hbm4gd3JvdGU6Cj4gRnJv bTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KPiAKPiBEdXJpbmcgYSBwYXRjaCBkaXNj dXNzaW9uLCBMaW51cyBicm91Z2h0IHVwIHRoZSBvcHRpb24gb2YgY2hhbmdpbmcKPiB0aGUgQyBz dGFuZGFyZCB2ZXJzaW9uIGZyb20gZ251ODkgdG8gZ251OTksIHdoaWNoIGFsbG93cyB1c2luZyB2 YXJpYWJsZQo+IGRlY2xhcmF0aW9uIGluc2lkZSBvZiBhIGZvcigpIGxvb3AuIFdoaWxlIHRoZSBD OTksIEMxMSBhbmQgbGF0ZXIgc3RhbmRhcmRzCj4gaW50cm9kdWNlIG1hbnkgb3RoZXIgZmVhdHVy ZXMsIG1vc3Qgb2YgdGhlc2UgYXJlIGFscmVhZHkgYXZhaWxhYmxlIGluCj4gZ251ODkgYXMgR05V IGV4dGVuc2lvbnMgYXMgd2VsbC4KPiAKPiBBbiBlYXJsaWVyIGF0dGVtcHQgdG8gZG8gdGhpcyB3 aGVuIGdjYy01IHN0YXJ0ZWQgZGVmYXVsdGluZyB0bwo+IC1zdGQ9Z251MTEgZmFpbGVkIGJlY2F1 c2UgYXQgdGhlIHRpbWUgdGhhdCBjYXVzZWQgd2FybmluZ3MgYWJvdXQKPiBkZXNpZ25hdGVkIGlu aXRpYWxpemVycyB3aXRoIG9sZGVyIGNvbXBpbGVycy4gTm93IHRoYXQgZ2NjLTUuMSBpcyB0aGUK PiBtaW5pbXVtIGNvbXBpbGVyIHZlcnNpb24gdXNlZCBmb3IgYnVpbGRpbmcga2VybmVscywgdGhh dCBpcyBubyBsb25nZXIgYQo+IGNvbmNlcm4uIFNpbWlsYXJseSwgdGhlIGJlaGF2aW9yIG9mICdp bmxpbmUnIGZ1bmN0aW9ucyBjaGFuZ2VzIGJldHdlZW4KPiBnbnU4OSBhbmQgZ251ODksIGJ1dCB0 aGlzIHdhcyB0YWtlbiBjYXJlIG9mIGJ5IGRlZmluaW5nICdpbmxpbmUnIHRvCj4gaW5jbHVkZSBf X2F0dHJpYnV0ZV9fKChnbnVfaW5saW5lKSkgaW4gb3JkZXIgdG8gYWxsb3cgYnVpbGRpbmcgd2l0 aAo+IGNsYW5nIGEgd2hpbGUgYWdvLgo+IAo+IE9uZSBtaW5vciBpc3N1ZSB0aGF0IHJlbWFpbnMg aXMgYW4gYWRkZWQgZ2NjIHdhcm5pbmcgZm9yIHNoaWZ0cyBvZgo+IG5lZ2F0aXZlIGludGVnZXJz IHdoZW4gYnVpbGRpbmcgd2l0aCAtV2Vycm9yLCB3aGljaCBoYXBwZW5zIHdpdGggdGhlCj4gJ21h a2UgVz0xJyBvcHRpb24sIGFzIHdlbGwgYXMgZm9yIHRocmVlIGRyaXZlcnMgaW4gdGhlIGtlcm5l bCB0aGF0IGFsd2F5cwo+IGVuYWJsZSAtV2Vycm9yLCBidXQgaXQgd2FzIG9ubHkgb2JzZXJ2ZWQg d2l0aCB0aGUgaTkxNSBkcml2ZXIgc28gZmFyLgo+IAo+IE5hdGhhbiBDaGFuY2VsbG9yIHJlcG9y dGVkIGFuIGFkZGl0aW9uYWwgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKPiB3YXJuaW5n IHRoYXQgYXBwZWFycyBpbiBhIHN5c3RlbSBoZWFkZXIgb24gYXJtLCB0aGlzIHN0aWxsIG5lZWRz IGEKPiB3b3JrYXJvdW5kLgo+IAo+IFNpbmNlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGdudTk5 LCBnbnUxMSBhbmQgZ251MTcgYXJlIGZhaXJseSBtaW5pbWFsCj4gYW5kIG1haW5seSBpbXBhY3Qg d2FybmluZ3MgYXQgdGhlIC1XcGVkYW50aWMgbGV2ZWwgdGhhdCB0aGUga2VybmVsCj4gbmV2ZXIg ZW5hYmxlcywgdGhlIGVhc2llc3Qgd2F5IGlzIHRvIGp1c3QgbGVhdmUgb3V0IHRoZSAtc3RkPWdu dTg5Cj4gYXJndW1lbnQgZW50aXJlbHksIGFuZCByZWx5IG9uIHRoZSBjb21waWxlciBkZWZhdWx0 IGxhbmd1YWdlIHNldHRpbmcsCj4gd2hpY2ggaXMgZ251MTEgZm9yIGdjYy01LCBhbmQgZ251MXgv Z251MTcgZm9yIGFsbCBvdGhlciBzdXBwb3J0ZWQKPiB2ZXJzaW9ucyBvZiBnY2Mgb3IgY2xhbmcu Cj4gCj4gTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC9DQUhrLT13aXlDSDd4ZUhj bWlGSi1ZZ1hVeTJKYWo3cG5rZEtwY292dDhmWWJWRlczVEFAbWFpbC5nbWFpbC5jb20vCj4gTGlu azogaHR0cHM6Ly9naXRodWIuY29tL0NsYW5nQnVpbHRMaW51eC9saW51eC9pc3N1ZXMvMTYwMwo+ IFN1Z2dlc3RlZC1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24u b3JnPgo+IENjOiBNYXNhaGlybyBZYW1hZGEgPG1hc2FoaXJveUBrZXJuZWwub3JnPgo+IENjOiBs aW51eC1rYnVpbGRAdmdlci5rZXJuZWwub3JnCj4gQ2M6IGxsdm1AbGlzdHMubGludXguZGV2Cj4g U2lnbmVkLW9mZi1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KPiAtLS0KPiBJIHB1 dCB0aGUgc3VnZ2VzdGlvbiBpbnRvIHBhdGNoIGZvcm0sIGJhc2VkIG9uIHdoYXQgd2UgZGlzY3Vz c2VkCj4gaW4gdGhlIHRocmVhZC4gIEkgb25seSBnYXZlIGl0IG1pbmltYWwgdGVzdGluZywgYnV0 IGl0IHdvdWxkCj4gYmUgZ29vZCB0byBoYXZlIGl0IGluIGxpbnV4LW5leHQgaWYgd2Ugd2FudCB0 byBkbyB0aGlzIGluIHRoZQo+IG1lcmdlIHdpbmRvdy4KPiAtLS0KPiAgRG9jdW1lbnRhdGlvbi9w cm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdCAgICAgICAgICAgICB8IDQgKystLQo+ICAu Li4vdHJhbnNsYXRpb25zL2l0X0lUL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0ICAg IHwgNCArKy0tCj4gIC4uLi90cmFuc2xhdGlvbnMvemhfQ04vcHJvY2Vzcy9wcm9ncmFtbWluZy1s YW5ndWFnZS5yc3QgICAgfCA0ICsrLS0KPiAgLi4uL3RyYW5zbGF0aW9ucy96aF9UVy9wcm9jZXNz L3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdCAgICB8IDQgKystLQo+ICBNYWtlZmlsZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNyArKystLS0tCj4g IGFyY2gvYXJtNjQva2VybmVsL3Zkc28zMi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAzICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMSArCj4gIGRyaXZlcnMvc3RhZ2luZy9ncmV5YnVzL3Rvb2xzL01h a2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAzICsrLQo+ICBmcy9idHJmcy9NYWtlZmlsZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMSArCj4gIHNjcmlwdHMv TWFrZWZpbGUuZXh0cmF3YXJuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxICsK PiAgMTAgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFn ZS5yc3QgYi9Eb2N1bWVudGF0aW9uL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4g aW5kZXggZWM0NzRhNzBhMDJmLi44OTRmMmE2ZWI5ZGIgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRh dGlvbi9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdAo+ICsrKyBiL0RvY3VtZW50YXRp b24vcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKPiBAQCAtNSw4ICs1LDggQEAgUHJv Z3JhbW1pbmcgTGFuZ3VhZ2UKPiAgCj4gIFRoZSBrZXJuZWwgaXMgd3JpdHRlbiBpbiB0aGUgQyBw cm9ncmFtbWluZyBsYW5ndWFnZSBbYy1sYW5ndWFnZV1fLgo+ICBNb3JlIHByZWNpc2VseSwgdGhl IGtlcm5lbCBpcyB0eXBpY2FsbHkgY29tcGlsZWQgd2l0aCBgYGdjY2BgIFtnY2NdXwo+IC11bmRl ciBgYC1zdGQ9Z251ODlgYCBbZ2NjLWMtZGlhbGVjdC1vcHRpb25zXV86IHRoZSBHTlUgZGlhbGVj dCBvZiBJU08gQzkwCj4gLShpbmNsdWRpbmcgc29tZSBDOTkgZmVhdHVyZXMpLiBgYGNsYW5nYGAg W2NsYW5nXV8gaXMgYWxzbyBzdXBwb3J0ZWQsIHNlZQo+ICt1bmRlciBgYC1zdGQ9Z251MTFgYCBb Z2NjLWMtZGlhbGVjdC1vcHRpb25zXV86IHRoZSBHTlUgZGlhbGVjdCBvZiBJU08gQzExCj4gKyhp bmNsdWRpbmcgc29tZSBDMTcgZmVhdHVyZXMpLiBgYGNsYW5nYGAgW2NsYW5nXV8gaXMgYWxzbyBz dXBwb3J0ZWQsIHNlZQo+ICBkb2NzIG9uIDpyZWY6YEJ1aWxkaW5nIExpbnV4IHdpdGggQ2xhbmcv TExWTSA8a2J1aWxkX2xsdm0+YC4KPiAgCj4gIFRoaXMgZGlhbGVjdCBjb250YWlucyBtYW55IGV4 dGVuc2lvbnMgdG8gdGhlIGxhbmd1YWdlIFtnbnUtZXh0ZW5zaW9uc11fLAo+IGRpZmYgLS1naXQg YS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy9pdF9JVC9wcm9jZXNzL3Byb2dyYW1taW5nLWxh bmd1YWdlLnJzdCBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL2l0X0lUL3Byb2Nlc3MvcHJv Z3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4gaW5kZXggNDFkYjI1OThjZTExLi5hYTIxMDk3NzM3YWUg MTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvaXRfSVQvcHJvY2Vzcy9w cm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKPiArKysgYi9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9u cy9pdF9JVC9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdAo+IEBAIC0xMCw4ICsxMCw4 IEBAIExpbmd1YWdnaW8gZGkgcHJvZ3JhbW1hemlvbmUKPiAgCj4gIElsIGtlcm5lbCDDqCBzY3Jp dHRvIG5lbCBsaW5ndWFnZ2lvIGRpIHByb2dyYW1tYXppb25lIEMgW2l0LWMtbGFuZ3VhZ2VdXy4K PiAgUGnDuSBwcmVjaXNhbWVudGUsIGlsIGtlcm5lbCB2aWVuZSBjb21waWxhdG8gY29uIGBgZ2Nj YGAgW2l0LWdjY11fIHVzYW5kbwo+IC1sJ29wemlvbmUgYGAtc3RkPWdudTg5YGAgW2l0LWdjYy1j LWRpYWxlY3Qtb3B0aW9uc11fOiBpbCBkaWFsZXR0byBHTlUKPiAtZGVsbG8gc3RhbmRhcmQgSVNP IEM5MCAoY29uIGwnYWdnaXVudGEgZGkgYWxjdW5lIGZ1bnppb25hbGl0w6AgZGEgQzk5KS4KPiAr bCdvcHppb25lIGBgLXN0ZD1nbnUxMWBgIFtpdC1nY2MtYy1kaWFsZWN0LW9wdGlvbnNdXzogaWwg ZGlhbGV0dG8gR05VCj4gK2RlbGxvIHN0YW5kYXJkIElTTyBDMTEgKGNvbiBsJ2FnZ2l1bnRhIGRp IGFsY3VuZSBmdW56aW9uYWxpdMOgIGRhIEMxNykuCj4gIExpbnV4IHN1cHBvcnRhIGFuY2hlIGBg Y2xhbmdgYCBbaXQtY2xhbmddXywgbGVnZ2V0ZSBsYSBkb2N1bWVudGF6aW9uZQo+ICA6cmVmOmBC dWlsZGluZyBMaW51eCB3aXRoIENsYW5nL0xMVk0gPGtidWlsZF9sbHZtPmAuCj4gIAo+IGRpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9wcm9jZXNzL3Byb2dyYW1t aW5nLWxhbmd1YWdlLnJzdCBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL3Byb2Nl c3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0Cj4gaW5kZXggMmE0N2ExZDJlYzIwLi41OGQyYjNi ZDJkODUgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vcHJv Y2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKPiArKysgYi9Eb2N1bWVudGF0aW9uL3RyYW5z bGF0aW9ucy96aF9DTi9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdAo+IEBAIC05LDgg KzksOCBAQAo+ICA9PT09PT09PT09PT0KPiAgCj4gIOWGheaguOaYr+eUqEPor63oqIAgOnJlZjpg Yy1sYW5ndWFnZSA8Y25fYy1sYW5ndWFnZT5gIOe8luWGmeeahOOAguabtOWHhuehruWcsOivtO+8 jOWGheaguOmAmuW4uOaYr+eUqCA6cmVmOmBnY2MgPGNuX2djYz5gCj4gLeWcqCBgYC1zdGQ9Z251 ODlgYCA6cmVmOmBnY2MtYy1kaWFsZWN0LW9wdGlvbnMgPGNuX2djYy1jLWRpYWxlY3Qtb3B0aW9u cz5gIOS4i+e8luivkeeahO+8mklTTyBDOTDnmoQgR05VIOaWueiogO+8iAo+IC3ljIXmi6zkuIDk uptDOTnnibnmgKfvvIkKPiAr5ZyoIGBgLXN0ZD1nbnUxMWBgIDpyZWY6YGdjYy1jLWRpYWxlY3Qt b3B0aW9ucyA8Y25fZ2NjLWMtZGlhbGVjdC1vcHRpb25zPmAg5LiL57yW6K+R55qE77yaSVNPIEMx MeeahCBHTlUg5pa56KiA77yICj4gK+WMheaLrOS4gOS6m0MxN+eJueaAp++8iQo+ICAKPiAg6L+Z 56eN5pa56KiA5YyF5ZCr5a+56K+t6KiAIDpyZWY6YGdudS1leHRlbnNpb25zIDxjbl9nbnUtZXh0 ZW5zaW9ucz5gIOeahOiuuOWkmuaJqeWxle+8jOW9k+eEtu+8jOWug+S7rOiuuOWkmumDveWcqOWG heaguOS4reS9v+eUqOOAggo+ICAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90cmFuc2xh dGlvbnMvemhfVFcvcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QgYi9Eb2N1bWVudGF0 aW9uL3RyYW5zbGF0aW9ucy96aF9UVy9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdAo+ IGluZGV4IDU0ZTM2OTllYWRmOC4uMjM1ZGUwNWY3ZTJjIDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50 YXRpb24vdHJhbnNsYXRpb25zL3poX1RXL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0 Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfVFcvcHJvY2Vzcy9wcm9ncmFt bWluZy1sYW5ndWFnZS5yc3QKPiBAQCAtMTIsOCArMTIsOCBAQAo+ICA9PT09PT09PT09PT0KPiAg Cj4gIOWFp+aguOaYr+eUqEPoqp7oqIAgOnJlZjpgYy1sYW5ndWFnZSA8dHdfYy1sYW5ndWFnZT5g IOe3qOWvq+eahOOAguabtOa6lueiuuWcsOiqqu+8jOWFp+aguOmAmuW4uOaYr+eUqCA6cmVmOmBn Y2MgPHR3X2djYz5gCj4gLeWcqCBgYC1zdGQ9Z251ODlgYCA6cmVmOmBnY2MtYy1kaWFsZWN0LW9w dGlvbnMgPHR3X2djYy1jLWRpYWxlY3Qtb3B0aW9ucz5gIOS4i+e3qOitr+eahO+8mklTTyBDOTDn moQgR05VIOaWueiogO+8iAo+IC3ljIXmi6zkuIDkuptDOTnnibnmgKfvvIkKPiAr5ZyoIGBgLXN0 ZD1nbnUxMWBgIDpyZWY6YGdjYy1jLWRpYWxlY3Qtb3B0aW9ucyA8dHdfZ2NjLWMtZGlhbGVjdC1v cHRpb25zPmAg5LiL57eo6K2v55qE77yaSVNPIEMxMeeahCBHTlUg5pa56KiA77yICj4gK+WMheaL rOS4gOS6m0MxN+eJueaAp++8iQo+ICAKPiAg6YCZ56iu5pa56KiA5YyF5ZCr5bCN6Kqe6KiAIDpy ZWY6YGdudS1leHRlbnNpb25zIDx0d19nbnUtZXh0ZW5zaW9ucz5gIOeahOioseWkmuaTtOWxle+8 jOeVtueEtu+8jOWug+WAkeioseWkmumDveWcqOWFp+aguOS4reS9v+eUqOOAggo+ICAKPiBkaWZm IC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQo+IGluZGV4IDI4OWNlMmJlODAzMi4uM2ZmNmJh NzY2ZjAyIDEwMDY0NAo+IC0tLSBhL01ha2VmaWxlCj4gKysrIGIvTWFrZWZpbGUKPiBAQCAtNDMy LDcgKzQzMiw3IEBAIEhPU1RDWFgJPSBnKysKPiAgZW5kaWYKPiAgCj4gIGV4cG9ydCBLQlVJTERf VVNFUkNGTEFHUyA6PSAtV2FsbCAtV21pc3NpbmctcHJvdG90eXBlcyAtV3N0cmljdC1wcm90b3R5 cGVzIFwKPiAtCQkJICAgICAgLU8yIC1mb21pdC1mcmFtZS1wb2ludGVyIC1zdGQ9Z251ODkKPiAr CQkJICAgICAgLU8yIC1mb21pdC1mcmFtZS1wb2ludGVyCj4gIGV4cG9ydCBLQlVJTERfVVNFUkxE RkxBR1MgOj0KPiAgCj4gIEtCVUlMRF9IT1NUQ0ZMQUdTICAgOj0gJChLQlVJTERfVVNFUkNGTEFH UykgJChIT1NUX0xGU19DRkxBR1MpICQoSE9TVENGTEFHUykKPiBAQCAtNTE0LDggKzUxNCw3IEBA IEtCVUlMRF9BRkxBR1MgICA6PSAtRF9fQVNTRU1CTFlfXyAtZm5vLVBJRQo+ICBLQlVJTERfQ0ZM QUdTICAgOj0gLVdhbGwgLVd1bmRlZiAtV2Vycm9yPXN0cmljdC1wcm90b3R5cGVzIC1Xbm8tdHJp Z3JhcGhzIFwKPiAgCQkgICAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWNvbW1vbiAtZnNob3J0 LXdjaGFyIC1mbm8tUElFIFwKPiAgCQkgICAtV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xh cmF0aW9uIC1XZXJyb3I9aW1wbGljaXQtaW50IFwKPiAtCQkgICAtV2Vycm9yPXJldHVybi10eXBl IC1Xbm8tZm9ybWF0LXNlY3VyaXR5IFwKPiAtCQkgICAtc3RkPWdudTg5Cj4gKwkJICAgLVdlcnJv cj1yZXR1cm4tdHlwZSAtV25vLWZvcm1hdC1zZWN1cml0eQo+ICBLQlVJTERfQ1BQRkxBR1MgOj0g LURfX0tFUk5FTF9fCj4gIEtCVUlMRF9BRkxBR1NfS0VSTkVMIDo9Cj4gIEtCVUlMRF9DRkxBR1Nf S0VSTkVMIDo9Cj4gQEAgLTc4Miw3ICs3ODEsNyBAQCBLQlVJTERfQ0ZMQUdTICs9ICQoS0JVSUxE X0NGTEFHUy15KSAkKENPTkZJR19DQ19JTVBMSUNJVF9GQUxMVEhST1VHSCkKPiAgCj4gIGlmZGVm IENPTkZJR19DQ19JU19DTEFORwo+ICBLQlVJTERfQ1BQRkxBR1MgKz0gLVF1bnVzZWQtYXJndW1l bnRzCj4gLSMgVGhlIGtlcm5lbCBidWlsZHMgd2l0aCAnLXN0ZD1nbnU4OScgc28gdXNlIG9mIEdO VSBleHRlbnNpb25zIGlzIGFjY2VwdGFibGUuCj4gKyMgVGhlIGtlcm5lbCBidWlsZHMgd2l0aCAn LXN0ZD1nbnUxMScgc28gdXNlIG9mIEdOVSBleHRlbnNpb25zIGlzIGFjY2VwdGFibGUuCj4gIEtC VUlMRF9DRkxBR1MgKz0gLVduby1nbnUKPiAgIyBDTEFORyB1c2VzIGEgX01lcmdlZEdsb2JhbHMg YXMgb3B0aW1pemF0aW9uLCBidXQgdGhpcyBicmVha3MgbW9kcG9zdCwgYXMgdGhlCj4gICMgc291 cmNlIG9mIGEgcmVmZXJlbmNlIHdpbGwgYmUgX01lcmdlZEdsb2JhbHMgYW5kIG5vdCBvbiBvZiB0 aGUgd2hpdGVsaXN0ZWQgbmFtZXMuCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3Zk c28zMi9NYWtlZmlsZSBiL2FyY2gvYXJtNjQva2VybmVsL3Zkc28zMi9NYWtlZmlsZQo+IGluZGV4 IDZjMDFiNjNmZjU2ZC4uMzI1MGQwZTI1NzgyIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtNjQva2Vy bmVsL3Zkc28zMi9NYWtlZmlsZQo+ICsrKyBiL2FyY2gvYXJtNjQva2VybmVsL3Zkc28zMi9NYWtl ZmlsZQo+IEBAIC02Nyw4ICs2Nyw3IEBAIFZEU09fQ0ZMQUdTICs9IC1ERU5BQkxFX0NPTVBBVF9W RFNPPTEKPiAgVkRTT19DRkxBR1MgKz0gLVdhbGwgLVd1bmRlZiAtV3N0cmljdC1wcm90b3R5cGVz IC1Xbm8tdHJpZ3JhcGhzIFwKPiAgICAgICAgICAgICAgICAgLWZuby1zdHJpY3QtYWxpYXNpbmcg LWZuby1jb21tb24gXAo+ICAgICAgICAgICAgICAgICAtV2Vycm9yLWltcGxpY2l0LWZ1bmN0aW9u LWRlY2xhcmF0aW9uIFwKPiAtICAgICAgICAgICAgICAgLVduby1mb3JtYXQtc2VjdXJpdHkgXAo+ IC0gICAgICAgICAgICAgICAtc3RkPWdudTg5Cj4gKyAgICAgICAgICAgICAgIC1Xbm8tZm9ybWF0 LXNlY3VyaXR5Cj4gIFZEU09fQ0ZMQUdTICArPSAtTzIKPiAgIyBTb21lIHVzZWZ1bCBjb21waWxl ci1kZXBlbmRlbnQgZmxhZ3MgZnJvbSB0b3AtbGV2ZWwgTWFrZWZpbGUKPiAgVkRTT19DRkxBR1Mg Kz0gJChjYWxsIGNjMzItb3B0aW9uLC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50LCkKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZQo+IGluZGV4IDFiNjJiOWY2NTE5Ni4uMTYxOGE2ZTBhZjRlIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUKPiBAQCAtMTcsNiArMTcsNyBAQCBzdWJkaXItY2NmbGFncy15 ICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlcgo+ICBzdWJkaXItY2NmbGFncy15ICs9IC1Xbm8tdHlw ZS1saW1pdHMKPiAgc3ViZGlyLWNjZmxhZ3MteSArPSAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlh bGl6ZXJzCj4gIHN1YmRpci1jY2ZsYWdzLXkgKz0gLVduby1zaWduLWNvbXBhcmUKPiArc3ViZGly LWNjZmxhZ3MteSArPSAtV25vLXNoaWZ0LW5lZ2F0aXZlLXZhbHVlCj4gIHN1YmRpci1jY2ZsYWdz LXkgKz0gJChjYWxsIGNjLWRpc2FibGUtd2FybmluZywgdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUp Cj4gIHN1YmRpci1jY2ZsYWdzLXkgKz0gJChjYWxsIGNjLWRpc2FibGUtd2FybmluZywgZnJhbWUt YWRkcmVzcykKPiAgc3ViZGlyLWNjZmxhZ3MtJChDT05GSUdfRFJNX0k5MTVfV0VSUk9SKSArPSAt V2Vycm9yCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ncmV5YnVzL3Rvb2xzL01ha2Vm aWxlIGIvZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvdG9vbHMvTWFrZWZpbGUKPiBpbmRleCBhZDBh ZTgwNTNiNzkuLmEzYmJkNzMxNzFmMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvZ3Jl eWJ1cy90b29scy9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9ncmV5YnVzL3Rvb2xz L01ha2VmaWxlCj4gQEAgLTEyLDcgKzEyLDggQEAgQ0ZMQUdTCSs9IC1zdGQ9Z251OTkgLVdhbGwg LVdleHRyYSAtZyBcCj4gIAkgICAgLVdyZWR1bmRhbnQtZGVjbHMgXAo+ICAJICAgIC1XY2FzdC1h bGlnbiBcCj4gIAkgICAgLVdzaWduLWNvbXBhcmUgXAo+IC0JICAgIC1Xbm8tbWlzc2luZy1maWVs ZC1pbml0aWFsaXplcnMKPiArCSAgICAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIFwK PiArCSAgICAtV25vLXNoaWZ0LW5lZ2F0aXZlLXZhbHVlCj4gIAo+ICBDQwk6PSAkKENST1NTX0NP TVBJTEUpZ2NjCj4gIAo+IGRpZmYgLS1naXQgYS9mcy9idHJmcy9NYWtlZmlsZSBiL2ZzL2J0cmZz L01ha2VmaWxlCj4gaW5kZXggNDE4OGJhM2ZkOGMzLi45OWY5OTk1NjcwZWEgMTAwNjQ0Cj4gLS0t IGEvZnMvYnRyZnMvTWFrZWZpbGUKPiArKysgYi9mcy9idHJmcy9NYWtlZmlsZQo+IEBAIC0xNyw2 ICsxNyw3IEBAIHN1YmRpci1jY2ZsYWdzLXkgKz0gJChjb25kZmxhZ3MpCj4gIHN1YmRpci1jY2Zs YWdzLXkgKz0gLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycwo+ICBzdWJkaXItY2NmbGFn cy15ICs9IC1Xbm8tc2lnbi1jb21wYXJlCj4gIHN1YmRpci1jY2ZsYWdzLXkgKz0gLVduby10eXBl LWxpbWl0cwo+ICtzdWJkaXItY2NmbGFncy15ICs9IC1Xbm8tc2hpZnQtbmVnYXRpdmUtdmFsdWUK PiAgCj4gIG9iai0kKENPTkZJR19CVFJGU19GUykgOj0gYnRyZnMubwo+ICAKPiBkaWZmIC0tZ2l0 IGEvc2NyaXB0cy9NYWtlZmlsZS5leHRyYXdhcm4gYi9zY3JpcHRzL01ha2VmaWxlLmV4dHJhd2Fy bgo+IGluZGV4IDhiZTg5Mjg4N2Q3MS4uNjUwZDBiOGNlZWMzIDEwMDY0NAo+IC0tLSBhL3Njcmlw dHMvTWFrZWZpbGUuZXh0cmF3YXJuCj4gKysrIGIvc2NyaXB0cy9NYWtlZmlsZS5leHRyYXdhcm4K PiBAQCAtMzYsNiArMzYsNyBAQCBLQlVJTERfQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sIC1X c3RyaW5nb3AtdHJ1bmNhdGlvbikKPiAgS0JVSUxEX0NGTEFHUyArPSAtV25vLW1pc3NpbmctZmll bGQtaW5pdGlhbGl6ZXJzCj4gIEtCVUlMRF9DRkxBR1MgKz0gLVduby1zaWduLWNvbXBhcmUKPiAg S0JVSUxEX0NGTEFHUyArPSAtV25vLXR5cGUtbGltaXRzCj4gK0tCVUlMRF9DRkxBR1MgKz0gLVdu by1zaGlmdC1uZWdhdGl2ZS12YWx1ZQo+ICAKPiAgS0JVSUxEX0NQUEZMQUdTICs9IC1ES0JVSUxE X0VYVFJBX1dBUk4xCj4gIAo+IC0tIAo+IDIuMjkuMgo+IAotLS1lbmQgcXVvdGVkIHRleHQtLS0K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFy bS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1r ZXJuZWwK