[Devel] [PATCH RHEL7 COMMIT] ms/kernel: use the gnu89 standard explicitly

Konstantin Khorenko khorenko at virtuozzo.com
Thu Sep 3 08:27:29 PDT 2015


The commit is pushed to "branch-rh7-3.10.0-229.7.2-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-229.7.2.vz7.6.6
------>
commit 0331e712aa16d12ea15c567e25111c3443456479
Author: Andrey Ryabinin <aryabinin at odin.com>
Date:   Thu Sep 3 19:27:29 2015 +0400

    ms/kernel: use the gnu89 standard explicitly
    
    https://jira.sw.ru/browse/PSBM-26429
    
    From: "Kirill A. Shutemov" <kirill at shutemov.name>
    
    commit 51b97e354ba9fce1890cf38ecc754aa49677fc89 upstream.
    
    Sasha Levin reports:
     "gcc5 changes the default standard to c11, which makes kernel build
      unhappy
    
      Explicitly define the kernel standard to be gnu89 which should keep
      everything working exactly like it was before gcc5"
    
    There are multiple small issues with the new default, but the biggest
    issue seems to be that the old - and very useful - GNU extension to
    allow a cast in front of an initializer has gone away.
    
    Patch updated by Kirill:
     "I'm pretty sure all gcc versions you can build kernel with supports
      -std=gnu89.  cc-option is redunrant.
    
      We also need to adjust HOSTCFLAGS otherwise allmodconfig fails for me"
    
    Note by Andrew Pinski:
     "Yes it was reported and both problems relating to this extension has
      been added to gnu99 and gnu11.  Though there are other issues with the
      kernel dealing with extern inline have different semantics between
      gnu89 and gnu99/11"
    
    End result: we may be able to move up to a newer stdc model eventually,
    but right now the newer models have some annoying deficiencies, so the
    traditional "gnu89" model ends up being the preferred one.
    
    Signed-off-by: Sasha Levin <sasha.levin at oracle.com>
    Singed-off-by: Kirill A. Shutemov <kirill.shutemov at linux.intel.com>
    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
    Signed-off-by: Andrey Ryabinin <aryabinin at odin.com>
    
    Signed-off-by: Andrey Ryabinin <aryabinin at odin.com>
---
 Makefile | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 1ccfd12..bfd04ef 100644
--- a/Makefile
+++ b/Makefile
@@ -253,7 +253,7 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
 
 HOSTCC       = gcc
 HOSTCXX      = g++
-HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
+HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
 HOSTCXXFLAGS = -O2
 
 # Decide whether to build built-in, modular, or both.
@@ -385,7 +385,8 @@ KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
 		   -fno-strict-aliasing -fno-common \
 		   -Werror-implicit-function-declaration \
 		   -Wno-format-security \
-		   -fno-delete-null-pointer-checks
+		   -fno-delete-null-pointer-checks \
+		   -std=gnu89
 
 ifeq ($(KBUILD_EXTMOD),)
 ifneq (,$(filter $(ARCH), x86 x86_64))



More information about the Devel mailing list