From 05c67589851c70df19a94d5a00b6634681f08bcd Mon Sep 17 00:00:00 2001 From: Nik Konyuchenko Date: Thu, 24 Jun 2021 00:51:21 -0700 Subject: Fix build of older Glibc using GCC >=10 Issue #1535 GCC 10 changed the default to -fno-common, which leads to a linking error in GLibc older than 2.30. This change adds -fcommon cflag for the target GLibc versions <=2.29 and GCC >=10. This change also adds additional cflags for the target GLibc to disable new GCC11 checks that lead to compilation errors. Signed-off-by: Nik Konyuchenko --- config/libc/glibc.in | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'config/libc') diff --git a/config/libc/glibc.in b/config/libc/glibc.in index 5a3b1b8c..b2cf0dae 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -181,6 +181,7 @@ config GLIBC_CONFIGPARMS config GLIBC_EXTRA_CFLAGS string prompt "extra target CFLAGS" + default "-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized" if GLIBC_2_29_or_older && GCC_11_or_later default "" help Extra target CFLAGS to use when building. @@ -416,4 +417,10 @@ config GLIBC_ENABLE_WERROR endif +config GLIBC_ENABLE_COMMON_FLAG + bool "Enable -fcommon flag for older version of glibc when using GCC >=10" + default y if GLIBC_2_29_or_older && GCC_10_or_later + default n if GLIBC_2_30_or_later || GCC_9_or_older + + endif # KERNEL_LINUX -- cgit v1.2.3 From aa98a2e2f3f6f91ab02b932162da4bb60f61c9ba Mon Sep 17 00:00:00 2001 From: Nik Konyuchenko Date: Thu, 24 Jun 2021 01:49:22 -0700 Subject: Add fcommon flag help and remove extra empty lines Signed-off-by: Nik Konyuchenko --- config/libc/glibc.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'config/libc') diff --git a/config/libc/glibc.in b/config/libc/glibc.in index b2cf0dae..3905f6e9 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -421,6 +421,8 @@ config GLIBC_ENABLE_COMMON_FLAG bool "Enable -fcommon flag for older version of glibc when using GCC >=10" default y if GLIBC_2_29_or_older && GCC_10_or_later default n if GLIBC_2_30_or_later || GCC_9_or_older - + help + Starting from GCC 10, the default behavior is changed to -fno-common. + That leads to linking errors in GLibc versions older than 2.30. endif # KERNEL_LINUX -- cgit v1.2.3