From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 1396348B7; Mon, 28 Feb 2022 10:32:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A53CBC340E7; Mon, 28 Feb 2022 10:32:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1646044330; bh=NTMoGe2qM6Zlz2XjXRYS6obPgPuEJeVRzpLtHtUzKbU=; h=From:To:Cc:Subject:Date:From; b=rvT9Sz0ZYpqlbao+aNtyUDhbYN60iOK0g94ID0/9blJGJHbgXOMUCx4E6u9j6hi+N MOy/YvYTA3T9OkTggpf0QNPZthUon2kBk6f2OBl99CJwNxmM2qZuG1ngx5D8u4EpkI 7V5QyKUXLzeme56EkuSPctfKC11Qj4bCGRFrQ2+5Mr+/GlwGc0ZWQhMoZfPLT22M3w ANedRGgopyuejv8pL9dimPpPXBfm3gK1SFBnfY8Amk3vS8IYdtZmMEj+pm49RH3D51 ihAHScB1jNVHki71tguNvLPH6pOa0g76LxFsPOZ7vfCMXzcjRoUjONjBxIz5sDVRuM lua1ZFvShJhfQ== From: Arnd Bergmann To: linux-kbuild@vger.kernel.org Cc: Arnd Bergmann , Linus Torvalds , Masahiro Yamada , llvm@lists.linux.dev, Jonathan Corbet , Federico Vaga , Alex Shi , Hu Haowen , Michal Marek , Nick Desaulniers , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc-tw-discuss@lists.sourceforge.net, linux-arm-kernel@lists.infradead.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-btrfs@vger.kernel.org Subject: [PATCH] [v2] Kbuild: move to -std=gnu11 Date: Mon, 28 Feb 2022 11:27:43 +0100 Message-Id: <20220228103142.3301082-1-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 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-Transfer-Encoding: 8bit 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. 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 3B08AC433FE for ; Mon, 28 Feb 2022 10:32:17 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 495D610E37C; Mon, 28 Feb 2022 10:32:16 +0000 (UTC) Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4B18410E376; Mon, 28 Feb 2022 10:32:14 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 46AC1B80FD3; Mon, 28 Feb 2022 10:32:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A53CBC340E7; Mon, 28 Feb 2022 10:32:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1646044330; bh=NTMoGe2qM6Zlz2XjXRYS6obPgPuEJeVRzpLtHtUzKbU=; h=From:To:Cc:Subject:Date:From; b=rvT9Sz0ZYpqlbao+aNtyUDhbYN60iOK0g94ID0/9blJGJHbgXOMUCx4E6u9j6hi+N MOy/YvYTA3T9OkTggpf0QNPZthUon2kBk6f2OBl99CJwNxmM2qZuG1ngx5D8u4EpkI 7V5QyKUXLzeme56EkuSPctfKC11Qj4bCGRFrQ2+5Mr+/GlwGc0ZWQhMoZfPLT22M3w ANedRGgopyuejv8pL9dimPpPXBfm3gK1SFBnfY8Amk3vS8IYdtZmMEj+pm49RH3D51 ihAHScB1jNVHki71tguNvLPH6pOa0g76LxFsPOZ7vfCMXzcjRoUjONjBxIz5sDVRuM lua1ZFvShJhfQ== From: Arnd Bergmann To: linux-kbuild@vger.kernel.org Subject: [PATCH] [v2] Kbuild: move to -std=gnu11 Date: Mon, 28 Feb 2022 11:27:43 +0100 Message-Id: <20220228103142.3301082-1-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: 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, linux-arm-kernel@lists.infradead.org, Federico Vaga , Hu Haowen , intel-gfx@lists.freedesktop.org, linux-btrfs@vger.kernel.org, Linus Torvalds , linux-doc-tw-discuss@lists.sourceforge.net, Alex Shi Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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. 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 E9CDAC433F5 for ; Mon, 28 Feb 2022 10:33:30 +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:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=/O/g11jy26TJpl8QiAybkPP6PcR+fxuN7LIes0b/F34=; b=jntzYE1C7dVau0 O2u76wb2bnbW+Lt7cpY2m+LBd1ke9+0TxEBYFfqsS6pvbbrBYuQ83dvLQSDvCbt5h9ARW1lamfl2t k8aRkJWtryBRL9MEJtiknb8eUiRaLZsxBnWC/8zTeS0k/8S0Mb1lmfv4xUkH/DMZE7lvJgb8Tiuct VKpUTj73N1ewSvysGq8eBFFWTeXF7M7p9xYtCmY3CCa+LP1j7QxqAkWgr3XpBCpE8F0tN7TrjUQVa q5hbapDjdOzpvuWA9LE9dlb62FeMM481oVBEDtTQjBPgRF4thy9T92UKrutpKvaRstag+dpUzG6xC APR6IoTY57m6foSHLUVQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOdKE-00BV8h-86; Mon, 28 Feb 2022 10:32:18 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOdK9-00BV6y-W7 for linux-arm-kernel@lists.infradead.org; Mon, 28 Feb 2022 10:32:16 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 46AC1B80FD3; Mon, 28 Feb 2022 10:32:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A53CBC340E7; Mon, 28 Feb 2022 10:32:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1646044330; bh=NTMoGe2qM6Zlz2XjXRYS6obPgPuEJeVRzpLtHtUzKbU=; h=From:To:Cc:Subject:Date:From; b=rvT9Sz0ZYpqlbao+aNtyUDhbYN60iOK0g94ID0/9blJGJHbgXOMUCx4E6u9j6hi+N MOy/YvYTA3T9OkTggpf0QNPZthUon2kBk6f2OBl99CJwNxmM2qZuG1ngx5D8u4EpkI 7V5QyKUXLzeme56EkuSPctfKC11Qj4bCGRFrQ2+5Mr+/GlwGc0ZWQhMoZfPLT22M3w ANedRGgopyuejv8pL9dimPpPXBfm3gK1SFBnfY8Amk3vS8IYdtZmMEj+pm49RH3D51 ihAHScB1jNVHki71tguNvLPH6pOa0g76LxFsPOZ7vfCMXzcjRoUjONjBxIz5sDVRuM lua1ZFvShJhfQ== From: Arnd Bergmann To: linux-kbuild@vger.kernel.org Cc: Arnd Bergmann , Linus Torvalds , Masahiro Yamada , llvm@lists.linux.dev, Jonathan Corbet , Federico Vaga , Alex Shi , Hu Haowen , Michal Marek , Nick Desaulniers , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc-tw-discuss@lists.sourceforge.net, linux-arm-kernel@lists.infradead.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-btrfs@vger.kernel.org Subject: [PATCH] [v2] Kbuild: move to -std=gnu11 Date: Mon, 28 Feb 2022 11:27:43 +0100 Message-Id: <20220228103142.3301082-1-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220228_023214_381734_CE0DD9F9 X-CRM114-Status: GOOD ( 23.86 ) 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 RnJvbTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KCkR1cmluZyBhIHBhdGNoIGRpc2N1 c3Npb24sIExpbnVzIGJyb3VnaHQgdXAgdGhlIG9wdGlvbiBvZiBjaGFuZ2luZwp0aGUgQyBzdGFu ZGFyZCB2ZXJzaW9uIGZyb20gZ251ODkgdG8gZ251OTksIHdoaWNoIGFsbG93cyB1c2luZyB2YXJp YWJsZQpkZWNsYXJhdGlvbiBpbnNpZGUgb2YgYSBmb3IoKSBsb29wLiBXaGlsZSB0aGUgQzk5LCBD MTEgYW5kIGxhdGVyIHN0YW5kYXJkcwppbnRyb2R1Y2UgbWFueSBvdGhlciBmZWF0dXJlcywgbW9z dCBvZiB0aGVzZSBhcmUgYWxyZWFkeSBhdmFpbGFibGUgaW4KZ251ODkgYXMgR05VIGV4dGVuc2lv bnMgYXMgd2VsbC4KCkFuIGVhcmxpZXIgYXR0ZW1wdCB0byBkbyB0aGlzIHdoZW4gZ2NjLTUgc3Rh cnRlZCBkZWZhdWx0aW5nIHRvCi1zdGQ9Z251MTEgZmFpbGVkIGJlY2F1c2UgYXQgdGhlIHRpbWUg dGhhdCBjYXVzZWQgd2FybmluZ3MgYWJvdXQKZGVzaWduYXRlZCBpbml0aWFsaXplcnMgd2l0aCBv bGRlciBjb21waWxlcnMuIE5vdyB0aGF0IGdjYy01LjEgaXMgdGhlCm1pbmltdW0gY29tcGlsZXIg dmVyc2lvbiB1c2VkIGZvciBidWlsZGluZyBrZXJuZWxzLCB0aGF0IGlzIG5vIGxvbmdlciBhCmNv bmNlcm4uIFNpbWlsYXJseSwgdGhlIGJlaGF2aW9yIG9mICdpbmxpbmUnIGZ1bmN0aW9ucyBjaGFu Z2VzIGJldHdlZW4KZ251ODkgYW5kIGdudTExLCBidXQgdGhpcyB3YXMgdGFrZW4gY2FyZSBvZiBi eSBkZWZpbmluZyAnaW5saW5lJyB0bwppbmNsdWRlIF9fYXR0cmlidXRlX18oKGdudV9pbmxpbmUp KSBpbiBvcmRlciB0byBhbGxvdyBidWlsZGluZyB3aXRoCmNsYW5nIGEgd2hpbGUgYWdvLgoKT25l IG1pbm9yIGlzc3VlIHRoYXQgcmVtYWlucyBpcyBhbiBhZGRlZCBnY2Mgd2FybmluZyBmb3Igc2hp ZnRzIG9mCm5lZ2F0aXZlIGludGVnZXJzIHdoZW4gYnVpbGRpbmcgd2l0aCAtV2Vycm9yLCB3aGlj aCBoYXBwZW5zIHdpdGggdGhlCidtYWtlIFc9MScgb3B0aW9uLCBhcyB3ZWxsIGFzIGZvciB0aHJl ZSBkcml2ZXJzIGluIHRoZSBrZXJuZWwgdGhhdCBhbHdheXMKZW5hYmxlIC1XZXJyb3IsIGJ1dCBp dCB3YXMgb25seSBvYnNlcnZlZCB3aXRoIHRoZSBpOTE1IGRyaXZlciBzbyBmYXIuClRvIGJlIG9u IHRoZSBzYWZlIHNpZGUsIGFkZCAtV25vLXNoaWZ0LW5lZ2F0aXZlLXZhbHVlIHRvIGFueSAtV2V4 dHJhCmluIGEgTWFrZWZpbGUuCgpOYXRoYW4gQ2hhbmNlbGxvciByZXBvcnRlZCBhbiBhZGRpdGlv bmFsIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Cndhcm5pbmcgdGhhdCBhcHBlYXJzIGlu IGEgc3lzdGVtIGhlYWRlciBvbiBhcm0sIHRoaXMgc3RpbGwgbmVlZHMgYQp3b3JrYXJvdW5kLgoK VGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gZ251OTksIGdudTExLCBnbnUxeCBhbmQgZ251MTcgYXJl IGZhaXJseQptaW5pbWFsIGFuZCBtYWlubHkgaW1wYWN0IHdhcm5pbmdzIGF0IHRoZSAtV3BlZGFu dGljIGxldmVsIHRoYXQgdGhlCmtlcm5lbCBuZXZlciBlbmFibGVzLiBCZXR3ZWVuIHRoZXNlLCBn bnUxMSBpcyB0aGUgbmV3ZXN0IHZlcnNpb24KdGhhdCBpcyBzdXBwb3J0ZWQgYnkgYWxsIHN1cHBv cnRlZCBjb21waWxlciB2ZXJzaW9ucywgdGhvdWdoIGl0IGlzCm9ubHkgdGhlIGRlZmF1bHQgb24g Z2NjLTUsIHdoaWxlIGFsbCBvdGhlciBzdXBwb3J0ZWQgdmVyc2lvbnMgb2YKZ2NjIG9yIGNsYW5n IGRlZmF1bHQgdG8gZ251MXgvZ251MTcuCgpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9s a21sL0NBSGstPXdpeUNIN3hlSGNtaUZKLVlnWFV5MkphajdwbmtkS3Bjb3Z0OGZZYlZGVzNUQUBt YWlsLmdtYWlsLmNvbS8KTGluazogaHR0cHM6Ly9naXRodWIuY29tL0NsYW5nQnVpbHRMaW51eC9s aW51eC9pc3N1ZXMvMTYwMwpTdWdnZXN0ZWQtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0Bs aW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IE1hc2FoaXJvIFlhbWFkYSA8bWFzYWhpcm95QGtlcm5l bC5vcmc+CkNjOiBsaW51eC1rYnVpbGRAdmdlci5rZXJuZWwub3JnCkNjOiBsbHZtQGxpc3RzLmxp bnV4LmRldgpTaWduZWQtb2ZmLWJ5OiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgotLS0K W3YyXQogLSBhZGRlZCAtc3RkPWdudTExIGJhY2ssIHJhdGhlciB0aGFuIGp1c3QgcmVseWluZyBv biB0aGUgZGVmYXVsdAogLSBtaW5vciBjaGFuZ2VzIHRvIGNoYW5nZWxvZyB0ZXh0Ci0tLQogRG9j dW1lbnRhdGlvbi9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdCAgICAgICAgICAgICAg fCA0ICsrLS0KIC4uLi90cmFuc2xhdGlvbnMvaXRfSVQvcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5n dWFnZS5yc3QgICAgIHwgNCArKy0tCiAuLi4vdHJhbnNsYXRpb25zL3poX0NOL3Byb2Nlc3MvcHJv Z3JhbW1pbmctbGFuZ3VhZ2UucnN0ICAgICB8IDQgKystLQogLi4uL3RyYW5zbGF0aW9ucy96aF9U Vy9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdCAgICAgfCA0ICsrLS0KIE1ha2VmaWxl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNiAr KystLS0KIGFyY2gvYXJtNjQva2VybmVsL3Zkc28zMi9NYWtlZmlsZSAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxICsKIGRyaXZlcnMvc3RhZ2luZy9ncmV5YnVzL3Rvb2xz L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgIHwgMyArKy0KIGZzL2J0cmZzL01ha2VmaWxl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMSArCiBzY3JpcHRz L01ha2VmaWxlLmV4dHJhd2FybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEg KwogMTAgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJz dCBiL0RvY3VtZW50YXRpb24vcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKaW5kZXgg ZWM0NzRhNzBhMDJmLi44OTRmMmE2ZWI5ZGIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vcHJv Y2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9wcm9jZXNz L3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdApAQCAtNSw4ICs1LDggQEAgUHJvZ3JhbW1pbmcgTGFu Z3VhZ2UKIAogVGhlIGtlcm5lbCBpcyB3cml0dGVuIGluIHRoZSBDIHByb2dyYW1taW5nIGxhbmd1 YWdlIFtjLWxhbmd1YWdlXV8uCiBNb3JlIHByZWNpc2VseSwgdGhlIGtlcm5lbCBpcyB0eXBpY2Fs bHkgY29tcGlsZWQgd2l0aCBgYGdjY2BgIFtnY2NdXwotdW5kZXIgYGAtc3RkPWdudTg5YGAgW2dj Yy1jLWRpYWxlY3Qtb3B0aW9uc11fOiB0aGUgR05VIGRpYWxlY3Qgb2YgSVNPIEM5MAotKGluY2x1 ZGluZyBzb21lIEM5OSBmZWF0dXJlcykuIGBgY2xhbmdgYCBbY2xhbmddXyBpcyBhbHNvIHN1cHBv cnRlZCwgc2VlCit1bmRlciBgYC1zdGQ9Z251MTFgYCBbZ2NjLWMtZGlhbGVjdC1vcHRpb25zXV86 IHRoZSBHTlUgZGlhbGVjdCBvZiBJU08gQzExCisoaW5jbHVkaW5nIHNvbWUgQzE3IGZlYXR1cmVz KS4gYGBjbGFuZ2BgIFtjbGFuZ11fIGlzIGFsc28gc3VwcG9ydGVkLCBzZWUKIGRvY3Mgb24gOnJl ZjpgQnVpbGRpbmcgTGludXggd2l0aCBDbGFuZy9MTFZNIDxrYnVpbGRfbGx2bT5gLgogCiBUaGlz IGRpYWxlY3QgY29udGFpbnMgbWFueSBleHRlbnNpb25zIHRvIHRoZSBsYW5ndWFnZSBbZ251LWV4 dGVuc2lvbnNdXywKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL2l0X0lU L3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0IGIvRG9jdW1lbnRhdGlvbi90cmFuc2xh dGlvbnMvaXRfSVQvcHJvY2Vzcy9wcm9ncmFtbWluZy1sYW5ndWFnZS5yc3QKaW5kZXggNDFkYjI1 OThjZTExLi5hYTIxMDk3NzM3YWUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdHJhbnNsYXRp b25zL2l0X0lUL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0CisrKyBiL0RvY3VtZW50 YXRpb24vdHJhbnNsYXRpb25zL2l0X0lUL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0 CkBAIC0xMCw4ICsxMCw4IEBAIExpbmd1YWdnaW8gZGkgcHJvZ3JhbW1hemlvbmUKIAogSWwga2Vy bmVsIMOoIHNjcml0dG8gbmVsIGxpbmd1YWdnaW8gZGkgcHJvZ3JhbW1hemlvbmUgQyBbaXQtYy1s YW5ndWFnZV1fLgogUGnDuSBwcmVjaXNhbWVudGUsIGlsIGtlcm5lbCB2aWVuZSBjb21waWxhdG8g Y29uIGBgZ2NjYGAgW2l0LWdjY11fIHVzYW5kbwotbCdvcHppb25lIGBgLXN0ZD1nbnU4OWBgIFtp dC1nY2MtYy1kaWFsZWN0LW9wdGlvbnNdXzogaWwgZGlhbGV0dG8gR05VCi1kZWxsbyBzdGFuZGFy ZCBJU08gQzkwIChjb24gbCdhZ2dpdW50YSBkaSBhbGN1bmUgZnVuemlvbmFsaXTDoCBkYSBDOTkp LgorbCdvcHppb25lIGBgLXN0ZD1nbnUxMWBgIFtpdC1nY2MtYy1kaWFsZWN0LW9wdGlvbnNdXzog aWwgZGlhbGV0dG8gR05VCitkZWxsbyBzdGFuZGFyZCBJU08gQzExIChjb24gbCdhZ2dpdW50YSBk aSBhbGN1bmUgZnVuemlvbmFsaXTDoCBkYSBDMTcpLgogTGludXggc3VwcG9ydGEgYW5jaGUgYGBj bGFuZ2BgIFtpdC1jbGFuZ11fLCBsZWdnZXRlIGxhIGRvY3VtZW50YXppb25lCiA6cmVmOmBCdWls ZGluZyBMaW51eCB3aXRoIENsYW5nL0xMVk0gPGtidWlsZF9sbHZtPmAuCiAKZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFu Z3VhZ2UucnN0IGIvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vcHJvY2Vzcy9wcm9n cmFtbWluZy1sYW5ndWFnZS5yc3QKaW5kZXggMmE0N2ExZDJlYzIwLi41OGQyYjNiZDJkODUgMTAw NjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL3Byb2Nlc3MvcHJvZ3Jh bW1pbmctbGFuZ3VhZ2UucnN0CisrKyBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NO L3Byb2Nlc3MvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UucnN0CkBAIC05LDggKzksOCBAQAogPT09PT09 PT09PT09CiAKIOWGheaguOaYr+eUqEPor63oqIAgOnJlZjpgYy1sYW5ndWFnZSA8Y25fYy1sYW5n dWFnZT5gIOe8luWGmeeahOOAguabtOWHhuehruWcsOivtO+8jOWGheaguOmAmuW4uOaYr+eUqCA6 cmVmOmBnY2MgPGNuX2djYz5gCi3lnKggYGAtc3RkPWdudTg5YGAgOnJlZjpgZ2NjLWMtZGlhbGVj dC1vcHRpb25zIDxjbl9nY2MtYy1kaWFsZWN0LW9wdGlvbnM+YCDkuIvnvJbor5HnmoTvvJpJU08g Qzkw55qEIEdOVSDmlrnoqIDvvIgKLeWMheaLrOS4gOS6m0M5OeeJueaAp++8iQor5ZyoIGBgLXN0 ZD1nbnUxMWBgIDpyZWY6YGdjYy1jLWRpYWxlY3Qtb3B0aW9ucyA8Y25fZ2NjLWMtZGlhbGVjdC1v cHRpb25zPmAg5LiL57yW6K+R55qE77yaSVNPIEMxMeeahCBHTlUg5pa56KiA77yICivljIXmi6zk uIDkuptDMTfnibnmgKfvvIkKIAog6L+Z56eN5pa56KiA5YyF5ZCr5a+56K+t6KiAIDpyZWY6YGdu dS1leHRlbnNpb25zIDxjbl9nbnUtZXh0ZW5zaW9ucz5gIOeahOiuuOWkmuaJqeWxle+8jOW9k+eE tu+8jOWug+S7rOiuuOWkmumDveWcqOWGheaguOS4reS9v+eUqOOAggogCmRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9UVy9wcm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1 YWdlLnJzdCBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX1RXL3Byb2Nlc3MvcHJvZ3Jh bW1pbmctbGFuZ3VhZ2UucnN0CmluZGV4IDU0ZTM2OTllYWRmOC4uMjM1ZGUwNWY3ZTJjIDEwMDY0 NAotLS0gYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9UVy9wcm9jZXNzL3Byb2dyYW1t aW5nLWxhbmd1YWdlLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9UVy9w cm9jZXNzL3Byb2dyYW1taW5nLWxhbmd1YWdlLnJzdApAQCAtMTIsOCArMTIsOCBAQAogPT09PT09 PT09PT09CiAKIOWFp+aguOaYr+eUqEPoqp7oqIAgOnJlZjpgYy1sYW5ndWFnZSA8dHdfYy1sYW5n dWFnZT5gIOe3qOWvq+eahOOAguabtOa6lueiuuWcsOiqqu+8jOWFp+aguOmAmuW4uOaYr+eUqCA6 cmVmOmBnY2MgPHR3X2djYz5gCi3lnKggYGAtc3RkPWdudTg5YGAgOnJlZjpgZ2NjLWMtZGlhbGVj dC1vcHRpb25zIDx0d19nY2MtYy1kaWFsZWN0LW9wdGlvbnM+YCDkuIvnt6jora/nmoTvvJpJU08g Qzkw55qEIEdOVSDmlrnoqIDvvIgKLeWMheaLrOS4gOS6m0M5OeeJueaAp++8iQor5ZyoIGBgLXN0 ZD1nbnUxMWBgIDpyZWY6YGdjYy1jLWRpYWxlY3Qtb3B0aW9ucyA8dHdfZ2NjLWMtZGlhbGVjdC1v cHRpb25zPmAg5LiL57eo6K2v55qE77yaSVNPIEMxMeeahCBHTlUg5pa56KiA77yICivljIXmi6zk uIDkuptDMTfnibnmgKfvvIkKIAog6YCZ56iu5pa56KiA5YyF5ZCr5bCN6Kqe6KiAIDpyZWY6YGdu dS1leHRlbnNpb25zIDx0d19nbnUtZXh0ZW5zaW9ucz5gIOeahOioseWkmuaTtOWxle+8jOeVtueE tu+8jOWug+WAkeioseWkmumDveWcqOWFp+aguOS4reS9v+eUqOOAggogCmRpZmYgLS1naXQgYS9N YWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IDI4OWNlMmJlODAzMi4uNjY0OTZlYWViOWVjIDEwMDY0 NAotLS0gYS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtNDMyLDcgKzQzMiw3IEBAIEhPU1RD WFgJPSBnKysKIGVuZGlmCiAKIGV4cG9ydCBLQlVJTERfVVNFUkNGTEFHUyA6PSAtV2FsbCAtV21p c3NpbmctcHJvdG90eXBlcyAtV3N0cmljdC1wcm90b3R5cGVzIFwKLQkJCSAgICAgIC1PMiAtZm9t aXQtZnJhbWUtcG9pbnRlciAtc3RkPWdudTg5CisJCQkgICAgICAtTzIgLWZvbWl0LWZyYW1lLXBv aW50ZXIgLXN0ZD1nbnUxMQogZXhwb3J0IEtCVUlMRF9VU0VSTERGTEFHUyA6PQogCiBLQlVJTERf SE9TVENGTEFHUyAgIDo9ICQoS0JVSUxEX1VTRVJDRkxBR1MpICQoSE9TVF9MRlNfQ0ZMQUdTKSAk KEhPU1RDRkxBR1MpCkBAIC01MTUsNyArNTE1LDcgQEAgS0JVSUxEX0NGTEFHUyAgIDo9IC1XYWxs IC1XdW5kZWYgLVdlcnJvcj1zdHJpY3QtcHJvdG90eXBlcyAtV25vLXRyaWdyYXBocyBcCiAJCSAg IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tY29tbW9uIC1mc2hvcnQtd2NoYXIgLWZuby1QSUUg XAogCQkgICAtV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIC1XZXJyb3I9aW1w bGljaXQtaW50IFwKIAkJICAgLVdlcnJvcj1yZXR1cm4tdHlwZSAtV25vLWZvcm1hdC1zZWN1cml0 eSBcCi0JCSAgIC1zdGQ9Z251ODkKKwkJICAgLXN0ZD1nbnUxMQogS0JVSUxEX0NQUEZMQUdTIDo9 IC1EX19LRVJORUxfXwogS0JVSUxEX0FGTEFHU19LRVJORUwgOj0KIEtCVUlMRF9DRkxBR1NfS0VS TkVMIDo9CkBAIC03ODIsNyArNzgyLDcgQEAgS0JVSUxEX0NGTEFHUyArPSAkKEtCVUlMRF9DRkxB R1MteSkgJChDT05GSUdfQ0NfSU1QTElDSVRfRkFMTFRIUk9VR0gpCiAKIGlmZGVmIENPTkZJR19D Q19JU19DTEFORwogS0JVSUxEX0NQUEZMQUdTICs9IC1RdW51c2VkLWFyZ3VtZW50cwotIyBUaGUg a2VybmVsIGJ1aWxkcyB3aXRoICctc3RkPWdudTg5JyBzbyB1c2Ugb2YgR05VIGV4dGVuc2lvbnMg aXMgYWNjZXB0YWJsZS4KKyMgVGhlIGtlcm5lbCBidWlsZHMgd2l0aCAnLXN0ZD1nbnUxMScgc28g dXNlIG9mIEdOVSBleHRlbnNpb25zIGlzIGFjY2VwdGFibGUuCiBLQlVJTERfQ0ZMQUdTICs9IC1X bm8tZ251CiAjIENMQU5HIHVzZXMgYSBfTWVyZ2VkR2xvYmFscyBhcyBvcHRpbWl6YXRpb24sIGJ1 dCB0aGlzIGJyZWFrcyBtb2Rwb3N0LCBhcyB0aGUKICMgc291cmNlIG9mIGEgcmVmZXJlbmNlIHdp bGwgYmUgX01lcmdlZEdsb2JhbHMgYW5kIG5vdCBvbiBvZiB0aGUgd2hpdGVsaXN0ZWQgbmFtZXMu CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC92ZHNvMzIvTWFrZWZpbGUgYi9hcmNoL2Fy bTY0L2tlcm5lbC92ZHNvMzIvTWFrZWZpbGUKaW5kZXggNmMwMWI2M2ZmNTZkLi45Mzc4ZWEwNTVi ZjIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva2VybmVsL3Zkc28zMi9NYWtlZmlsZQorKysgYi9h cmNoL2FybTY0L2tlcm5lbC92ZHNvMzIvTWFrZWZpbGUKQEAgLTY4LDcgKzY4LDcgQEAgVkRTT19D RkxBR1MgKz0gLVdhbGwgLVd1bmRlZiAtV3N0cmljdC1wcm90b3R5cGVzIC1Xbm8tdHJpZ3JhcGhz IFwKICAgICAgICAgICAgICAgIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tY29tbW9uIFwKICAg ICAgICAgICAgICAgIC1XZXJyb3ItaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb24gXAogICAg ICAgICAgICAgICAgLVduby1mb3JtYXQtc2VjdXJpdHkgXAotICAgICAgICAgICAgICAgLXN0ZD1n bnU4OQorICAgICAgICAgICAgICAgLXN0ZD1nbnUxMQogVkRTT19DRkxBR1MgICs9IC1PMgogIyBT b21lIHVzZWZ1bCBjb21waWxlci1kZXBlbmRlbnQgZmxhZ3MgZnJvbSB0b3AtbGV2ZWwgTWFrZWZp bGUKIFZEU09fQ0ZMQUdTICs9ICQoY2FsbCBjYzMyLW9wdGlvbiwtV2RlY2xhcmF0aW9uLWFmdGVy LXN0YXRlbWVudCwpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IDFiNjJiOWY2NTE5Ni4uMTYxOGE2 ZTBhZjRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtMTcsNiArMTcsNyBAQCBzdWJkaXItY2Nm bGFncy15ICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlcgogc3ViZGlyLWNjZmxhZ3MteSArPSAtV25v LXR5cGUtbGltaXRzCiBzdWJkaXItY2NmbGFncy15ICs9IC1Xbm8tbWlzc2luZy1maWVsZC1pbml0 aWFsaXplcnMKIHN1YmRpci1jY2ZsYWdzLXkgKz0gLVduby1zaWduLWNvbXBhcmUKK3N1YmRpci1j Y2ZsYWdzLXkgKz0gLVduby1zaGlmdC1uZWdhdGl2ZS12YWx1ZQogc3ViZGlyLWNjZmxhZ3MteSAr PSAkKGNhbGwgY2MtZGlzYWJsZS13YXJuaW5nLCB1bnVzZWQtYnV0LXNldC12YXJpYWJsZSkKIHN1 YmRpci1jY2ZsYWdzLXkgKz0gJChjYWxsIGNjLWRpc2FibGUtd2FybmluZywgZnJhbWUtYWRkcmVz cykKIHN1YmRpci1jY2ZsYWdzLSQoQ09ORklHX0RSTV9JOTE1X1dFUlJPUikgKz0gLVdlcnJvcgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvdG9vbHMvTWFrZWZpbGUgYi9kcml2 ZXJzL3N0YWdpbmcvZ3JleWJ1cy90b29scy9NYWtlZmlsZQppbmRleCBhZDBhZTgwNTNiNzkuLmEz YmJkNzMxNzFmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvdG9vbHMvTWFr ZWZpbGUKKysrIGIvZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvdG9vbHMvTWFrZWZpbGUKQEAgLTEy LDcgKzEyLDggQEAgQ0ZMQUdTCSs9IC1zdGQ9Z251OTkgLVdhbGwgLVdleHRyYSAtZyBcCiAJICAg IC1XcmVkdW5kYW50LWRlY2xzIFwKIAkgICAgLVdjYXN0LWFsaWduIFwKIAkgICAgLVdzaWduLWNv bXBhcmUgXAotCSAgICAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzCisJICAgIC1Xbm8t bWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgXAorCSAgICAtV25vLXNoaWZ0LW5lZ2F0aXZlLXZh bHVlCiAKIENDCTo9ICQoQ1JPU1NfQ09NUElMRSlnY2MKIApkaWZmIC0tZ2l0IGEvZnMvYnRyZnMv TWFrZWZpbGUgYi9mcy9idHJmcy9NYWtlZmlsZQppbmRleCA0MTg4YmEzZmQ4YzMuLjk5Zjk5OTU2 NzBlYSAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvTWFrZWZpbGUKKysrIGIvZnMvYnRyZnMvTWFrZWZp bGUKQEAgLTE3LDYgKzE3LDcgQEAgc3ViZGlyLWNjZmxhZ3MteSArPSAkKGNvbmRmbGFncykKIHN1 YmRpci1jY2ZsYWdzLXkgKz0gLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycwogc3ViZGly LWNjZmxhZ3MteSArPSAtV25vLXNpZ24tY29tcGFyZQogc3ViZGlyLWNjZmxhZ3MteSArPSAtV25v LXR5cGUtbGltaXRzCitzdWJkaXItY2NmbGFncy15ICs9IC1Xbm8tc2hpZnQtbmVnYXRpdmUtdmFs dWUKIAogb2JqLSQoQ09ORklHX0JUUkZTX0ZTKSA6PSBidHJmcy5vCiAKZGlmZiAtLWdpdCBhL3Nj cmlwdHMvTWFrZWZpbGUuZXh0cmF3YXJuIGIvc2NyaXB0cy9NYWtlZmlsZS5leHRyYXdhcm4KaW5k ZXggOGJlODkyODg3ZDcxLi42NTBkMGI4Y2VlYzMgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvTWFrZWZp bGUuZXh0cmF3YXJuCisrKyBiL3NjcmlwdHMvTWFrZWZpbGUuZXh0cmF3YXJuCkBAIC0zNiw2ICsz Niw3IEBAIEtCVUlMRF9DRkxBR1MgKz0gJChjYWxsIGNjLW9wdGlvbiwgLVdzdHJpbmdvcC10cnVu Y2F0aW9uKQogS0JVSUxEX0NGTEFHUyArPSAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJz CiBLQlVJTERfQ0ZMQUdTICs9IC1Xbm8tc2lnbi1jb21wYXJlCiBLQlVJTERfQ0ZMQUdTICs9IC1X bm8tdHlwZS1saW1pdHMKK0tCVUlMRF9DRkxBR1MgKz0gLVduby1zaGlmdC1uZWdhdGl2ZS12YWx1 ZQogCiBLQlVJTERfQ1BQRkxBR1MgKz0gLURLQlVJTERfRVhUUkFfV0FSTjEKIAotLSAKMi4yOS4y CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo= 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 DD6A3C433F5 for ; Mon, 28 Feb 2022 14:27:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2FBC710E829; Mon, 28 Feb 2022 14:27:05 +0000 (UTC) Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4B18410E376; Mon, 28 Feb 2022 10:32:14 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 46AC1B80FD3; Mon, 28 Feb 2022 10:32:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A53CBC340E7; Mon, 28 Feb 2022 10:32:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1646044330; bh=NTMoGe2qM6Zlz2XjXRYS6obPgPuEJeVRzpLtHtUzKbU=; h=From:To:Cc:Subject:Date:From; b=rvT9Sz0ZYpqlbao+aNtyUDhbYN60iOK0g94ID0/9blJGJHbgXOMUCx4E6u9j6hi+N MOy/YvYTA3T9OkTggpf0QNPZthUon2kBk6f2OBl99CJwNxmM2qZuG1ngx5D8u4EpkI 7V5QyKUXLzeme56EkuSPctfKC11Qj4bCGRFrQ2+5Mr+/GlwGc0ZWQhMoZfPLT22M3w ANedRGgopyuejv8pL9dimPpPXBfm3gK1SFBnfY8Amk3vS8IYdtZmMEj+pm49RH3D51 ihAHScB1jNVHki71tguNvLPH6pOa0g76LxFsPOZ7vfCMXzcjRoUjONjBxIz5sDVRuM lua1ZFvShJhfQ== From: Arnd Bergmann To: linux-kbuild@vger.kernel.org Date: Mon, 28 Feb 2022 11:27:43 +0100 Message-Id: <20220228103142.3301082-1-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Mon, 28 Feb 2022 14:26:05 +0000 Subject: [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: 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, linux-arm-kernel@lists.infradead.org, Federico Vaga , Hu Haowen , intel-gfx@lists.freedesktop.org, linux-btrfs@vger.kernel.org, Linus Torvalds , linux-doc-tw-discuss@lists.sourceforge.net, Alex Shi Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" 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. 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