Re: [PATCH v2] kernel: use the gnu89 standard explicitly

From: Kirill A. Shutemov
Date: Mon Oct 20 2014 - 05:23:26 EST


On Sun, Oct 19, 2014 at 10:40:55PM -0400, Sasha Levin wrote:
> 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.
>
> Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
> ---
>
> Changes from v1:
> - I've accidently placed the statement in a CONFIG_READABLE_ASM.
> It shouldn't be there.
>
> Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Makefile b/Makefile
> index dd7e1cb..eb0c026 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -625,6 +625,7 @@ all: vmlinux
> include $(srctree)/arch/$(SRCARCH)/Makefile
>
> KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
> +KBUILD_CFLAGS += $(call cc-option,-std=gnu89,)

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.

Singed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxxx

diff --git a/Makefile b/Makefile
index 05d67af376c5..27570984f28e 100644
--- a/Makefile
+++ b/Makefile
@@ -297,7 +297,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

ifeq ($(shell $(HOSTCC) -v 2>&1 | grep -c "clang version"), 1)
@@ -401,7 +401,8 @@ KBUILD_CPPFLAGS := -D__KERNEL__
KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common \
-Werror-implicit-function-declaration \
- -Wno-format-security
+ -Wno-format-security \
+ -std=gnu89

KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL :=
--
Kirill A. Shutemov
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/