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 <[email protected]>
---
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,)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
--
1.7.10.4
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 <[email protected]>
> ---
>
> 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 <[email protected].
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
2014-10-20 5:40 GMT+03:00 Sasha Levin <[email protected]>:
> 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.
>
Ping.
On 11/14/2014 08:43 AM, Andrey Ryabinin wrote:
> 2014-10-20 5:40 GMT+03:00 Sasha Levin <[email protected]>:
>> 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.
>>
>
> Ping.
>
fwiw, I'm happy with using Kirill's patch from this thread, it
even has his SoB! :)
Thanks,
Sasha