Skip to content

Commit 0215331

Browse files
committed
Kconfig: Disable -Wstringop-overflow for GCC globally
It turns out it was never just gcc-11 that was broken. Apparently it just happens to work on x86-64 with other gcc versions. On arm64, I see warnings with gcc version 13.2.1, and the kernel test robot reports the same problem on s390 with gcc 13.2.0. Admittedly it seems to be just the new Xe drm driver, but this is keeping me from doing my normal arm64 build testing. So it gets reverted until somebody figures out what causes the problem (and why it doesn't show on x86-64, which is what makes me suspect it was never just about gcc-11, and more about just random happenstance). This also changes the Kconfig naming a bit - just make the "disable this for GCC" conditional be one simple Kconfig entry, and we can put the gcc version dependencies in that entry once we figure out what the correct rules are. The version dependency _may_ still end up being "gcc version larger than 11" if the issue is purely in the Xe driver, but even if that ends up the case, let's make that all part of the "GCC_NO_STRINGOP_OVERFLOW" logic. For now, we just disable it for all gcc versions while the exact cause is unknown. Link: https://lore.kernel.org/all/202401161031.hjGJHMiJ-lkp@intel.com/T/ Cc: Gustavo A. R. Silva <gustavoars@kernel.org> Cc: Kees Cook <keescook@chromium.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 41b9fb3 commit 0215331

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

init/Kconfig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -876,13 +876,13 @@ config CC_NO_ARRAY_BOUNDS
876876
bool
877877
default y if CC_IS_GCC && GCC_VERSION >= 110000 && GCC11_NO_ARRAY_BOUNDS
878878

879-
# Currently, disable -Wstringop-overflow for GCC 11, globally.
880-
config GCC11_NO_STRINGOP_OVERFLOW
879+
# Currently, disable -Wstringop-overflow for GCC globally.
880+
config GCC_NO_STRINGOP_OVERFLOW
881881
def_bool y
882882

883883
config CC_NO_STRINGOP_OVERFLOW
884884
bool
885-
default y if CC_IS_GCC && GCC_VERSION >= 110000 && GCC_VERSION < 120000 && GCC11_NO_STRINGOP_OVERFLOW
885+
default y if CC_IS_GCC && GCC_NO_STRINGOP_OVERFLOW
886886

887887
config CC_STRINGOP_OVERFLOW
888888
bool

0 commit comments

Comments
 (0)